(C语言)有如下程序:输出数组中的全部元素。
#include<stdio.h>voidmain(){inta[10];inti;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;...
#include<stdio.h>
void main()
{
int a[10];
int i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++) ← // 此句为何不能省略?意义何在?省略后为何
printf("%d",a[i]); // 输入什么都是 1245120?这个数又代表什么意思?
printf("\n");
} 展开
void main()
{
int a[10];
int i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++) ← // 此句为何不能省略?意义何在?省略后为何
printf("%d",a[i]); // 输入什么都是 1245120?这个数又代表什么意思?
printf("\n");
} 展开
5个回答
展开全部
第一个for语句,只管到scanf("%d",&a[i]); 读入数据。这个循环结束后,i的值已经是10.
第二个for语句,如果想每行输出一个数,应该管到printf("\n"); 此时,应该讲两个printf语句放到{ }中。这个程序第二个for实际上只管printf("%d",a[i]); 所有的数都显示在一行上。
第二个for管打印出数组中的数,因此不能省略。省略了打印的就是啊a[10]的值,而a[10]未曾定义。是内存中的内容。这是随机的。每次运行应该都不同。
第二个for语句,如果想每行输出一个数,应该管到printf("\n"); 此时,应该讲两个printf语句放到{ }中。这个程序第二个for实际上只管printf("%d",a[i]); 所有的数都显示在一行上。
第二个for管打印出数组中的数,因此不能省略。省略了打印的就是啊a[10]的值,而a[10]未曾定义。是内存中的内容。这是随机的。每次运行应该都不同。
展开全部
for(i=0;i<10;i++)
printf("%d",a[i]);
是一个语句
是循环输出数组0-9中的数
省略后,i=10
输出a[10],超出数组范围,其中的数是编译器初始化的,
你的编译器初始化为1245120
printf("%d",a[i]);
是一个语句
是循环输出数组0-9中的数
省略后,i=10
输出a[10],超出数组范围,其中的数是编译器初始化的,
你的编译器初始化为1245120
追问
为啥省略后,i=10?前面有
for(i=0;i<10;i++)
scanf("%d",&a[i]);
这两句话呀!
追答
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
printf("%d",a[i]);
}
这样写的话是每输入一个,就输出一个
没有大括号的话,for循环中只有scanf这一句
printf是在退出循环之后执行的
退出循环时 i 就等于10了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(i=0;i<10;i++) ← // 此句为何不能省略?意义何在?省略后为何
这就就是用来循环以输出全部内容的啊,
没有这一句的话,此时i=10,a[10]应该溢出了
这就就是用来循环以输出全部内容的啊,
没有这一句的话,此时i=10,a[10]应该溢出了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、printf函数一次只能打印一个,所以要用循环打印10次才能将a打印完毕;
2、经我的验证没有出现你说的问题,结果正确无误
2、经我的验证没有出现你说的问题,结果正确无误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼正解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询