2015-09-02 23 views
-2

我已创建此2D 21x21阵列,并将其值设置为-1。我写了它来打印地址和值,不知何故它只是在[6] [19]开始为什么?用C/Average/Max值中的随机数填充定义的2D阵列

我想要做的是在同一个数组中使用从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; 
} 

对于一般的函数,编译器会告诉我之前,我所预期的声明,这是“浮动总和= 0.0;”但我还没有能够解决这个问题。

对于发现最大功能我不确定我在那里做什么,我只是对它是如何做的模糊的想法...我是否在正确的方向?

谢谢!

+2

'a [i] [j] = GetRand(0,100);'而不是'a [i] [j] = -1;' –

+0

我不确信实际问题和您对问题的描述在这里匹配。你说它“从[6] [19]开始”。我敢打赌,这与你终端中的回滚缓冲区有关。尝试通过'more'或'less'管道输出。另一部分似乎对如何编译和链接多个源文件感到困惑。当然,你可以在你的其他源文件中包含'GetRand'的代码。除非'main'只出现在其中一个中,否则您将无法链接这两个源文件。 – paddy

+0

我的输出不好。所以我写了一个[i] [j] = GetRand(0,100);而不是[i] [j] = -1;现在我的数组有从0到100的随机数,我的问题是我需要它有一些-1值。 例如: [2] [3] = 9 [2] [4] = - 1 [2] [5] = 23 [2] [6] = - 1 和我不知道我怎么能做到这一点 – Mimic03

回答

2

这很简单:只需将您的GetRand函数的结果分配给矩阵条目即可。