C语言function调用问题。

#include <stdio.h>
int main(void)
{ int jsts (int day);
char name[40];
int day;
int k=0;
int status;
int i;
printf("你好啊,能告诉我你名字缩写.\n\n");
scanf("%s",&name);
printf("原来是%s啊,真的太荣幸了。\n\n",name);
printf("那你告诉我,今天的是12月多少日啊.\n\n");
scanf("%d",&day);
printf("天啊,那%d天前,也就是12月15日是您生日啊.\n\n",jsts(k));
printf("生日快乐啊\n\n");
printf("虽然有点迟了\n\n");
printf(" 0 0 0 0 \n");
printf(" 0 0 0 0 \n");
printf(" 0 0 0 0 \n");
printf(" 0 0 0\n");
printf(" 0 0\n");
printf(" 0 0\n");
printf(" 0 0\n");
printf(" 0 0\n");
printf(" 0 0 \n");
printf(" 0 0 \n");
printf(" 0 0 \n");
printf(" 0 \n");

printf("程序正在关闭中。\n");
printf("已关闭。\n");
return 0;}

int jsts (int day)
{
int i=15;
int k;
for(k=0;day>i;day--)
{k=day-i;}

return k; }

这个程序的关键在于算多少天前的那个值,我call function之后,不太会用,求助。

嘿嘿, 程序蛮漂亮的啊。。你说的是下面这句话中的函数调用么?
printf("天啊,那%d天前,也就是12月15日是您生日啊.\n\n",jsts(k));
这句话中的jsts (k)返回一个int 型数据对应前面的%d...
然后计算这是迟到的第几天.已经设置的生日时间是15(这里建议自己改进一下。。)
不解释jsts函数了,这个函数写的不好:
for(k=0;day>i;day--)
{k=day-i;}
假设day >i则k最后更新为day>=15的时候k = 0;
假设day < i 则循环直接跳出k =0...
所以函数返回值唯一。。。
如果要写的话,用简单的代码吧。。。代码的易读性也很重要~!!!!
直接判断是否是大于或者小于15然后相减就是相差日期了。。。
不用这么麻烦。。。
程序的想法蛮新颖的。。。加油~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-16
printf("天啊,那%d天前,也就是12月15日是您生日啊.\n\n",jsts(k));
根本不用function啊
printf("天啊,那%d天前,也就是12月15日是您生日啊.\n\n",day-15);
就可以了三
相似回答