关于C语言SWICH和CHAR的问题
发布网友
发布时间:2023-09-04 01:23
我来回答
共6个回答
热心网友
时间:2024-11-26 23:15
错在不能给 字符变量 赋 字符串常量,而且输出格式控制里面,输出字符串为%s.
楼上给出的程序应该也不对,因为 字符数组 y[ ]是不能整体赋值的,只能初始化的时候整体给初始值,而复制只能对单独的y[0]......y[10]单独赋值。但这就太麻烦了。
楼主就不要再用字符变量或字符数组,直接每个case语句接个printf更好:
比如:case1: printf("Monday");break;
#include"stdio.h"
void main()
{
int x;
printf("请输入1-7间的任意整数:");
scanf("%d",&x);
if (x<1||x>7) printf("输入错误!");
else
{
switch (x)
{
case 1: printf("Monday");break;
case 2: printf("Tuesday");break;
case 3: printf("Wednesday");break;
case 4: printf("Thursday");break;
case 5: printf("Friday");break;
case 6: printf("Saturday");break;
case 7: printf("Sunday");break;
}
}
}
热心网友
时间:2024-11-26 23:16
char y[10]
if (x<1||x>7) printf("输入错误!");
else
{
switch (x)
{
case 1: y="Monday";break;
case 2: y="Tuesday";break;
case 3: y="Wednesday";break;
case 4: y="Thursday";break;
case 5: y="Friday";break;
case 6: y="Saturday";break;
case 7: y="Sunday";break;
}
}
printf("%s",y);
热心网友
时间:2024-11-26 23:16
#include"stdio.h"
void main()
{
int x;
//char y[20];
printf("请输入1-7间的任意整数:");
scanf("%d",&x);
if (x<1||x>7) printf("输入错误!");
else
{
switch (x)
{
case 1: printf("Monday");break;
case 2: printf("Tuesday");break;
case 3: printf("Wednesday");break;
case 4: printf("Thursday");break;
case 5: printf("Friday");break;
case 6: printf("Saturday");break;
case 7: printf("Sunday");break;
}
}
printf("\n");//printf("%s",y);
}
输入或者输出字符串的时候最好采用getchar函数,或者定义字符数组,然后循环输出,不然是不能直接用字符定义的类型去输出字符串的。
热心网友
时间:2024-11-26 23:17
y='Monday'
y是字符型变量,'Monday'是错误的,单引号只能表述字符而不是字符串。
热心网友
时间:2024-11-26 23:17
y='Monday'这样的赋值是错误的,因为你的y定义为了char(字符型),这种类型只能给她赋值一个字符,而不是一个字符串。
热心网友
时间:2024-11-26 23:18
switch没有问题,问题是你把一个字符串(其实也不是)赋值给一个字符,所以错了,char ch;
ch = 'a'; 这里只能有一个字符