C语言输入一个 1 到 7 的数字,输出对应的星期名的缩写用if语句来写
时间: 2024-09-15 10:08:06 浏览: 94
你可以使用C语言的`switch-case`结构来实现这个功能,因为`switch`语句非常适合处理这类基于范围的条件判断。假设一周的缩写顺序是从0开始计数的(周日到周六对应0-6),下面是一个示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
int num;
printf("请输入一个1到7的数字代表星期(1-7对应周日到周六):");
scanf("%d", &num);
// 添加1是因为实际编码中周日是0,这里需要转换
num--;
switch (num) {
case 0: printf("Mon"); break; // 星期一
case 1: printf("Tue"); break;
case 2: printf("Wed"); break;
case 3: printf("Thu"); break;
case 4: printf("Fri"); break;
case 5: printf("Sat"); break;
default: printf("输入错误,应为1到7之间的数字!"); break; // 防止输入超出范围
}
return 0;
}
```
相关问题
编写程序,输入星期几的第一个字母来判断是星期几,如果第一个字母一样,则继续判断第二个字母,C语言
在C语言中,你可以使用if-else结构结合switch-case语句来编写这样一个程序。首先,你需要将一周的七天的英文缩写存储在一个数组中,然后通过用户输入的第一个字母作为索引来查找对应的完整单词。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 定义字符串数组,存储一周的英文缩写
const char* week_days[] = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"};
int main() {
char input[2]; // 用户输入的第一个字母
printf("请输入一个星期的第一位字母:");
scanf("%s", input); // 输入处理
for (int i = 0; i < 7; i++) { // 遍历数组
if (strstr(week_days[i], input) != NULL) { // 检查是否有匹配
printf("您说的是 %s。\n", week_days[i]);
break; // 找到匹配就退出循环
}
else if (i == 6 && strcmp(input, week_days[i]) != 0) { // 如果到了最后一个,还没找到匹配,并且输入不是正确的,给出错误提示
printf("输入错误,这不是一个星期的第一字母。\n");
break;
}
}
return 0;
}
```
请运用C语言编写评定成绩等级的函数 函数名:类似wlbgrade(wlb三个字母必须替换成您姓名的汉语拼音缩写) 形参:仅一个整型指针类型的形参,用于传递实参中成绩(分数)在内存中的地址 返回值:字符串指针类型,用于返回评定的成绩等级字符串(优秀、良好、中等、及格、不及格)在内存中的地址 功能:根据形参所指向的成绩(分数)用多分支if或switch语句判断其等级,等级以字符串的形式保存在字符数组内。提示:要使用string.h及strcpy函数,返回等级字符串的地址
下面是我为您编写的代码:
```c
#include <stdio.h>
#include <string.h>
char* ltwgrade(int* score) {
char* grade;
char levels[5][4] = {"优秀", "良好", "中等", "及格", "不及格"};
int index = (*score - 50) / 10;
if (index < 0) {
index = 0;
} else if (index > 4) {
index = 4;
}
grade = (char*)malloc(sizeof(char) * strlen(levels[index]) + 1);
strcpy(grade, levels[index]);
return grade;
}
```
函数中使用了一个字符数组`levels`来存储等级的字符串,使用`index`来计算成绩对应的等级在`levels`中的下标,从而返回对应的等级字符串。函数返回的是等级字符串的地址,因此需要使用`malloc`为其动态分配内存空间。
阅读全文