*EDITED*
Я исправил некоторые проблемы, но я все еще нахожу это неправильно. Как-то, когда я не объявляю с int функцией GetRand более одного раза, я получаю больше сообщений об ошибках.Функция не печатается после запуска
То, что я хочу в качестве конечного результата, - это напечатать массив, который я создал, а также распечатать максимальные и средние значения его (только считая каждое число> -1).
Я вызываю функцию maxavg() неправильно, и я получаю сообщение об ошибке «Ошибка» ожидаемого идентификатора или '(' before '{' токен "в начале maxavg, который я не смог исправить.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <limits.h>
int GetRand(int min, int max);
int maxavg();
int main()
{
int a[21][21], i , j, average, maximum;
for (i = 0; i < 21; i++)
{
for (j = 0; j < 21; j++)
{
a[i][j] = GetRand(0, 100);
printf("%3d" , a[i][j]);
}
a[2][15] = -1;
a[10][6] = -1;
a[13][5] = -1;
a[15][17] = -1;
a[17][17] = -1;
a[19][6] = -1;
printf("\n");
}
average = maxavg();
maximum = maxavg();
printf("average = %d \n maximum = %d", average, maximum);
return 0;
}
// random seed
int GetRand(int min, int max);
int get()
{
int i, r;
for (i = 0; i < 21; i++)
{
r = GetRand(0, 100);
printf("Your number is %d \n", r);
}
return(0);
}
int GetRand(int min, int max)
{
static int Init = 0;
int rc;
if (Init == 0)
{
srand(time(NULL));
Init = 1;
}
rc = (rand() % (max - min +1) +min);
return (rc);
}
// max and average
int maxavg();
{
int max=INT_MIN, sum=0, count=0, avg, n, m, current;
current = a[i][j];
avg = sum/count;
for(n = 0; n < 21; n++){
for(m =0; m < 21; m++){
if(current > -1){
sum = sum + current;
count = count + 1;
if(current > max){
max = current;
}
}
}
}
return(0);
}
Вы создали функцию для вычисления статистики для своего массива, но вы никогда ее не называете, поэтому ничего не печатает. Кстати, эта функция сломана, но это отдельная проблема. –
'current' never set – chux
Почему вы устанавливаете' a [2] [15] 'и т. Д. Каждый раз через цикл? Если вы хотите заменить случайное число на эти значения, сделайте это после цикла. – Barmar