Найти сумму и количество положительных чисел массива - на экран ничего не выводится - C (СИ)
Формулировка задачи:
Дан массив целых чисел размером N*M. Найти сумму и количество положительных чисел массива.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int fun (int * );
int main (void)
{
int a[5][6];
int i,j;
for (i=0;i<3;i++)
for (j=0;j<4;j++)
{
printf ("%d stroka %d stolbik " , i+1,j+1);
scanf ("%d" , &a[i][j]);
}
system("pause");
return 0;
}
int fun(int *p)
{
int n,i,j,e,s;
for (i=0;i<3;i++)
for (j=0;j<4;j++)
{
if(p[i]>0) e=p[i];
}
s=+e;
n++;
printf ("summa =%d",s );
printf ("kol-wo =%d" , n);
system("pause");
return 0 ;
}Решение задачи: «Найти сумму и количество положительных чисел массива - на экран ничего не выводится»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
void fun (int*, const int, const int);
int main (void)
{
int a[5][6];
int i, j;
for (i = 0; i < 4; i++)
for (j=0; j<5; j++)
{
printf ("%d stroka %d stolbik - ", i+1, j+1);
scanf ("%d", &a[i][j]);
}
fun((int*)a, 5, 6);
system("pause");
return 0;
}
void fun(int *p, const int sRow, const int sCol)
{
int i, j, sum = 0, count = 0;
for (i = 0; i < sRow; i++)
for (j = 0; j < sCol; j++)
if(p[i*sCol + j] > 0)
{
sum += p[i*sCol + j];
count++;
}
printf ("summa =%d\n", sum);
printf ("kol-wo =%d\n", count);
system("pause");
}
Объяснение кода листинга программы
- Включаются заголовочные файлы stdio.h и stdlib.h
- Определяется функция fun с типом данных void и параметрами int*, const int, const int
- В функции main создается массив a типа int размером 5х6
- Задаются значения элементам массива с помощью scanf
- Вызывается функция fun с аргументами (int*)a, 5, 6
- В функции fun инициализируются переменные i, j, sum, count нулевыми значениями
- Происходит двойной цикл for для прохода по всем элементам массива p, при этом проверяется условие p[i*sCol + j] > 0
- Если условие выполняется, то к сумме sum прибавляется значение элемента массива p, а к счетчику count прибавляется единица
- По завершению циклов выводятся значения sum и count на экран
- В функции main после вызова функции fun выполняется команда system(
pause) - Функция main возвращает 0, что означает успешное завершение программы