当前位置: 代码迷 >> C语言 >> [求助]一个弱弱的问题
  详细解决方案

[求助]一个弱弱的问题

热度:153   发布时间:2007-04-08 19:44:16.0
[求助]一个弱弱的问题
假如说我在主函数中用到了一个变量,最后我想写一个函数,也要用这个变量,怎么能把主函数的这个变量加到我后写的这个函数中?
搜索更多相关的解决方案: 函数  

----------------解决方案--------------------------------------------------------

那不能直接用哈`~`
除非定义为全局变量..

还可以作为函数参数``~
若还要改变它的值呢~`就用指针参数咯..


----------------解决方案--------------------------------------------------------
恩~~~~~谢谢斑竹
----------------解决方案--------------------------------------------------------

还是直接看程序吧有问题:
#include<stdio.h>
int date=0;
void week()/*判断这一天是星期几*/
{switch(date%7)
case0: printf("That Day Is SUNDAY");break;
case1: printf("That Day Is MONDAY");break;
case2: printf("That Day IS TUESDAY");break;
case3: printf("That Day Is WENSDAY");break;
case4: printf("That Day Is THURSDAY");break;
case5: printf("That Day Is FIRDAY");break;
case6: printf("That Day Is SATURDAY");break;
}
main()
{
int b,i,k,year,leap,month,day;
int monthday[12]={31,28,31,30,31,30,31,31,30,31,30,31};
clrscr();
clrscr();printf("Please Input a Year:") ;
scanf("%d",&year);
if(year%4==0)/*判断闰年*/
{ if(year%100==0)
{ if(year%400==0)
leap=1;
else leap=0;
}
else leap=1;
}
else leap=0;
cl-rscr();
printf("Please Input a Month:") ;
scanf("%d",&month);
while(1)
{
if(month>12||month<=0)
{
printf("Input Error!Please Input a Month Again:") ;
scanf("%d",&month);
}
else{
clrscr();
break;
}
}

printf("Please Input a Day:");
scanf("%d",&day);
for(i=0;i<month-1;i++)
{ date=monthday[i]+date ;
}
if(leap==1) date++;
date=date+day;
clrscr();/*输出这一天是这一年的第几天*/
printf("%d,%d,%d Is The %d Day Of The Year",year,month,day,date);
week();
return 0;
}


----------------解决方案--------------------------------------------------------
这个应该直接用传参吧

void week(date)


----------------解决方案--------------------------------------------------------

用全局变量也可以,不过有点浪费空间


----------------解决方案--------------------------------------------------------
tc2上运行不通过,说我break放错了地方
----------------解决方案--------------------------------------------------------

少加了{},浪费我时间
#include<stdio.h>
int date=0;
void week()/*判断这一天是星期几*/

{
{switch(date%7)
case0: printf("That Day Is SUNDAY");break;
case1: printf("That Day Is MONDAY");break;
case2: printf("That Day IS TUESDAY");break;
case3: printf("That Day Is WENSDAY");break;
case4: printf("That Day Is THURSDAY");break;
case5: printf("That Day Is FIRDAY");break;
case6: printf("That Day Is SATURDAY");break;
}
}
不过你即使判断出是闰年又怎么样,建议你写一个二维数组
main()
{
int b,i,k,year,leap,month,day;
int monthday[12]={31,28,31,30,31,30,31,31,30,31,30,31};
clrscr();
clrscr();printf("Please Input a Year:") ;
scanf("%d",&year);
if(year%4==0)/*判断闰年*/
{ if(year%100==0)
{ if(year%400==0)
leap=1;
else leap=0;
}
else leap=1;
}
else leap=0;
cl-rscr();
printf("Please Input a Month:") ;
scanf("%d",&month);
while(1)
{
if(month>12||month<=0)
{
printf("Input Error!Please Input a Month Again:") ;
scanf("%d",&month);
}
else{
clrscr();
break;
}
}

printf("Please Input a Day:");
scanf("%d",&day);
for(i=0;i<month-1;i++)
{ date=monthday[i]+date ;
}
if(leap==1) date++;
date=date+day;
clrscr();/*输出这一天是这一年的第几天*/
printf("%d,%d,%d Is The %d Day Of The Year",year,month,day,date);
week();
return 0;
}


----------------解决方案--------------------------------------------------------

既然是主函数的变量,你就在前面加上一个static.


----------------解决方案--------------------------------------------------------

#include<stdio.h>
#include<stdlib.h>
int date=0;
void week()/*判断这一天是星期几*/
{
switch(date%7)
{
case 0: printf("That Day Is SUNDAY");break; //中间要用一个空格隔开
case 1: printf("That Day Is MONDAY");break;
case 2: printf("That Day IS TUESDAY");break;
case 3: printf("That Day Is WENSDAY");break;
case 4: printf("That Day Is THURSDAY");break;
case 5: printf("That Day Is FIRDAY");break;
case 6: printf("That Day Is SATURDAY");break;
}
}

main()
{
int b,i,k,year,leap,month,day;
int monthday[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("Please Input a Year:") ;
scanf("%d",&year);
if(year%4==0)/*判断闰年*/
{
if(year%100==0)
{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else leap=0;
printf("Please Input a Month:") ;
scanf("%d",&month);
while(1)
{
if(month>12||month<=0)
{
printf("Input Error!Please Input a Month Again:") ;
scanf("%d",&month);
}
else
{
break;
}
}
printf("Please Input a Day:");
scanf("%d",&day);
for(i=0;i<month-1;i++)
{
date=monthday[i]+date ;
}
if(leap==1)
date++;
date=date+day;
/*输出这一天是这一年的第几天*/
printf("%d,%d,%d Is The %d Day Of The Year",year,month,day,date);
week();
return 0;
}


----------------解决方案--------------------------------------------------------
  相关解决方案