| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 541 人关注过本帖
标题:求助 c语言运行问题。
只看楼主 加入收藏
jacenzhang
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-4-18
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
求助 c语言运行问题。
新人一个

题目:当运行程序时,从键盘输入1234-1 并回车,则运行结果_________
结果我已经运行出来了;输入两次12345-1的结果是12344

在dev-c++上面 debug过程是:n的初始值位1,当输入 第一次 12345-1回车,k=12345,n=12345,第二次输入12345-1后,运行表达式 k+=n;后 k=12344,n=-1

问题1:就是为什么 第一次输入后 n=12345, 第二次输入后 n=-1  为什么???
问题2: 如果只是输入12345 后回车,程序时没有反应的,必须要输入一个 整数-1  ???
求大神指教
               

#include<stdio.h>
int main ()
{   
        int k=0,n;
   
        do {
             scanf("%d\n",&n);
         k+=n;
    } while(n!=-1);
    printf("k=%d,n=%d\n",k);
}
搜索更多相关主题的帖子: 运行程序 include 表达式 c语言 键盘 
2015-04-18 15:45
无功
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:44
专家分:168
注 册:2015-4-12
收藏
得分:7 
scanf("%d\n",&n);
scanf函数不要\n
2015-04-18 18:28
加油加哟
Rank: 2
等 级:论坛游民
帖 子:18
专家分:23
注 册:2015-4-13
收藏
得分:7 
1、先执行do后面的语句,当while判断n = -1时就跳出循环了。
2、只输入一次12345,它就只对k和n进行赋值,但不会跳出循环,也就不会打印输出了。
2015-04-18 19:08
jacenzhang
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-4-18
收藏
得分:0 
谢谢二楼的 无功 大神,解决了我的问题1 ,
2015-04-19 12:01
jacenzhang
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-4-18
收藏
得分:0 
三楼的解释让我重新理解了scanf函数,同样感谢。

我的理解是  scanf函数第一次只读取了12345,当第二次循环是scanf读取了-1,

不是知道我的理解是不是对的?
请三楼回复。
2015-04-19 12:02
纳兰伽香
Rank: 10Rank: 10Rank: 10
来 自:北京
等 级:贵宾
威 望:10
帖 子:426
专家分:1650
注 册:2015-4-5
收藏
得分:7 
不是scanf读取,而是你的输入。他的意思就是  当你输入的n的值不为-1的时候。你就一直循环输入。
do while循环是先执行一次  然后再去判断。
然后你最后的打印,能得到你想要的结果么?
scanf("%d",&n);
printf("k=%d,n=%d\n",k,n);

风回小院庭芜绿,柳眼春相续
2015-04-19 12:20
快速回复:求助 c语言运行问题。
数据加载中...
 
   



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

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