xianzhi157
xianzhi157
2019-12-03 21:14
采纳率: 60%
浏览 533

编译报错为[Error] ld returned 1 exit status,但经检查无在运行的程序

//【日期】黑色星期五

#include "stdio.h"

#include

#include "math.h"
extern int a;
int fa(int b) //判断为星期几的函数,返回值x

{int c=13,x,y=0;

        if(b>12||b<1){
        printf("month is error.\n"); goto out;  }  
        if(a<=1900){
        printf("year is error.\n"); goto out;   }  
        if(((b==1||b==3||b==5||b==7||b==8||b==10||b==12)&&c>31)||(((a%4==0&&a%100!=0)||(a%400==0))&&b==2&&c>29)||((a%4!=0||a%100==0)&&c>28)||((b==6||b==4||b==9||b==11)&&c>31)||(c<1)){
        printf("day is error.\n");  goto out; }     
        switch(b)    
        {   case 1:x=c%7+1;break;    
            case 2:x=(31+c)%7+1;break;    
            case 3:x=(31+28+c)%7+1;break;    
            case 4:x=(31+28+31+c)%7+1;break;    
            case 5:x=(31+28+31+30+c)%7+1;break;    
            case 6:x=(31+28+31+30+31+c)%7+1;break;    
            case 7:x=(31+28+31+30+31+30+c)%7+1;break;    
            case 8:x=(31+28+31+30+31+30+31+c)%7+1;break;    
            case 9:x=(31+28+31+30+31+30+31+31+c)%7+1;break;    
            case 10:x=(31+28+31+30+31+30+31+31+30+c)%7+1;break;    
            case 11:x=(31+28+31+30+31+30+31+31+30+31+c)%7+1;break;    
            case 12:x=(31+28+31+30+31+30+31+31+30+31+30+c)%7+1;break;    
        }
        if(a>2013)x+=(a-2013)/4+(a-2013);    
        if(a<2013)   {  
        x-=(2016-a)/4+(2013-a)-7;   
        x+=7*((2015-x)/7);  
                    }  

        if(x>=7)x=x%7;    
        out:  
        return x;    
         } 

//主函数判断某一年的13号是不是为星期五 
int main()
{
int  fa(int b) ; 
int i=0,j[10],b,s;

scanf("%d",&a);
for(b=1;b<13;b++){
    if(fa(b)==5){
        j[i]=b;
        i++;
    }
    } 
s=i;
printf("There are %d Black Fridays in year %d.\n",i,a);
printf("They are:\n");

for(i=0;i<s;i++){
    printf("%d/%d/13\n",a,j[i]);
}

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • chenxizhan1995
    chenxizhan1995 2019-12-04 09:21

    extern int a;这一句,换成int a;就行了。
    有 extern 表示这只是声明,但没有定义(意思是:a是个int类型的变量;但它不在这里定义,编译器你要到别处去找);
    这个文件一直到末尾都没有变量a的定义,所以链接时找不到定义。

    点赞 评论

相关推荐