Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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/Average/Max值中的随机数填充定义的二维数组_C_Arrays_Random - Fatal编程技术网

用C/Average/Max值中的随机数填充定义的二维数组

用C/Average/Max值中的随机数填充定义的二维数组,c,arrays,random,C,Arrays,Random,我创建了这个2D 21x21数组,它的所有值都设置为-1。我写它是为了打印地址和值,但不知怎的,它只从[6][19]开始。为什么 我要做的是在同一数组中用0到100的随机数替换一些-1值。我知道我需要在它的种子中加入srand,但是我在连接函数时遇到了问题,因为我是C语言的初学者 编辑1: 现在我可以打印整个数组并用随机数填充它。对于-1值,我刚刚直接赋值,在这种情况下,这是很好的 我现在尝试的是找到所有值的平均值和最大值,所以我得到的是: #include<stdio.h> #in

我创建了这个2D 21x21数组,它的所有值都设置为-1。我写它是为了打印地址和值,但不知怎的,它只从[6][19]开始。为什么

我要做的是在同一数组中用0到100的随机数替换一些-1值。我知道我需要在它的种子中加入srand,但是我在连接函数时遇到了问题,因为我是C语言的初学者

编辑1:

现在我可以打印整个数组并用随机数填充它。对于-1值,我刚刚直接赋值,在这种情况下,这是很好的

我现在尝试的是找到所有值的平均值和最大值,所以我得到的是:

#include<stdio.h>
#include <stdlib.h>
#include <time.h> 


int main()
{

int a[21][21], i , j;

for (i = 0; i < 21; i++)
{
    for ( j = 0; j < 21; j++)
    {
        a[i][j] = GetRand(0, 100);
        a[7][15] = -1;
        a[10][6] = -1;
        a[13][5] = -1;
        a[15][17] = -1;
        a[17][17] = -1;
        a[19][6] = -1;
        printf("%3d" , a[i][j]);
    }
    printf("\n");
}
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);
}



// average

int avg()

float sum=0.0;

for(i = 0; i <= 21; i = i + 1) {


    for(j = 0; j <= 21; j = j + 1){


         sum = sum + a[21][21];
     }

printf("The the average number is %.2f\n", sum/21);
}




 //find maximum of all values    

 int *pv = &a[0][0];
 max = min = 0;
 for (i = 1; i < i*j; ++i){
    if (pv[i] > pv[max])
        max =i;
    if (pv[i] < pv[min])
        min = i;
}
printf("The max value is %d in row %d, col %d\n", pv[max], max/j, max%j);


return 0;
}
#包括
#包括
#包括
int main()
{
INTA[21][21],i,j;
对于(i=0;i<21;i++)
{
对于(j=0;j<21;j++)
{
a[i][j]=GetRand(01100);
a[7][15]=-1;
a[10][6]=-1;
a[13][5]=-1;
a[15][17]=-1;
a[17][17]=-1;
a[19][6]=-1;
printf(“%3d”,a[i][j]);
}
printf(“\n”);
}
返回0;
}
//随机种子
int-GetRand(int-min,int-max);
int get(){
int i,r;
对于(i=0;i<21;i++)
{
r=GetRand(01100);
printf(“您的号码是%d\n”,r);
}
返回(0);
}
int GetRand(int最小值,int最大值)
{
静态int Init=0;
int rc;
if(Init==0)
{
srand(时间(空));
Init=1;
}
rc=(rand()%(最大-最小+1)+min);
返回(rc);
}
//平均值
国际平均值()
浮动总和=0.0;

对于(i=0;i这很简单:只需将
GetRand
函数的结果分配给矩阵项。

a[i][j]=GetRand(01100);
而不是
a[i][j]=-1;
我不相信实际问题与您对问题的描述匹配。您说它“从[6][19]开始”。我打赌这与终端中的滚动缓冲区有更多关系。尝试通过
更多
更少
管道输出。另一部分似乎对如何编译和链接多个源文件感到困惑。当然,您可以只在其他源文件中包含
GetRand
的代码。您不会成为无法链接这两个源文件,除非
main
只出现在其中一个源文件中。我对输出不满意。因此我编写了一个[i][j]=GetRand(01100);而不是[i][j]=-1;现在我的数组有0到100的随机数,我的问题是我需要它有一些-1值。例如:[2][3]=9[2][4]=-1[2][5]=23[2][6]=-1,我不知道如何才能做到这一点