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

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

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

Дан табель отметок. Нужно посчитать количество хорошистов. (Отметки >=6 && <=8)
Листинг программы
  1. #include <stdio.h>
  2. #include <clocale>
  3. #include <conio.h>
  4. #include <stdlib.h>
  5. int main()
  6. {
  7. setlocale(LC_ALL, "Rus");
  8. int **mas,i,j,n,m,k=0,k1=0;
  9. printf("Введите количество студентов: ");
  10. scanf("%d",&n);
  11. printf("Введите количество отметок: ");
  12. scanf("%d",&m);
  13. mas=(int**)calloc(n,sizeof(int*));
  14. for(i=0;i<n;i++)
  15. mas[i]=(int*)calloc(m,sizeof(int));
  16. for(i=0;i<n;i++)
  17. for(j=0;j<m;j++)
  18. {
  19. printf("Введите отметки [%d][%d]: ",i+1,j+1);
  20. scanf("%d",&mas[i][j]);
  21. }
  22. printf("\nТабель отметок студентов:\n");
  23. for(i=0;i<n;i++)
  24. {
  25. printf("\n");
  26. for(j=0;j<m;j++)
  27. printf("%5d",mas[i][j]);
  28. }
  29. printf("\n");
  30. for(i=0;i<n;i++)
  31. {
  32. for(j=0;j<m;j++)
  33. {
  34. if((mas[i][j])>=6 && (mas[i][j])<=8);
  35. k1++;
  36. if(k1==m)
  37. k++;
  38. k1=0;
  39. }
  40. }
  41. printf("Количество хорошистов: %d",k);
  42. for(i=0;i<n;i++)
  43. free(mas[i]);
  44. free(mas);
  45. getch();
  46. }
В чем ошибка? Выдает 0. Именно все элементы строки, чтобы были >=6 && <=8. k1 - левый счетчик, в который заносил количество подходящих элементов. Потом сравнивал с общим количеством. Если совпадал, то заносится в k, который потом отображает количество нужных строк.

Решение задачи: «Матрица. Подсчитать количество строк, ВСЕ элементы которых >=6 && <=8»

textual
Листинг программы
  1. for(i=0;i<n;i++)
  2.     {
  3.     for(j=0;j<m;j++)
  4.     {
  5.         if((mas[i][j])<6 || (mas[i][j])>8) break;
  6.     }
  7.     if (j==m) k++;
  8. }

Объяснение кода листинга программы

В данном коде на языке 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы