Матрица. Подсчитать количество строк, ВСЕ элементы которых >=6 && <=8 - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дан табель отметок. Нужно посчитать количество хорошистов. (Отметки >=6 && <=8)
#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();
}
В чем ошибка? Выдает 0. Именно все элементы строки, чтобы были >=6 && <=8. k1 - левый счетчик, в который заносил количество подходящих элементов. Потом сравнивал с общим количеством. Если совпадал, то заносится в k, который потом отображает количество нужных строк.

Решение задачи: «Матрица. Подсчитать количество строк, ВСЕ элементы которых >=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. Список действий:

  1. Задаются начальные значения переменных:
    • i = 0
    • j = 0
    • k = 0
  2. Перебираются все строки матрицы:
    • for(i=0;i<n;i++)
  3. В каждой строке перебираются все элементы:
    • for(j=0;j<m;j++)
  4. Проверяется условие элемента матрицы:
    • if((mas[i][j])<6 || (mas[i][j])>8) break;
  5. Если условие не выполняется, то переходим к следующему элементу.
  6. Если все элементы строки удовлетворяют условию, то увеличиваем счетчик k на 1.
  7. После проверки всех строк, выводится значение k, которое и является искомым результатом.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы