gpt4 book ai didi

使用 C 的日历 — 无法让它工作

转载 作者:行者123 更新时间:2023-11-30 20:50:34 25 4
gpt4 key购买 nike

只有当我的第二个输入是周日时,日历才能正常工作。我该如何使其真正空间到正确的日期?有没有什么办法可以让代码更简单、更好、不那么困惑,并且让日历的格式看起来更好看?

#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() 的真实格式和 scanf()

你写:

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;
}

此代码有效,但我建议您检查用户输入具有正确的整数数据类型格式和真实范围简单if (day < 28 || day > 31)if (startday < 0 || startday > 6) ,并检查每个 scanf()成功,如果没有成功,可能会退出(带有消息)。

关于使用 C 的日历 — 无法让它工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43700065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com