标题:为什么没有执行最后的求和,程序就退出了
只看楼主
masterl
Rank: 2
等 级:论坛游民
威 望:1
帖 子:16
专家分:31
注 册:2017-10-12
结帖率:50%
已结贴  问题点数:10 回复次数:7 
为什么没有执行最后的求和,程序就退出了
#include<stdio.h>
int main(void)
{  
    long num;
    long sum=0L;
    int status;

    printf("please enter an integer to be summed ");
    printf("(q to quit): ");
    status=scanf("%ld",&num);
    while (status == 1)
    {  
        sum= sum+num;
        printf("please enter next integer (q to quit): ");
        status=scanf("%ld",&num);
    }
    printf("Those integers sum to %d.\n", sum);

    return 0;
}
搜索更多相关主题的帖子: 求和 num sum status printf 
2017-10-18 20:24
yinqirui9
Rank: 2
等 级:论坛游民
威 望:1
帖 子:7
专家分:35
注 册:2017-9-14
得分:3 
long sum = 0;
2017-10-19 00:10
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
得分:3 
程序应该是对的。是不是生成的exe程序不执行求和?如果说exe不执行的话,你在源文件里的return 0;前加个getch();或者包含头文件<stdlib.h>然后return 0;前加个system("pause");
2017-10-19 08:13
masterl
Rank: 2
等 级:论坛游民
威 望:1
帖 子:16
专家分:31
注 册:2017-10-12
得分:0 
回复 3楼 pydlq
还是不行,不是暂停的问题,是根本不执行最后的pringf.
2017-10-19 09:21
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:4 
程序运行没问题,见下图。
只有输入q退出输入数据才求和的
2017-10-19 10:04
我忘乐
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2017-7-18
得分:0 
回复 4楼 masterl
你把程序运行一下输入:1
                      2
                      3
                      4
                      a
2017-10-19 10:17
佐德
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-1-3
得分:0 
看起来就是status ==1 一直是true 导致一直退不出while 循环
2017-10-19 22:25
yinqirui9
Rank: 2
等 级:论坛游民
威 望:1
帖 子:7
专家分:35
注 册:2017-9-14
得分:0 
呵呵
你知道为什么吗?
你先把scanf("%ld",&num);的返回类型弄清楚吧。

之所以输入q才能结束,是因为q不属于num的long类型
所以scanf会判定你输入不成功,就返回0了,你才会退出循环。
2017-10-22 01:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-481525-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.822206 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved