| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 302 人关注过本帖
标题:小问题 求助下
只看楼主 加入收藏
甁瓶里D罐罐
Rank: 2
等 级:论坛游民
帖 子:34
专家分:20
注 册:2010-1-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
小问题 求助下
#include"stdio.h"
int main ()
{
    int x,y,z;
    char m;
    int tian(int x,int y,int z);
loop:printf("请输入年月日:");
scanf("%d%d%d",&x,&y,&z);
printf("你输入的是%d年%d月%d日 \n",x,y,z);
loop1:printf("请确认y/n:");
scanf("%c",&m);
if(m=='n')
goto loop;
else if(m=='y')
tian(x,y,z);
else
goto loop1;
}

int tian(int x,int y,int z)
{
    int year(int x);
    int m,n,k,num;
    m=31;n=30;
    k=year(x);
    if(y==1)
        num=z;
    if(y==2)
        num=m+z;
    if(y==3)
        num=m+k+z;
    if(y==4)
        num=m+m+k+z;
    if(y==5)
        num=2*m+n+k+z;
    if(y==6)
        num=3*m+n+k+z;
    if(y==7)
        num=3*m+2*n+k+z;
    if(y==8)
        num=4*m+2*n+k+z;
    if(y==9)
        num=5*m+2*n+k+z;
    if(y==10)
        num=5*m+3*n+k+z;
    if(y==11)
        num=6*m+3*n+k+z;
    if(y==12)
        num=6*m+4*n+k+z;
    printf("这是第%d天",num);
}


int year(int x)
{
    int a;
    if(x%4==0)
        if(x%100==0)
            if(x%400==0)
                a=1;
            else
                a=0;
        else
            a=1;
    else
        a=0;
    if(a==1)
        return(29);
    if(a==0)
        return(28);
}
图片附件: 游客没有浏览图片的权限,请 登录注册
  为什么会出现两次 请确认y/n 呢
搜索更多相关主题的帖子: include 年月日 
2010-04-20 00:19
MIQIKing
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:36
专家分:106
注 册:2010-3-21
收藏
得分:15 
#include"stdio.h"
int main ()
{
    int x,y,z;
    char m;
    int tian(int x,int y,int z);
loop:printf("请输入年月日:");
scanf("%d%d%d",&x,&y,&z);
getchar();                //加一行这个
printf("你输入的是%d年%d月%d日 \n",x,y,z);
loop1:printf("请确认y/n:");
scanf("%c",&m);
if(m=='n')
goto loop;
else if(m=='y')
tian(x,y,z);
else
goto loop1;
}

int tian(int x,int y,int z)
{
    int year(int x);
    int m,n,k,num;
    m=31;n=30;
    k=year(x);
    if(y==1)
        num=z;
    if(y==2)
        num=m+z;
    if(y==3)
        num=m+k+z;
    if(y==4)
        num=m+m+k+z;
    if(y==5)
        num=2*m+n+k+z;
    if(y==6)
        num=3*m+n+k+z;
    if(y==7)
        num=3*m+2*n+k+z;
    if(y==8)
        num=4*m+2*n+k+z;
    if(y==9)
        num=5*m+2*n+k+z;
    if(y==10)
        num=5*m+3*n+k+z;
    if(y==11)
        num=6*m+3*n+k+z;
    if(y==12)
        num=6*m+4*n+k+z;
    printf("这是第%d天",num);
}


int year(int x)
{
    int a;
    if(x%4==0)
        if(x%100==0)
            if(x%400==0)
                a=1;
            else
                a=0;
        else
            a=1;
    else
        a=0;
    if(a==1)
        return(29);
    if(a==0)
        return(28);
}

原因是这样的,再输入三个数分别赋值给 x,y,z 后又敲了个回车 所以产生了两次输出是一样的。
用getchar()吸收这个回车就好了!
2010-04-20 06:32
明王朝
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:58
专家分:196
注 册:2009-11-3
收藏
得分:5 
2010-04-20 07:01
快速回复:小问题 求助下
数据加载中...
 
   



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

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