C语言小问题求教!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/17 06:51:46
假设我想先手动输入一个参数的值,比如:scanf("%d",&studentNumber);
然后以这个值来定义数组的长度,怎么定义?可不可以 int score[studentNumber]?
不可以的话怎么解决呢?
4L 如果define了的话 那就固定时100了吧? 我是想自己输入一个数 然后以这个数为数组长度 怎么做啊?

我想错误的原因前面各位都讲了

如果不用
#defined studentNumber 100
.
.
.
int score[srudentNumber];

想自己输入一个数 然后以这个数为数组长度

下面勉强做到

int score[20],n,i;//定义的数组长点没事
scanf("%d",&n);//输入数的个数n
for(i=0;i<n;i++)
scanf("%d",score[i]);//输入n个数

不可以用 int score[studentNumber】,
数组的长度要是常量,不是变量。
你可以这样做:

int* score = new int[studentNumber];

用new关键字给score分配所需空间,这样照样可以像使用数组一样使用score

不可以~~

因为系统为数组分配内存空间的时候变量studentNumber

还不存在,怎么能用一个不存在的数据来确定数组的长度呢?

一楼:new是c++中的语法,在c程序中是不能运行的

#defined studentNumber 100
.
.
.
int score[srudentNumber];

no

不可以