问题描述
- 动态一维数组输出问题
-
新手一枚,求前辈指教!/* malloc动态内存分配练习 从键盘输入成绩并打印在屏幕上,人数未知 */ #include<stdio.h> #include<stdlib.h> int main() { int num=0; printf("请输入学生人数:n"); scanf("%d",&num); int *mark; mark = (int *)malloc(num * sizeof(int)); if(mark==NULL) { puts("内存分配失败!"); } else { int i; for(i=0;i<num;i++) { printf("请输入第%d个学生的成绩:",i+1); scanf("%d",mark+i); } for(i=0;i<num;i++); //当我将for语句中的在i括号里声明时, //上面的scanf语句没有报错而 //下面的输出语句会报错 . 为何? { printf("%3dn",mark[i]); //目前程序无法输出输入的成绩, 为何? } printf("n"); } free(mark); mark=NULL; return 0; }
解决方案
for(i=0;i<num;i++); //多了一个分号?
解决方案二:
郁闷,还真是!谢啦!
解决方案三:
卡了一下,居然发出去三次!真是郁闷了
时间: 2024-10-26 12:22:09