Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 函数运行后不打印_C_Arrays_Printf - Fatal编程技术网

C 函数运行后不打印

C 函数运行后不打印,c,arrays,printf,C,Arrays,Printf,我解决了一些问题,但我仍然认为这是错误的。不知何故,当我不止一次使用int声明GetRand函数时,我会收到更多错误消息 我想要的最终结果是打印我创建的数组,还打印它的最大值和平均值,只计算每个数>-1 我错误地调用了maxavg函数,并且在maxavg开头的“{”标记之前收到了一条错误消息error]expected identifier,我无法修复该错误 *EDITED* 这个程序只在main中的for循环中打印数组a的元素。除了GetRand,没有调用其他函数,因此get和maxavg永

我解决了一些问题,但我仍然认为这是错误的。不知何故,当我不止一次使用int声明GetRand函数时,我会收到更多错误消息

我想要的最终结果是打印我创建的数组,还打印它的最大值和平均值,只计算每个数>-1

我错误地调用了maxavg函数,并且在maxavg开头的“{”标记之前收到了一条错误消息error]expected identifier,我无法修复该错误

*EDITED*

这个程序只在main中的for循环中打印数组a的元素。除了GetRand,没有调用其他函数,因此get和maxavg永远不会执行,尽管已经定义。因此,是的,如果您想查看它的功能,首先应该从main调用它

不过,maxavg函数的逻辑也有一个大问题。 您假定迭代的数组在哪里?您没有向maxavg传递任何参数,也没有声明和设置局部变量。看起来您希望current包含这些数组元素值,但实际情况是您从未将此变量的值设置为任何值。您应该使用i和j变量作为索引,以e您应该添加的数组,如arr[i][j]中的数组

其他一些注意事项:

你真的应该在循环结束后设置[2][15]、[10][6]等等,而不是在每次迭代中。 你已经两次声明了GetRand。 maxavg返回一个int,但函数控件中并没有返回语句到达非void函数的末尾。
您已经创建了一个用于计算数组统计信息的函数,但您从未调用过它,因此它不会打印任何内容。顺便说一下,该函数已损坏,但这是另一个问题。为什么要设置[2][15],等等。每次通过循环时?如果要用这些值替换随机数,请在循环后执行。int maxavg;表示函数声明,但您随后尝试定义它,因此应删除;。此外,maxavg现在始终返回0,而不是计算的最大值和平均值。并且此函数的作用域中没有ar甚至是i或j。您需要将在main中创建的数组作为参数传递给maxavg。您的意思是在main之前,然后是函数本身吗?当我在maxavg之前删除int时,不知何故会收到更多错误消息。函数定义的语法是return_type function_nameparm_type param_name,{/*function body*/}。如果函数不返回任何内容,则其返回类型为void。
#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);

}