Матрица. Подсчитать количество строк, ВСЕ элементы которых >=6 && <=8 - C (СИ)
Формулировка задачи:
Дан табель отметок. Нужно посчитать количество хорошистов. (Отметки >=6 && <=8)
В чем ошибка? Выдает 0.
Именно все элементы строки, чтобы были >=6 && <=8.
k1 - левый счетчик, в который заносил количество подходящих элементов. Потом сравнивал с общим количеством.
Если совпадал, то заносится в k, который потом отображает количество нужных строк.
#include <stdio.h>
#include <clocale>
#include <conio.h>
#include <stdlib.h>
int main()
{
setlocale(LC_ALL, "Rus");
int **mas,i,j,n,m,k=0,k1=0;
printf("Введите количество студентов: ");
scanf("%d",&n);
printf("Введите количество отметок: ");
scanf("%d",&m);
mas=(int**)calloc(n,sizeof(int*));
for(i=0;i<n;i++)
mas[i]=(int*)calloc(m,sizeof(int));
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
printf("Введите отметки [%d][%d]: ",i+1,j+1);
scanf("%d",&mas[i][j]);
}
printf("\nТабель отметок студентов:\n");
for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<m;j++)
printf("%5d",mas[i][j]);
}
printf("\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if((mas[i][j])>=6 && (mas[i][j])<=8);
k1++;
if(k1==m)
k++;
k1=0;
}
}
printf("Количество хорошистов: %d",k);
for(i=0;i<n;i++)
free(mas[i]);
free(mas);
getch();
}Решение задачи: «Матрица. Подсчитать количество строк, ВСЕ элементы которых >=6 && <=8»
textual
Листинг программы
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if((mas[i][j])<6 || (mas[i][j])>8) break;
}
if (j==m) k++;
}
Объяснение кода листинга программы
В данном коде на языке C выполняется подсчет количества строк матрицы, все элементы которых удовлетворяют условию >=6 && <=8. Список действий:
- Задаются начальные значения переменных:
- i = 0
- j = 0
- k = 0
- Перебираются все строки матрицы:
- for(i=0;i<n;i++)
- В каждой строке перебираются все элементы:
- for(j=0;j<m;j++)
- Проверяется условие элемента матрицы:
- if((mas[i][j])<6 || (mas[i][j])>8) break;
- Если условие не выполняется, то переходим к следующему элементу.
- Если все элементы строки удовлетворяют условию, то увеличиваем счетчик k на 1.
- После проверки всех строк, выводится значение k, которое и является искомым результатом.