| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付赛孚耐:软件保护加密专家
身份认证令牌USB KEY   
共有 222 人关注过本帖
标题:[求助]C PRMIER PLUS后的一个题
收藏  订阅  推荐  打印 
wubizao
Rank: 3Rank: 3
来自:荆州长大电信
等级:中级会员
帖子:223
积分:3410
注册:2006-6-24
[求助]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: 2
等级:注册会员
帖子:53
积分:674
注册:2007-8-31

#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: 3Rank: 3
来自:荆州长大电信
等级:中级会员
帖子:223
积分:3410
注册:2006-6-24

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


在路上走,看见了C,从此爱上了她
2007-11-18 13:16
wubizao
Rank: 3Rank: 3
来自:荆州长大电信
等级:中级会员
帖子:223
积分:3410
注册:2006-6-24

我翻了下书
scanf()函数返回成功读入的项目的个数
如果没有读取项目(当它期望一个数值却你输入了一个非数值),scanf()就会返回0

在路上走,看见了C,从此爱上了她
2007-11-18 13:19
fanhgghgg
Rank: 1
等级:新手上路
帖子:11
积分:212
注册:2007-9-22

while(scanf("%d",&dayss)!=EOF&&adysss>=0)

{
....

}
2007-11-18 13:23
wubizao
Rank: 3Rank: 3
来自:荆州长大电信
等级:中级会员
帖子:223
积分:3410
注册:2006-6-24

多谢大家指导!

在路上走,看见了C,从此爱上了她
2007-11-18 13:32
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.115062 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved