【发布时间】:2016-08-03 09:50:18
【问题描述】:
所以,我有这段代码需要转换成函数:
int main(void) {
int i=0,seed;
printf("\n\nEnter seed integer value: ");
scanf("%d", &seed);
printf("\nSeed value is:%d\n\n",seed);
srand(seed);
int a[5][5];
int x,y;
printf("Matrix A:\n");
for(x=0;x<5;x++) {
for(y=0;y<5;y++) {
a[x][y] = rand() %51 + (-25);
printf("%d ",a[x][y]); }
printf("\n"); }
printf("\n\n");
所以基本上,它会产生一个 2D 5x5 随机数数组。这很好用,但是我的下一个任务是在此代码中应用一个函数,函数名称为:
void generate_matrices(int a[5][5])
我尝试了多次,最接近成功的代码是:
#include <stdio.h>
#include <stdlib.h>
void generate_matrices(int a[5][5]);
int main(void) {
int a, seed;
printf("\n\nEnter seed integer value: ");
scanf("%d", &seed);
srand(seed);
printf("\nSeed value is:%d\n\n",seed);
generate_matrices(a);
return 0;
}
void generate_matrices(int a[5][5]) {
int y,z;
printf("Matrix A:\n");
for(y=0;y<5;y++) {
for(z=0;z<5;z++) {
a[y][z] = rand() %51 + (-25); }
printf("%d ",a[y][z]); }
printf("\n");
}
但这会返回错误,“预期为 'int(*)[5]' 但争论的类型为 'int'。
非常感谢所有/任何帮助。公平地说,我已经完成了 90% 的代码。这是我需要帮助的唯一一点,以便我可以将其应用于我的其余代码。
干杯!
【问题讨论】:
-
您不能将数组作为变量发送。您需要发送一个指向其第一个元素 + 列大小 + 行大小的指针。或者干脆不发送!在该函数中创建它并在那里处理它
标签: c arrays function matrix random