为什么这个程序随机产生的数字不是1-100

img


#include #include #include int main(){ int t,a[10]; srand((int)time(0)); for(t=1;t<=10;t++){ a[t]=rand()%100+1; for(t=1;t<=10;t++){ printf("%d\n",a[t]); } } int max,min,sum; float ave; max=a[1]; for(t=1;t<=10;t++){ if(maxa[t]){ min=a[t]; } } printf("最小值是%d\n",min); for(t=1;t<=10;t++){ sum+=a[t]; } printf("和为%d\n",sum); ave=sum/10; printf("平均值为%d\n",ave); return 0;}

第10行的for循环不能放到第8行的for循环里面啊,得第8行的for循环运行结束后,再运行第10行的for循环,否则10个数组元素还没有产生完你就输出,自然一堆乱码

注意括号,好好排格式,把括号都对齐
你这第二个for都套第一个for里面去了看不出来吗

for循环条件错了数组总大小是10,那么下标范围是0到9,你写的1到10越界了。
for(t=0; t<10; t++)