我有一个编程课程,目前有一个功课,根据用户在C程序中输入的月份和日期显示假日名称。
每当我编译并运行程序时,都没有错误。但是,如果我输入任何月份并按Enter键,它只会返回新年的一天,并且不会要求输入日期。它应该要求月份和日期然后显示相应的假期,但它似乎无法正常工作。
我想知道你是否可以提供正确语法的输入。
以下是我尝试创建的代码:
#include <stdio.h>
int main () {
char m;
int d;
printf("Enter Month: ");
scanf("%c", &m);
printf("Enter Date: ");
scanf("%d",&d);
if (m ="January" && d == 1)
printf("New year's day ");
else if (m ="July" && d ==1 )
printf("Canada day ");
else if (m = "December" && d ==25)
printf("Christmas day ");
else
printf("%c %d does not correspond to a fixed-date holiday ", m, d);
return 0;
}
答案 0 :(得分:0)
您必须在程序中更改的内容
1 - 不要使用char
类型来存储string
,您可以使用一组字符。
2 - =
不是比较运算符,它是赋值运算符,因此您应该使用函数strcmp()
,它用于比较两个字符串并返回不同字符的数量(如果两个字符串都返回0)是一样的)。
#include <stdio.h>
#include<string.h>
int main()
{
char m[10];
int d;
printf("Enter Month: ");
scanf("%s", m);
printf("Enter Date: ");
scanf("%d", &d);
if ( !(strcmp(m, "January")) && d == 1)
printf("New year's day ");
else if (!(strcmp(m, "July")) && d == 1)
printf("Canada day ");
else if (!(strcmp(m, "December")) && d == 25)
printf("Christmas day ");
else
printf("%s %d does not correspond to a fixed-date holiday ", m, d);
return 0;
}