c语言的三种循环:for,while,do while
格式:
while(scanf(“%d”,&n)!=EOF)
{
}
首先通过一个程序来回顾一下
问题描述
输入多个整数进行求和。
这是一个很新颖的问法,此处时说的是输入多个整数,而不是说输入n个整数,这便是要求多组输入的典型说法也就是要不断输入知道不能输入为止,是acm做题中常常遇见的要求。
我们一般都通过判断scanf的返回值来结束输入
CODE:
一、while
#include <stdio.h>
int main()
{
long num,sum=0L;
int status;
printf("enter an integer to be summed\n");
status=scanf("%ld",&num);
while(status==1)
{
sum+=num;
printf("enter an integer to be summed\n");
status=scanf("%ld",&num);
}
printf("Those intergers sum to %d.\n",sum);
}
二、do while
#include <stdio.h>
int main()
{
long num,sum=0L;
int status;
printf("enter an integer to be summed\n");
status=scanf("%ld",&num);
do
{
sum+=num;
printf("enter an integer to be summed\n");
status=scanf("%ld",&num);
}while(status==1);
printf("Those intergers sum to %d.\n",sum);
}
三、for
#include <stdio.h>
int main()
{
long num,sum=0L;
int status,i=0;
printf("enter an integer to be summed\n");
i=scanf("%ld",&num);
for(;i!=0;i=scanf("%ld",&num))
{
sum+=num;
printf("enter an integer to be summed\n");
}
printf("Those intergers sum to %d.\n",sum);
}
四、continue,break
#include <stdio.h>
int main()
{
long num,sum=0L;
int status;
printf("enter an integer to be summed\n");
status=scanf("%ld",&num);
while(1)
{
sum+=num;
printf("enter an integer to be summed\n");
if(status=scanf("%ld",&num))
continue;
else
break;
}
printf("Those intergers sum to %d.\n",sum);
}
笔记本
- ==是相等运算符,不要与=混淆。
- scanf()返回成功读取项的数量,如果用户输入的不是数字,scanf()会读取失败并返回0.
- scanf()在转换值之前出了问题(例如检测到文件结尾),会返回一个特殊值EOF(其值通常被定义为-1).这个值也会引起循环终止。
- for语句形式
for(initialize;test;update)
statement
for语句使用三个表达式来控制循环过程,分别用分号隔开。initialize表达式在执行for语句之前执行一次,然后对test求值,如果表达式为真(或非零),执行循环一次;接着对update表达式求值,并再次检查test表达式。