| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 490 人关注过本帖
标题:字符串函数输出的问题!!急啊![em06]
只看楼主 加入收藏
klnhrs
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-6-28
收藏
 问题点数:0 回复次数:7 
字符串函数输出的问题!!急啊![em06]

还是那个输入年月日算出是第几天的问题
我想在输出的时候判断 如果是天数是1结尾的就输出 ......is the *1st day.
如果2结尾就......is the *2nd day.
3就是......is the *3rd day.
其余都......is the *4rd day.

#include<stdio.h>
#include<conio.h>
char fst(int s);
main()
{
int i,s=0,k=0,y,m,d,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("Please input YEAR MONTH DAY:\n");
scanf("%d %d %d",&y,&m,&d);
if((y%4==0&&y%100!=0)||(y%100==0)) k=1;
if((d<1||d>31)||((m==2&&k!=1)&&d>28)||((m==2&&k==1)&&d>29)||(m<1||m>12))
printf("Input Error!");
for(i=0;i<m;i++)
s=s+a[i];
if(k==1&&m>2) s=s+d+1;
else s=s+d;
printf("DATE %d-%d-%d is the %d",y,m,d,s);
fst(s);
printf(" day of year %d.",y);
}

char fst(int s)
{
int j;
char st[]="st";
char nd[]="nd";
char rd[]="rd";
char t[]="th";
j=(s+10)%10;
if(j==1) puts(st);
else if(j==2) puts(nd);
else if(j==3) puts(rd);
else puts(t);
}



但是现在有毛病。。。 输入错误后,还是输出了 这一天是第几天。 不用goto怎么做啊?
用exit(0); 函数行吗?
再就是后面关于1st 2nd。。。的输出我觉得有点麻烦, 有没有简单点的?
还有就是用puts函数输出后它就自动换行了。。怎么让下一句的printf接着输出?
不会了。。
那位帮帮我啊?
谢谢各位了·~~

[此贴子已经被作者于2007-6-30 10:35:43编辑过]

搜索更多相关主题的帖子: 函数 字符 输出 
2007-06-30 08:04
klnhrs
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-6-28
收藏
得分:0 
函数那部分我今天早上才看
不是太明白~~感觉比以前难了。
2007-06-30 08:05
klnhrs
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-6-28
收藏
得分:0 
....怎么没人理我??
2007-06-30 10:36
klnhrs
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-6-28
收藏
得分:0 

#include<stdio.h>
#include<conio.h>
char fst(int s);
main()
{
int i,s=0,k=0,y,m,d,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("Please input YEAR MONTH DAY:\n");
scanf("%d %d %d",&y,&m,&d);
if((y%4==0&&y%100!=0)||(y%100==0)) k=1;
if((d<1||d>31)||((m==2&&k!=1)&&d>28)||((m==2&&k==1)&&d>29)||(m<1||m>12))
{printf("Input Error!");exit(0);}
for(i=0;i<m;i++)
s=s+a[i];
if(k==1&&m>2) s=s+d+1;
else s=s+d;
printf("DATE %d-%d-%d is the %d",y,m,d,s);
fst(s);
printf(" day of year %d.",y);
}

char fst(int s)
{
int j;
char st[]="st";
char nd[]="nd";
char rd[]="rd";
char t[]="th";
j=(s+10)%10;
if(j==1) puts(st);
else if(j==2) puts(nd);
else if(j==3) puts(rd);
else puts(t);
}


我现在只能做这么多了。。。

2007-06-30 10:37
klnhrs
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-6-28
收藏
得分:0 
.................
2007-06-30 16:41
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 
老兄别气晕,你说说还有问题吧。

深山苦学C语言,终年不见外面世界。
2007-06-30 17:07
Javal
Rank: 1
等 级:新手上路
威 望:1
帖 子:108
专家分:0
注 册:2006-5-7
收藏
得分:0 
if((y%4==0&&y%100!=0)||(y%100==0)) k=1;

==> if((y%4==0&&y%100!=0)||(y%400==0)) k=1;

注意代码格式

猝然临之而不惊,无故加之而不怒 /?spaced" target="_blank">Linux C资料
2007-06-30 17:16
klnhrs
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-6-28
收藏
得分:0 

哦对。。 马虎了

2007-06-30 17:43
快速回复:字符串函数输出的问题!!急啊![em06]
数据加载中...
 
   



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

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