Найти сумму и количество положительных чисел массива - на экран ничего не выводится - C (СИ)

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

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

Дан массив целых чисел размером N*M. Найти сумму и количество положительных чисел массива.
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. int fun (int * );
  5. int main (void)
  6. {
  7. int a[5][6];
  8. int i,j;
  9. for (i=0;i<3;i++)
  10. for (j=0;j<4;j++)
  11. {
  12. printf ("%d stroka %d stolbik " , i+1,j+1);
  13. scanf ("%d" , &a[i][j]);
  14. }
  15. system("pause");
  16. return 0;
  17. }
  18. int fun(int *p)
  19. {
  20. int n,i,j,e,s;
  21. for (i=0;i<3;i++)
  22. for (j=0;j<4;j++)
  23. {
  24. if(p[i]>0) e=p[i];
  25. }
  26. s=+e;
  27. n++;
  28. printf ("summa =%d",s );
  29. printf ("kol-wo =%d" , n);
  30. system("pause");
  31. return 0 ;
  32. }

Решение задачи: «Найти сумму и количество положительных чисел массива - на экран ничего не выводится»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void fun (int*, const int, const int);
  5.  
  6. int main (void)
  7. {
  8.    int a[5][6];
  9.    int i, j;
  10.  
  11.    for (i = 0; i < 4; i++)
  12.       for (j=0; j<5; j++)
  13.       {
  14.          printf ("%d stroka %d stolbik - ", i+1, j+1);
  15.          scanf ("%d", &a[i][j]);
  16.       }
  17.    fun((int*)a, 5, 6);
  18.    
  19.    system("pause");
  20.  
  21.    return 0;
  22. }
  23.  
  24. void fun(int *p, const int sRow, const int sCol)
  25. {
  26.    int i, j, sum = 0, count = 0;
  27.  
  28.    for (i = 0; i < sRow; i++)
  29.       for (j = 0; j < sCol; j++)
  30.          if(p[i*sCol + j] > 0)
  31.          {
  32.               sum += p[i*sCol + j];
  33.               count++;
  34.          }
  35.    printf ("summa =%d\n", sum);
  36.    printf ("kol-wo =%d\n", count);
  37.    system("pause");
  38. }

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

  1. Включаются заголовочные файлы stdio.h и stdlib.h
  2. Определяется функция fun с типом данных void и параметрами int*, const int, const int
  3. В функции main создается массив a типа int размером 5х6
  4. Задаются значения элементам массива с помощью scanf
  5. Вызывается функция fun с аргументами (int*)a, 5, 6
  6. В функции fun инициализируются переменные i, j, sum, count нулевыми значениями
  7. Происходит двойной цикл for для прохода по всем элементам массива p, при этом проверяется условие p[i*sCol + j] > 0
  8. Если условие выполняется, то к сумме sum прибавляется значение элемента массива p, а к счетчику count прибавляется единица
  9. По завершению циклов выводятся значения sum и count на экран
  10. В функции main после вызова функции fun выполняется команда system(pause)
  11. Функция main возвращает 0, что означает успешное завершение программы

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


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

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

6   голосов , оценка 3.833 из 5

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

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

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