vs2019都可以运行一到vc就报错
c语言吧
全部回复
仅看楼主
level 4
YZ科共体 楼主
当然vs里面scanf要改成scanf_s
代码贴二楼
2024年03月29日 03点03分 1
level 4
YZ科共体 楼主
#include <stdio.h>
int b(int year, int month, int day) {
if (month < 3) {
month += 12;
year--;
}
int c = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400) % 7;
return c;
}
int main() {
int year, month, day;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
if (month <= 0 || month > 12) {
printf("别几把乱输,小心我揍你\n");
return 0;
}
printf("请输入日期:");
scanf("%d", &day);
int d;
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
d = 31;
break;
case 4: case 6: case 9: case 11:
d = 30;
break;
case 2:
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
d = 29;
else
d = 28;
break;
default:
printf("我让你飞起来\n");
return 0;
}
if(day <= 0 || day > d) {
printf("再乱输我让你飞起来\n");
return 0;
}
int a = b(year, month, day);
if (year == 2023 && month == 11 && day == 7) {
printf("2023年11月7日是一个值得纪念的日子这天是星期");switch(a) {
case 0:
printf("一\n");
break;
case 1:
printf("二\n");
break;
case 2:
printf("三\n");
break;
case 3:
printf("四\n");
break;
case 4:
printf("五\n");
break;
case 5:
printf("六\n");
break;
case 6:
printf("日\n");
break;
default:
printf("别几把乱输数字\n");
}
} else if (year > 2003 && month == 9 && day == 6) {
2024年03月29日 03点03分 3
level 4
YZ科共体 楼主
printf("今天是%d年9月6日是邓宇星%d岁生日这难以忘怀的一天是星期", year,year - 2003);
switch(a) {
case 0:
printf("一\n");
break;
case 1:
printf("二\n");
break;
case 2:
printf("三\n");
break;
case 3:
printf("四\n");
break;
case 4:
printf("五\n");
break;
case 5:
printf("六\n");
break;
case 6:
printf("日\n");
break;
default:
printf("别几把乱输数字\n");
}}
else if (year > 2004 && month == 10 && day == 8) {
printf("今天是%d年10月8日是刘焱嵩%d岁生日这伟大的一天是星期",year, year - 2004);
switch(a) {
case 0:
printf("一\n");
break;
case 1:
printf("二\n");
break;
case 2:
printf("三\n");
break;
case 3:
printf("四\n");
break;
case 4:
printf("五\n");
break;
case 5:
printf("六\n");
break;
case 6:
printf("日\n");
break;
default:
printf("别几把乱输数字\n");
}
}
else if (year == 2003 && month == 9 && day == 6) {
printf("世界上最漂亮的妹子今天出生了这改变历史的一天是星期");
switch(a) {
case 0:
printf("一\n");
break;
case 1:
printf("二\n");
break;
case 2:
printf("三\n");
break;
case 3:
printf("四\n");
break;
case 4:
printf("五\n");
break;
case 5:
printf("六\n");
break;
case 6:
2024年03月29日 03点03分 4
level 4
YZ科共体 楼主
printf("日\n");
break;
default:
printf("别几把乱输数字\n");
}}
else {
printf("%d年%d月%d日是星期", year, month, day);
switch(a) {
case 0:
printf("一\n");
break;
case 1:
printf("二\n");
break;
case 2:
printf("三\n");
break;
case 3:
printf("四\n");
break;
case 4:
printf("五\n");
break;
case 5:
printf("六\n");
break;
case 6:
printf("日\n");
break;
default:
printf("别几把乱输数字\n");
}
}
return 0;
}
2024年03月29日 03点03分 5
level 14
报错内容发出来
2024年03月29日 03点03分 6
发了,大佬能看看吗?
2024年03月29日 04点03分
level 4
YZ科共体 楼主
这是vc上的报错
2024年03月29日 04点03分 7
level 4
YZ科共体 楼主
vs上则不报错
2024年03月29日 04点03分 8
吧务
level 13
只支持在函数的最前面定义变量吧[呵呵]
2024年03月29日 04点03分 9
所以应该怎么改?
2024年03月29日 04点03分
@YZ科共体 变量定义放到函数最前面
2024年03月29日 05点03分
@食肉折寿,食素短寿 是vc上有这个要求吗?
2024年03月29日 05点03分
@食肉折寿,食素短寿 好像改到前面去了也没有用
2024年03月29日 05点03分
level 7
改了一下,试试看?
2024年03月29日 06点03分 10
感谢
2024年03月29日 08点03分
吧务
level 14
vs2010过于老旧,不支持C99语法,不要使用vs2010
2024年03月29日 07点03分 11
学校学非要用vc,我也很无语
2024年03月29日 08点03分
c99是vc6时代的吧,后来的是c11,vs2013才支持。
2024年03月30日 02点03分
level 2
把定义的变量放到main函数开头试试
2024年03月29日 07点03分 12
@√哥 或者把后缀从.c改成.cpp试试
2024年03月29日 07点03分
level 4
YZ科共体 楼主
感谢大家,解决了,确实是int 赋值的问题,把int放在前面然后把赋值和int拆开单独放后面就解决了
2024年03月29日 08点03分 13
1