请教c语言大神?能回答哪个回答哪个?
如果看不清,代码在这个博客里面:http://www.cnblogs.com/xiaomi5320/p/4172460.html万分感谢!!!!!!!!!!!...
如果看不清,代码在这个博客里面:http://www.cnblogs.com/xiaomi5320/p/4172460.html
万分感谢!!!!!!!!!!! 展开
万分感谢!!!!!!!!!!! 展开
11个回答
展开全部
我想你的意思是直接打一句scanf输入5个数就行了,何必用for。确实,在知道要输入几个的情况下可以这么写。但是如果nValues根据实际需要而改变了,比如说要输入100个数据,那么scanf语句就会很长,或者在写代码的时候不知道要输入多少数据,而要由程序运行时候输入nValues的值。后面也是一样,要么代码很长,要么不知道具体要输出多少个数据。
再来看问题4,顺序上加号在倒数前面输出,但是还有if作用在+号的输出上,只有i>0才输出加号,所以实际上第一个加号不会输出,因为第一次循环i=0,不满足加号输出的条件。
至于为什么+号和倒数交替出现,是因为他们处于for循环里,每一次循环都先判断是否输出+号,然后输出倒数,而不是一行一行循环,先把+号那行循环输出nValues遍,再把倒数那行循环输出nValues遍,这种想法挺好笑的。
再来看问题4,顺序上加号在倒数前面输出,但是还有if作用在+号的输出上,只有i>0才输出加号,所以实际上第一个加号不会输出,因为第一次循环i=0,不满足加号输出的条件。
至于为什么+号和倒数交替出现,是因为他们处于for循环里,每一次循环都先判断是否输出+号,然后输出倒数,而不是一行一行循环,先把+号那行循环输出nValues遍,再把倒数那行循环输出nValues遍,这种想法挺好笑的。
展开全部
(1)不用循环只能输入一个数据,程序需要输入nValues个数据,所以要加循环;
(2)同(1)(只是输入变为输出)
(3)同(1)(只是输入变为计算和输出)
(4)因为加号是在循环语句中i>0时才输出的,所以第一项之前和最后一项(该项在循环之后输出)之前没有加号。
(2)同(1)(只是输入变为输出)
(3)同(1)(只是输入变为计算和输出)
(4)因为加号是在循环语句中i>0时才输出的,所以第一项之前和最后一项(该项在循环之后输出)之前没有加号。
追问
谢谢
另外还想请问下:
1、2、3中++i和4中的i++,都是for循环为什么会写成两个方式呢?
什么时候该用这个、什么时候用那个?
追答
在for循环中,为循环变量i+1的表达式,可以有多种写法,比如:++i, i++, i+=1,i=i+1等都可以,没有区别,但在其它地方++i, i++是有区别的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for是循环的意思,因为nvalues的数值不是固定的,所以要用循环
同上
同上,这些代码用于输出第二行的数据
在输出加号之前程序进行判断,是否是第一项或者最后一项
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-12-18
展开全部
问题1,2,3都是同一个问题,代码中要求输入、输出、赋值并输出的操作对象都是数组,nValues表示数组的大小,即数组中存了几个数,需要用for循环进行操作,for(i=0;i<nValues;i++)中,i=0表示,第一次循环时,i的值为0,i<nValues表示每次循环前判断i的值是否符合<nValues这个条件,i++表示,每次循环完后,i的值自增1,
问题4还是与for循环的意义有关,第一次循环时,i的值为0,不满足if中的i>0条件,故不执行printf("+");这一句,这一行输出中,输出到1/5.00的时候由于i不断自增1,值为5了,不满足i<nValues,所以跳出了for循环,执行下一句printf("=%lf",data[i]);,也不会输出加号
问题4还是与for循环的意义有关,第一次循环时,i的值为0,不满足if中的i>0条件,故不执行printf("+");这一句,这一行输出中,输出到1/5.00的时候由于i不断自增1,值为5了,不满足i<nValues,所以跳出了for循环,执行下一句printf("=%lf",data[i]);,也不会输出加号
更多追问追答
追问
谢谢你的回答,基本上听懂了。
另外还想请问下:
1、2、3中++i和4中的i++,都是for循环为什么会写成两个方式呢?
什么时候该用这个、什么时候用那个?
追答
++i含义是使用这个表达式前就进行自增1计算,i++这个表达式的值则是使用过这个表达式后才进行自增1计算,在for循环中这两种方法的效果一样,但是要用到这个表达式的值得时候就表现出差异,可以试运行一下这个程序,就能表现出来
#include
main(){
int i,j,k;
k=j=0;
for(i=0;i<5;i++)
printf("%3d,",j++);
printf("\n");
for(i=0;i<5;++i)
printf("%3d,",++k);
printf("\n");
}
运行结果为:
0,1,2,3,4
1,2,3,4,5
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案很简单: for 是循环, 人家做了条件判断,第一项不输出加号。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询