C 为什么程序给我警告,内置函数的声明不兼容
这是一个菜单驱动程序,允许用户: (1) 查看日历 (2) 查看特定日期在一周中的哪一天 (3) 退出程序 但它没有运行请帮助:C 为什么程序给我警告,内置函数的声明不兼容,c,C,这是一个菜单驱动程序,允许用户: (1) 查看日历 (2) 查看特定日期在一周中的哪一天 (3) 退出程序 但它没有运行请帮助: #include <stdio.h> #include<conio.h> #include<math.h> void load_menu(); void view_calender(); void view_date();`` int main (int argv, char** arv) { load_menu(); ret
#include <stdio.h>
#include<conio.h>
#include<math.h>
void load_menu();
void view_calender();
void view_date();``
int main (int argv, char** arv)
{
load_menu();
return ;
}
void load_menu()
{
int choice;
do
{
printf("Menu\n");
printff("1. View Calender\n");
printf("2. View on which day a particular dau falls\n");
printf("3. Exit Programme\n");
scanf("%d", &choice);
switch(choice)
{
case 1: view_calender();
break;
case 2: view_date();
break;
case 3: printf("Exiting Programme!\n");
exit(0);
break;
default: printf("Invalid Choice chosen\n");
break;
}
} while (choice != 3);
}
void view_calender()
{
int is_leap_year( int year ); /* True if leap year */
int leap_years( int year ); /* The number of leap year */
int today_of( int y, int m, int d); /* The number of days since the beginning of the year */
long days( int y, int m, int d); /* Total number of days */
void calendar(int y, int m); /* display calendar at m y */
int year,month;
printf("Enter the Month(mm): ");
scanf("%d", &month);
printf("Enter the Year(yyyy): ");
scanf("%d", &year);
calendar(year, month);
return 0;
int isLeapYear( int y ) /* True if leap year */
{
return(y % 400 == 0) || ((y % 4 == 0) && (y % 100 != 0));
}
int leapYears( int y ) /* The number of leap year */
{
return y/4 - y/100 + y/400;
}
int TodayOf( int y, int m, int d) /* The number of days since the beginning of the year */
{
static int DayOfMonth[] =
{ -1,0,31,59,90,120,151,181,212,243,273,304,334};
return DayOfMonth[m] + d + ((m>2 && is_leap_year(y))? 1 : 0);
}
long Days( int y, int m, int d) /* Total number of days */
{
int last_year;
last_year = y - 1;
return 365L * last_year + leapy_years(last_year) + TodayOf(y,m,d);
}
void view_calendar() /* display calendar at m y */
{
int month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char* day[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday" "Friday", "Saturday"};
int d;
int moti;
int yel;
int i;
printf("Enter date in this format dd-mm-yyyy: ");
scanf("%d-%d-%d", &d, &moti, &yel);
// correction for leap year
for (i = 1900; i < yel; i++)
if (i % 4 == 0 && (i % 100 != 0 || i % 400 == 0))
d += 366;
else
d += 365;
for (i = 0; i < moti - 1; i++)
d += month[i];
printf("This is a %s.\n", day[d % 7]);
return 0;
}
}
#包括
#包括
#包括
无效加载菜单();
无效视图_日历();
无效视图_日期()``
int main(int argv,字符**arv)
{
加载菜单();
回来
}
无效加载菜单()
{
智力选择;
做
{
printf(“菜单\n”);
printff(“1.查看日历\n”);
printf(“2.查看特定dau落在哪一天\n”);
printf(“3.退出计划”\n);
scanf(“%d”,选择(&C);
开关(选择)
{
案例1:视图_日历();
打破
案例2:查看日期();
打破
案例3:printf(“退出计划!\n”);
出口(0);
打破
默认值:printf(“选择的选项无效\n”);
打破
}
}while(选项!=3);
}
无效视图_日历()
{
int是闰年(int year);/*如果是闰年,则为True*/
整数闰年(整数年);/*闰年数*/
int today_of(inty,intm,intd);/*自年初以来的天数*/
长天数(整数y、整数m、整数d);/*总天数*/
无效日历(整数y,整数m);/*在整数y显示日历*/
int年,月;
printf(“输入月份(mm):”;
scanf(“%d”和“月”);
printf(“输入年份(yyyy):”;
scanf(“%d”和“年”);
日历(年、月);
返回0;
整数isLeapYear(整数y)/*如果是闰年,则为True*/
{
返回值(y%400==0)| |((y%4==0)和&(y%100!=0));
}
整数闰年(整数y)/*闰年数*/
{
返回y/4-y/100+y/400;
}
int TodayOf(int y,int m,int d)/*自年初以来的天数*/
{
静态int DayOfMonth[]=
{ -1,0,31,59,90,120,151,181,212,243,273,304,334};
月返回日[m]+d+((m>2&&is_闰年(y))?1:0);
}
长天数(整数y、整数m、整数d)/*总天数*/
{
去年的国际贸易;
上一年=y-1;
返回365L*上一年+飞跃年(上一年)+今天(y,m,d);
}
void view_calendar()/*在y轴显示日历*/
{
内月[]={31,28,31,30,31,30,31,31,30,31,31,31};
char*day[]={“星期日”、“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”};
int d;
int moti;
int yel;
int i;
printf(“以这种格式输入日期dd-mm-yyyy:”);
scanf(“%d-%d-%d”、&d、&moti、&yel);
//闰年修正
对于(i=1900;i
如果用户选择选项(2),程序必须显示用户输入日期的日期
例如,如果用户想知道2021年10月24日是哪一天,则必须提示他们输入年份(即2021年)、月份(即10月10日)和日期(即24日)
输出必须是一周中的某一天,例如“星期日”
执行选项(1)或(2)后,程序必须再次显示菜单。您显示的源代码会收到一条关于退出定义不兼容的警告,因为:
是一个保留标识符;它只能用于名为exit
的标准库例程exit
- 您的程序不包括将提供退出声明的
- 您的程序使用
,但没有声明。如果在没有声明的情况下使用例程,编译器将提供默认声明exit
- 默认声明用于返回
的函数,但int
的正确声明是不返回任何内容的函数(exit
),因此编译器警告您声明(默认提供)与内置标准函数不兼容void
要解决此问题,请在程序中插入
#include
。确切的错误消息是什么?我的错误消息是:警告:内置函数“exit”的不兼容隐式声明注意:包括“”或提供“exit”声明
此外,您还有从void
返回值的函数-返回函数和不从非void函数返回值的函数。。。还有一个printf
,我怀疑它是否存在……看来您正在view\u calender()中(声明和)定义函数。C不允许嵌套函数定义。@pmg:C允许嵌套函数定义。C标准不定义嵌套函数定义,但允许扩展。更好的说法是,标准C不支持嵌套函数定义。那么我应该做什么呢?我已经插入了#include,这样就解决了退出问题。请有人重新编写我的代码,它仍然在给我errors@Lenny:需要重写你的代码的人叫“Lenny”,这是你的程序;您需要修复您创建的其他错误。一个接一个地追踪他们,从每个汇编中报告的第一个开始。有时,您可以一次修复多个;有时,第一个错误会触发其他错误。