带C的日历-无法使其工作
只有当我的第二个输入是星期天时,日历才能正常工作。我该如何做才能让它准确地定位到正确的日期?还有什么方法可以使代码更简单、更好、更少混乱,并使日历的格式看起来更好带C的日历-无法使其工作,c,C,只有当我的第二个输入是星期天时,日历才能正常工作。我该如何做才能让它准确地定位到正确的日期?还有什么方法可以使代码更简单、更好、更少混乱,并使日历的格式看起来更好 #include<stdio.h> int main() { int i,number,startday; //getting user input printf("Enter Total Number of Day in the Month:",number); scanf("%d",
#include<stdio.h>
int main()
{
int i,number,startday;
//getting user input
printf("Enter Total Number of Day in the Month:",number);
scanf("%d", &number);
printf("Enter Starting Day of The Month (0-6 Sunday-Saturday):",startday);
scanf("%d", &startday);
//formatting
printf(" Sun Mon Tue Wed Thu Fri Sat \n");
printf("_______________________________________ \n");
//loop
for(i=1;i<=number;i++)
{
printf("%5d", i);
if(i == 7 || i == 14 || i == 21 || i == 28)
{
printf("\n");
printf("\n");
}
}
//formatting
printf("\n_______________________________________");
return 0;
}
首先阅读并学习和的真实格式 . 你写道:
printf("Enter Total Number of Day in the Month:",number);
应该是:
printf("Enter Total Number of Day in the Month: ");
你的资料来源几乎没有变化:
#include <stdio.h>
int main(void)
{
int i, number, startday;
//getting user input
printf("Enter Total Number of Day in the Month: ");
scanf("%d", &number);
printf("Enter Starting Day of The Month (0-6 Sunday-Saturday): ");
scanf("%d", &startday);
//formatting
printf(" Sun Mon Tue Wed Thu Fri Sat\n");
printf("______________________________________\n");
///fill calendar with proper space " "
i=0;
while (i<startday){
printf("%5c", ' ');
i++;
}
for(i=1;i<=number;i++){
printf("%5d", i);
if((startday+i)%7==0){
printf("\n\n");
}
}
//formatting
printf("\n_______________________________________\n");
return 0;
}
这段代码可以工作,但我建议您检查用户输入
在整数数据类型和真范围中使用正确格式
使用simple if day<28 | | day>31或if startday<0 | | | startday>6,并检查每个扫描是否成功,如果不成功,可能会带消息退出。使用ifi%7==0而不是ifi==7 | i==……请启用并处理编译器警告。您为printf提供了一个参数,但没有两次提供格式说明符。但问题已被删除。你应该试着缩进每月的第一天,并在适当的地方写一行新行。@WeatherVane你这是什么意思,对不起,我的英语不是很好