循环

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);
}

笔记本

  1. ==是相等运算符,不要与=混淆。
  2. scanf()返回成功读取项的数量,如果用户输入的不是数字,scanf()会读取失败并返回0.
  3. scanf()在转换值之前出了问题(例如检测到文件结尾),会返回一个特殊值EOF(其值通常被定义为-1).这个值也会引起循环终止。
  4. for语句形式
for(initialize;test;update)
    statement

for语句使用三个表达式来控制循环过程,分别用分号隔开。initialize表达式在执行for语句之前执行一次,然后对test求值,如果表达式为真(或非零),执行循环一次;接着对update表达式求值,并再次检查test表达式。                                                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值