| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 469 人关注过本帖
标题:求助 函数的调用和循环
只看楼主 加入收藏
沁心凉
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-11-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
求助 函数的调用和循环
新手上路,请高手帮我看下下面的函数错在哪里!!
谢谢~~~~~!!
本题是关于俗语“三天打渔,两天晒网”,从1990-01-01号开始计算,然后自己输入一个数据,求出该天
是打渔还是晒网!
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int JS(int a);
int JS_2(int a);
int JS_3(int a);
void main()
{
    char a[11],b[5],c[3],d[3];
    int i,int_b,int_c,int_d,int_nian,int_yue,int_ri,nian,yue,he,qiuyu;
    printf("请输入年月日:");
    gets(a);
    //提取年
    for(i=0;i<4;i++)
    {
        b[i]=a[i];
        
    }
    b[4]='\0';
    //提取月
    for(i=5;i<7;i++)
    {
        c[i]=a[i];
        
    }
    c[2]='\0';
    //提取日
    for(i=8;i<10;i++)
    {
        d[i]=a[i];
   
    }
    d[2]='\0';
    //字符数组转换整数
    int_b=atoi(b);
    int_c=atoi(c);
    int_d=atoi(d);
    //求余
    int_nian=JS(int_b);
    int_yue=JS_2(int_c);
    int_ri=JS_3(int_d);
    nian=int_nian*360;
    yue=int_yue*12;
    he=nian+yue+int_ri;
    qiuyu=he%5;
    if(qiuyu>=0 || qiuyu<=2)
    {
        printf("打渔");
    }
   
    if(qiuyu>=3 || qiuyu<=4)
    {
        printf("晒网");
    }
   
}
//计算
int JS(int a)
{
    int e;
    e=a-1990;
    return(e);

}
int JS_2(int a)
{
    int f;
    f=a-1;
    return(f);
}
int JS_3(int a)
{
    int g;
    g=a-1;
    return(g);
}
搜索更多相关主题的帖子: 函数 
2010-12-09 20:46
aaronhexin
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:199
注 册:2010-12-6
收藏
得分:5 
不能简单的c乘上360吧,应该是需要判断是不是闰年,然后转化为天数
2010-12-09 21:18
沁心凉
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-11-22
收藏
得分:0 
不好意思 忘了个条件~~~!
  不算闰年~~!!!  呵呵
2010-12-09 21:45
沁心凉
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-11-22
收藏
得分:0 
回复 2楼 aaronhexin
不好意思 忘了个条件~~~!
  不算闰年~~!!!  呵呵
2010-12-09 21:46
rainbow1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:277
专家分:839
注 册:2010-5-19
收藏
得分:5 
先把下面两点弄清楚:
1、如果 ((年能被4除尽且不能被100除尽)或者 能被400除尽 )
则该年为闰年(2月份为29天)
否则 为平年 (2月份为28天)
2、让总天数除5,余数为1、2、3则为打鱼,否则为晒网。
其余就好办了。
2010-12-09 21:59
沁心凉
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-11-22
收藏
得分:0 
回复 5楼 rainbow1
恩恩  是的  余数是0或者4的时候  是晒网
余数是1,2,3的时候  是打渔~~!
 
2010-12-10 11:11
沁心凉
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-11-22
收藏
得分:0 
麻烦高手帮我看下  我的那个for循环和那个if语句有没有错误~~~!!!
  谢谢了~~~~~!
2010-12-10 11:13
王庆
Rank: 2
来 自:重庆大足
等 级:论坛游民
帖 子:5
专家分:17
注 册:2010-11-24
收藏
得分:5 
这个我也做过,看看这吧,可以不出界面一直在里面做,直到你选择n或N。
fun(int x,int y,int z)
{ int m,n,l,s,f,g;
  long u=0,h;
  int a[]={31,28,31,30,31,30,31,31,30,31,30,31};
  if(x%4!=0)
  s=0;
  else if((x%4==0&&x%100!=0)||(x%100==0&&x%400==0))
  s=1;
  printf("%d %d %d ",x,y,z);
  for(l=1990;l<=x;l++)
  for(m=0;m<12;m++)
  {a[1]=a[1]+s;
  for(n=1;n<=a[m];n++)
  {u++;if(l==x&&(m+1)==y&&n==z)
 {g=u; h=u%5;break; }}}
  printf("g=%d h=%d ",g,h);
  if(h<=3)
  f=1;
  else
  f=0;
  return f;

  }

#include<stdio.h>
main()
{ char c;
  int x,y,z,q;
  while(1)
  { printf("the game have start.\n");
  scanf("%d.%d.%d",&x,&y,&z);fflush(stdin);
  q=fun(x,y,z); printf("q=%d ",q);
  if(q==1)
  printf("\nthe fisherman is working.");
  else
  printf("\nthe fisherman is not working.");getch();
  clrscr();
  puts("Do want to try again (Y/N)");
  c=getchar();
  if(c=='n'||c=='N')
  break;
}  }





2010-12-11 23:16
快速回复:求助 函数的调用和循环
数据加载中...
 
   



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

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