| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1340 人关注过本帖
标题:do while循环问题
只看楼主 加入收藏
喝茶的小k
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-7-27
收藏
 问题点数:0 回复次数:9 
do while循环问题

源程序如下:

#include<stdio.h>

void main()
{
int i,j,n;
long int sum=0,temp;
char k;
do
{
{
printf("Please input a number to n:\n");
scanf("%d",&n);
if(n<1)
{
printf("The n must be no less than 1!\n");
break;
}
for(i=1;i<=n;i++)
{
temp=0;
for(j=1;j<=i;j++)
temp+=j;
sum+=temp;
}
printf("The sum of the sequence(%d) is %d\n",n,sum);
scanf("%c",&k);
}while(k='y')

}

请问这个程序为什么不能执行printf("The sum of the sequence(%d) is %d\n",n,sum);语句后的scanf("%c",&k);

do while 循环不能实现?该程序在vc下调试通过,但运行有问题

搜索更多相关主题的帖子: temp sum int The 
2006-07-27 10:51
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 

漏了些东西,提示有的,想实现什么功能啊sequence(3)=10?是你想要的么?

2006-07-27 13:19
喝茶的小k
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-7-27
收藏
得分:0 

去除do while循环,该程序实现的是数列求和,1+1+2++1+2+3+......+1+2+3+.....n

我的意思是加上一个循环,计算完一次后,提示你是否还要继续计算,如果是的话,就在计算一次


2006-07-27 14:17
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

#include<stdio.h>

void main()
{
int i,j,n;
long int sum=0,temp;
char k='y';
do
{

printf("Please input a number to n:\n");
scanf("%d",&n);
if(n<1)
{
printf("The n must be no less than 1!\n");
continue;
}
for(i=1;i<=n;i++)
{
temp=0;
for(j=1;j<=i;j++)
temp+=j;
sum+=temp;
}
printf("The sum of the sequence(%d) is %d\n",n,sum);
getchar(); //fflush(stdin);清除回车
scanf("%c",&k);
}while(k=='y');
getch();

}
楼主真是个粗心大萝卜!


对不礼貌的女生收钱......
2006-07-27 14:18
zpeye
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-7-26
收藏
得分:0 
while(k=='y')
看好 这里是==才可以
要不你那个条件就恒成立

2006-07-27 14:21
lhyanlh
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-7-11
收藏
得分:0 
scanf("%c",&amp;k);由于你前面输入数字的时候有个回车,这个回车就被这条语句接收了,所以呢,这语句起不了作用的!
2006-07-27 14:23
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
细节问题。
楼主可以用输入一个整数代替‘y',while(flag!=0)
楼主的do while();后面缺了分号。

倚天照海花无数,流水高山心自知。
2006-07-27 15:22
喝茶的小k
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-7-27
收藏
得分:0 

谢谢大家的指导,尤其是4楼和6楼的高人,

我想在请教一下6楼的高人,为什么scanf("%c",&k);由于前面输入数字的时候有个回车,这个回车就会被这条语句接收

谢谢


2006-07-27 15:25
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
因为你要接收的是字符,而刚好前面你输出有个换行符。
如果你要输入的是个int就不会出现这样的情况了。

倚天照海花无数,流水高山心自知。
2006-07-27 15:47
喝茶的小k
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-7-27
收藏
得分:0 

多谢多谢

学到不少东西,nuciewth,多谢了


2006-07-27 16:38
快速回复:do while循环问题
数据加载中...
 
   



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

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