首页 > 其他分享 >C语言新手疑问

C语言新手疑问

时间:2024-11-28 18:00:26浏览次数:13  
标签:31 printf month else year 新手 C语言 day 疑问

以下是一段驶入一个日期,然后输出下一天的日期的代码,但是这段代码我输入了日期之后程序什么也不输出,(注:把scanf改成scanf_s是因为visual studio一直说我返回值被忽略),至于为什么不输出,我找AI看了也没看明白,哪位大佬能不吝赐教一下,感激不尽

#pragma warning(disable:4996)

#include <stdio.h>



typedef struct date {//一个包含年月日的结构体

int year;

int month;

int day;

}date;

int isleap(date d) {//判断闰年函数



if ((d.year % 4 == 0 && d.year % 100 != 0) || (d.year % 400 == 0)) {

return 1;

}

else {

return 0;

}

}

int day1(date d) {

const int days[13] = { 0,31,28,31,30,31,30,31,30,31,30,31,30 };

if (d.month == 2 && d.day == 29) {

if (isleap(d)) {

printf("next day is %d/%d/%d", d.year, d.month + 1, 1);

}

else {

printf("wrong");

}

}

else if (d.month == 2 && d.day == 28) {

if (isleap(d)) {

printf("next day is %d/%d/%d", d.year, d.month, d.day + 1);

}

else {

printf("next day is %d/%d/%d", d.year, d.month + 1, 1);

}

}

else if (d.day == 30) {

if (days[d.month] == 30) {

if (d.month == 12) {

printf("next day is %d/%d/%d", d.year + 1, 1, 1);

}

else {

printf("next day is %d/%d/%d", d.year, d.month + 1, 1);

}

}

else if (d.day == 31) {

if (days[d.month] == 31) {

printf("next day is %d/%d/%d", d.year, d.month + 1, 1);

}

else {

printf("wrong");

}

}

else {

printf("next day is %d/%d/%d", d.year, d.month, d.day + 1);

}

}

return 1;

}

int main() {

date d;

scanf_s("%d %d %d", &d.year, &d.month, &d.day);

day1(d);

return 0;



}

标签:31,printf,month,else,year,新手,C语言,day,疑问
From: https://blog.csdn.net/2401_87318028/article/details/144117459

相关文章

  • 6.C语言函数(下)
    文章目录六、数组做函数参数七、嵌套调用和链式访问7.1嵌套调用7.2链式访问八、函数的声明和定义8.1单个文件8.2多个文件(重要)!!8.3static和extern8.3.1static修饰局部变量8.3.2static修饰全局变量8.3.3static修饰函数六、数组做函数参数在使用函数解决问......
  • C语言:运算符1(混合运算和算数运算符)
    各类数值型数据间的混合运算整型、实型、字符型数据间可以进⾏混合运算,如:10-'a'*1.5运算时,参加运算的两个数据如果类型不同,则⾸先将其类型转换成⼀致再运算,转换规则是:将优先级低的类型转换到优先级⾼的类型,被称作自动类型转换(小转大)。⾃动类型转换的形式为:大类型......
  • C语言:运算符2(赋值运算符)
    赋值运算符“=”称之为赋值运算符,其作用是将一个数据赋值给一个变量。如:a=5执行赋值运算的结果,是将右边的数据存入左边变量对应的内存单元中,赋值运算的顺序:由右向左赋值规则如果赋值运算符两侧的类型不一致,则在赋值时要进行类型转换,转换规则为:实型→整型变量:舍弃⼩数部......
  • C语言 九宫格输入法
    假设有九宫格输入法键盘布局如下:[1,.?!][2ABC][3DEF][4GHI][5JKL][6MNO][7PQRS][8TUV][9WXYZ][0空]注意:中括号[]仅为了表示键盘的分隔,不是输入字符。每个中括号中,位于首位的数字字符即是键盘的按键,按一下即可输入该数字字......
  • VScode配置C语言环境
    第一步下载VScode:VisualStudioCode-CodeEditing.Redefined第二步搜索下载VScode插件:​ C/C++Chinese上面两个插件安装完成后会提示重启VScode完成中文语言设置第三步配置C语言编译器:https://wwgn.lanzoul.com/iB4US2gj0ayh密码:8y95下载完成后解压,这里我选择保存......
  • C语言笔记——数组
    一维数组C语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。C中的数组1、数组的定义格......
  • C语言笔记--选择和循环语句
    分支语句ifswitch循环语句whilefordowhilegoto语句什么是语句C语句可分为以下五类:1.表达式语句2.函数调用语句3.控制语句4.复合语句5.空语句控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语言有九种控制语句。可......
  • [C语言]使用联合体和结构体 巧妙处理寄存器数据上位机读写的方法
    最近有在研究陀螺仪,里面就有对不同寄存器做配置,然后在读取一定地址的寄存器数据;发现这种逻辑工程上经常有;但是我接触到的代码基本都是通过一大堆宏定义去给他们寄存器地址命名,然后再自己读手册去搞配置;其实在性能上这个操作挺好的,但是我们似乎也没那么在意这几十个字......
  • C语言(运算符及位运算)
    运算符算术运算符基本的算术运算符+、-:正负值运算符(单目运算符)。+、-、*、/、%:加减乘除取余运算符(双目运算符)注意:进行除法运算的时候,除数是不能为0的。这些算术运算符的运算顺序与数学上的运算顺序相同。表达式和运算符的优先级与结合性算术表达式:是指用算术运算符......
  • C语言(流程控制)
    算法著名计算机科学家沃思提出了一个公式:数据结构+算法=程序数据结构:对数据的描述算法:对操作步骤的描述算法定义广义的说,未解决一个问题而采取的方法和有限的步骤,就称为“算法”例如:将⼤象放⼊冰箱的算法就可以如下描述:打开冰箱⻔-把⼤象装进去-关闭冰箱⻔算......