这里为什么有两个scanf,有一个不就够了,怎么有两个

img

第一个在循环的外边,得扫描之后才能判断是否进入循环

代码呢?

简单来说,外面那个scanf是让你进去while循环,里面那个scanf是让你退出循环

一个也行 他这就是个例子
while(scanf(x) &&x!=-1)

还没输入x前,判断不了x是否不等于负一

第一个scanf先输入一个x,x不等于-1的话就加到s里,接着输入x,就是第二个scanf,直到输入x为-1的时候就不输入了

这是一个循环,当第一个scanf输入的x不等于-1是则执行循环,然后在循环里面不停的输入x进行判断(如果循环里没有scanf
,则结束循环时会直接进行下一行的语句,不会返回到循环上面的语句,这样你第一个scanf输入一次后程序就直接进行到底,没有第二次输入了)

第一个是循环执行前先要有一个初始值,
while里面的表示每次循环输入值,作用是不一样的

当然要两个啊,第一个是输入第一个数,然后在进入循环。
如果只要一个scanf可以用do-whlie循环,但是那个n会变成101。

缺少第一个scanf的话,必须先对x进行初始化,否则无法进入while循环。这样的话:总的一组成绩=你输入的+刚开始x初始化的值;

要循环,如果不等于负一就继续输入,然后进入上一个scanf

他这样写是容易读懂。第一次输入是给x接着是判断x是否等于-1,如果等于-1则不执行循环体。否则执行循环体。同样第二次输入给x.是作为下次循环的判断条件。直到输入为-1时,结束循环。