【发布时间】:2019-03-23 03:46:24
【问题描述】:
我正在尝试在 C 中创建一个带有大小写切换和枚举的程序。我想插入一个在我的枚举日中预设的工作日。 程序运行良好,但输入工作日时出现错误。 代码如下:
#include <stdio.h>
int main(){
enum days{Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};
enum days weekDay;
int i = 0;
printf("Insert a week day: ");
scanf("%s", weekDay);
switch(weekDay){
case Sunday:
i=i+1;
printf("Number of the day: %i", i);
break;
case Monday:
i=i+2;
printf("Number of the day: %i", i);
break;
(...)
case Saturday:
i=i+7;
printf("Number of the day: %i", i);
break;
default:
printf("Error. Please insert a valid week day.");
break;
}
我怎样才能正确地写这个?
【问题讨论】:
-
我运行程序正常吗?这段代码编译成功没有警告吗?
-
此
scanf("%s", weekDay);会产生警告,您需要先阅读这些警告。格式说明符%s需要char*类型的参数,但weekday是enum类型。 -
您使用的 scanf 不正确,很抱歉我没有时间给出完整的答案,这里有一些快速的 cmets。 1. 你还不了解 C 中的数据类型。 2. 你还不了解 scanf。 3. 您可能还需要了解指针。如果我是你,在你对 1、2 和 3 有更多了解之前,我会避免使用 scanf。
标签: c enums switch-statement case