【发布时间】:2020-03-30 12:22:41
【问题描述】:
这里总共 C 新手。感谢您事先提供的任何帮助。
我需要编写一个具有以下属性的代码:
- 要求用户在二维数组中输入他们想要的行数和列数
- 创建一个包含那么多行和列的二维数组来存储整数
- 用 1 到 1000 之间的随机数填充数组
- 输出数组中最大的数
这是我现在可以去的地方:
#include <stdio.h>
int main(){
int rows;
int columns;
scanf("%d", &rows);
scanf("%d", &columns);
}
我该怎么办? 对不起,这个非常开放的问题,我被卡住了,不知道该怎么做。一个指南将是完美的。谢谢:)
编辑:
感谢您的指导,这是我的解决方法: 解决方案:
#include <stdio.h>
#include <time.h>
int main () {
//Declare variables
int a,b,k,l,big,z[100][100];
//Ask user input
printf("ENTER ROWS & COLUMNS\n");
scanf("%d\n%d", &a, &b);
//Randomize array values
srand(time(NULL));
big = 1;
for (k=0;k<a;k++){
for(l=0;l<b;l++){
z[k][l]=rand()%1000 + 1;
if(z[k][l]>big) big=z[k][l];
printf("%d\t", z[k][l]);
}
printf("\n");
}
//Print biggest number
printf("\nBIGGEST NUMBER IN THE ARRAY: %d", big);
return 0;
}
【问题讨论】:
-
对不起,但 SO 不能那样工作。我们帮助解决您的代码中的问题,但我们不会为您编写代码。
-
所以你需要更具体...你在哪里卡住了?你知道那个程序开头是:
int main(void) { ....};那么你解决不了的问题是什么?获取用户输入?创建一个二维数组?填充数组? .... -
首先尝试实现#1 并使用
printf将其打印回标准输出,以查看输入是否被正确读取。然后尝试实现#2和#3并打印二维数组的内容,看看是否有效。然后尝试实施#4。如果您对上述任何步骤有具体问题,欢迎您提出具体问题。 -
以这种方式使用
scanf是不安全的。您可能需要阅读此内容以获取更多信息:A beginner's guide away from scanf() -
scanf("%d", &rows);==>if (scanf("%d", &rows) != 1) exit(1);
标签: c arrays multidimensional-array