标题:[求助]C PRMIER PLUS后的一个题
只看楼主
wubizao
Rank: 1
来 自:荆州长大电信
等 级:新手上路
帖 子:223
专家分:0
注 册:2006-6-24
 问题点数:0 回复次数:5 
[求助]C PRMIER PLUS后的一个题
第四版第五章编程练习3
原题:写一程序,要求用户输入天数,然后转化为周数和天数。
显示如下:
18 days are 2 weeks,4days.
要求:
使用一个while循环让用户重复输入天数;当用户输入一个非数值(如Q)时,程序终止循环。
我是这样写的:
#include<stdio.h>
#define WL 7
int main(void)
{
int dayss;
int weeks,days;

scanf("%d",&dayss);
while(dayss>=0)
{
weeks=dayss/WL;
days=dayss%WL;
printf("%d days are %d weeks,%d days\n",dayss,weeks,days);
printf("Next input?\n");
scanf("%d",dayss);
}
return 0;
}

我只是满足了题目的一个要求,重复输入,但是想了好久,不知道怎么样才能实现输入一个非数值就跳出循环?
望大家点拨下?
搜索更多相关主题的帖子: PLUS PRMIER 
2007-11-18 12:44
xDevil
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-8-31
得分:0 
#include<stdio.h>
#define WL 7
int main(void)
{
int dayss;
int weeks,days;
printf("input:\n");
while(scanf("%d",&dayss)&&dayss!=NULL)
{
weeks=dayss/WL;
days=dayss%WL;
printf("%d days are %d weeks,%d days\n",dayss,weeks,days);
printf("Next input?\n");
}
return 0;
}
2007-11-18 13:12
wubizao
Rank: 1
来 自:荆州长大电信
等 级:新手上路
帖 子:223
专家分:0
注 册:2006-6-24
得分:0 

我还没学到这个进度
这句scanf("%d",&dayss)&&dayss!=NULL
不明白
看来要加油了!


在路上走,看见了C,从此爱上了她
2007-11-18 13:16
wubizao
Rank: 1
来 自:荆州长大电信
等 级:新手上路
帖 子:223
专家分:0
注 册:2006-6-24
得分:0 
我翻了下书
scanf()函数返回成功读入的项目的个数
如果没有读取项目(当它期望一个数值却你输入了一个非数值),scanf()就会返回0

在路上走,看见了C,从此爱上了她
2007-11-18 13:19
fanhgghgg
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-9-22
得分:0 
while(scanf("%d",&dayss)!=EOF&&adysss>=0)

{
....

}
2007-11-18 13:23
wubizao
Rank: 1
来 自:荆州长大电信
等 级:新手上路
帖 子:223
专家分:0
注 册:2006-6-24
得分:0 
多谢大家指导!

在路上走,看见了C,从此爱上了她
2007-11-18 13:32



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




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

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