在主函数中定义一个含有7个指针的指针数组,令它的数组元素分别指向星期一到星期天组成的字符串常量,循环输入数字1-7,则输出相应星期几的符串。如输入1,则输出“MON”,输入0结束,输入1~7以外的数字则要求重新输入
时间: 2023-10-08 09:03:46 浏览: 54
以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char *weekdays[7] = {"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};
int day;
while (1) {
printf("请输入数字 1-7,输入 0 结束:");
scanf("%d", &day);
if (day == 0) {
break;
} else if (day >= 1 && day <= 7) {
printf("今天是 %s\n", weekdays[day - 1]);
} else {
printf("输入有误,请重新输入。\n");
}
}
return 0;
}
```
这里定义了一个指针数组 `weekdays`,它包含了 7 个指向字符串常量的指针。然后在循环中,每次输入一个数字,如果是 0 则结束循环,如果是 1-7 则输出相应的字符串,否则提示输入有误。需要注意的是,由于数组下标从 0 开始,因此在输出时需要将输入的数字减 1 才能正确地访问对应的字符串。
相关问题
c++在主函数中定义一个含有7个指针的指针数组,令它的数组元素分别指向星期一到星期天组成的字符串常量,循环输入数字1-7,则输出相应星期几的符串。如输入1,则输出“MON”,输入0结束,输入1~7以外的数字则要求重新输入。
下面是实现该功能的C++代码:
```c++
#include <iostream>
using namespace std;
int main() {
const char* week[7] = {"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};
int num;
while (true) {
cout << "Please input a number (1-7, 0 to exit): ";
cin >> num;
if (num == 0) break;
else if (num >= 1 && num <= 7) cout << week[num - 1] << endl;
else cout << "Invalid input! Please input a number between 1 and 7." << endl;
}
return 0;
}
```
该程序首先定义了一个含有7个指针的指针数组`week`,并初始化它的数组元素分别指向星期一到星期天组成的字符串常量。然后进入一个循环,每次循环提示用户输入一个数字,并读入该数字。如果输入的数字为0,则跳出循环;如果输入的数字为1-7,则输出相应星期几的字符串;如果输入的数字不在1-7之间,则提示用户重新输入。循环直到用户输入0为止。
用C++在主函数中定义一个含有7个指针的指针数组,令它的数组元素分别指向星期一到星期天组成的字符串常量,循环输入数字1-7,则输出相应星期几的符串。如输入1,则输出“MON”,输入0结束,输入1~7以外的数字则要求重新输入
以下是示例代码:
```cpp
#include <iostream>
using namespace std;
const char* weekdays[] = {"", "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};
int main() {
int n;
while (true) {
cout << "请输入数字1-7(输入0结束):" << endl;
cin >> n;
if (n == 0) {
break;
}
else if (n >= 1 && n <= 7) {
cout << weekdays[n] << endl;
}
else {
cout << "输入错误,请重新输入!" << endl;
}
}
return 0;
}
```
解释一下代码:
1. 首先定义一个含有7个指针的指针数组`weekdays`,每个指针指向一个星期几的字符串常量。注意,`weekdays`的下标从1开始,这样才能与输入的数字对应。
2. 在主函数中,使用一个循环来不断读入数字并输出相应的星期几字符串。当输入0时,跳出循环。
3. 在每次读入数字后,先判断输入是否合法。如果输入是1-7之间的数字,则输出相应的星期几字符串;如果不是,则提示输入错误并重新输入。