*EDITED*
我修正了一些問題,但我仍然把它說錯了。不知何故,當我不多次聲明int GetRand函數時,我得到更多的錯誤消息。運行後不能打印功能
我想作爲最終結果是打印我創建的數組,並打印它的值的最大值和平均值(只計算每個數> -1)。
我調用maxavg()函數錯誤,我得到一個錯誤消息「錯誤」預期標識符或'('之前'{'令牌'在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'從未設置 – chux
爲什麼每次通過循環設置'a [2] [15]'等等?如果您想用這些值替換隨機數,請在循環後執行。 – Barmar