2018-03-25while循环与scanf()函数

#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
    long num;
    long sum=0;
    int status;
    printf("请输入你想要求和的数字(输入q退出):");
    status=scanf("%ld",&num);
    while(status==1)
    {sum=sum+num; 
    printf("请输入你想要求和的数字(输入q退出):");
    status=scanf("%ld",&num);
    } 
    printf("和为%ld",sum);
    return 0;
}
捕获.PNG

scanf()函数返回成功读取项的数量。如果scanf()成功读取到一个整数,就把该数存入num并返回1,随后返回值将被赋给status。这样做同时更新了num和status的值,如果用户输入的不是数字,scanf()会读取失败并返回0。

#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
    long num;
    long sum=0;
    int status;
    printf("请输入你想要求和的数字(输入q退出):");
    status=scanf("%ld",&num);
    while(status=1)
    {sum=sum+num; 
    printf("请输入你想要求和的数字(输入q退出):");
    status=scanf("%ld",&num);
    } 
    printf("和为%ld",sum);
    return 0;
}

捕获.PNG

while(status==1) 变成 while(status=1)程序的循环一直循环,如果scanf()读取指定类型的输入形式的输入失败,就把无法读取的输入留在输入列表中 ,供下次读取。当scanf()把q作为整数读取失败时失败了,他把q留下。在下次循环时,scanf()从上次读取失败的地方(q)开始读取,scanf()把q作为整数读取,又失败了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容