输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 定义一个指针数组将下面的星期信息组织起来,输入一个字符串,在表中查找,若存在,输出该字符串在表中的序号,否则输出-1。 sunday monday tuesday wednesday thursday friday saturday
时间: 2023-04-26 11:00:37 浏览: 119
好的,以下是中文回复:
首先,我们需要输入一个正整数repeat,表示要进行的运算次数。假设输入的repeat为3,则需要进行下列运算3次。
在每次运算中,我们需要定义一个指针数组,将给定的星期信息组织起来。具体来说,我们可以将星期信息存储在一个字符串数组中,然后定义一个指向该数组的指针数组。代码如下:
char *week[] = {"sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"};
接下来,我们需要输入一个字符串,并在指针数组中查找该字符串。如果找到了,就输出该字符串在数组中的序号;否则,输出-1。代码如下:
char str[10];
int i, flag;
scanf("%s", str);
flag = -1;
for (i = ; i < 7; i++) {
if (strcmp(str, week[i]) == ) {
flag = i;
break;
}
}
printf("%d\n", flag);
以上就是本题的解题思路和代码实现。
相关问题
7-14组织星期信息 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 定义一个指针数组将下面的星期信息组织起来,输入一个字符串,在表中查找,若存在,输出该字符串在表
看起来你是在询问关于一个特定的任务,即利用编程来处理一个重复的星期信息查询过程。这个任务需要创建一个指针数组来存储一周的星期信息,并能够接受用户输入的字符串来查找它是否存在于这个数组中。如果存在,就返回相应的索引或者星期名称。
例如,假设数组格式如下:
```markdown
["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
```
输入`repeat`次,每次都会让用户输入一个字符串,然后遍历数组来检查该字符串是否匹配。如果找到,输出对应的位置(从0开始计数),如果没有找到,则输出提示信息。
这里是一个简化的伪代码描述:
```python
for _ in range(repeat):
user_input = input("请输入要查找的星期几(如:星期一):")
for i, week_day in enumerate(["星期一", "星期二", ..., "星期日"]):
if user_input == week_day:
print(f"找到了,位置是{i}")
break
else:
print("未找到对应的星期几.")
```
输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 定义一个指针数组将下面的星期信息组织起来,输入一个字符串,在表中查找,若存在,输出该字符串在表中的序号,否则输出-1。
### 回答1:
可以使用一个字符串数组来存储星期信息,然后输入一个字符串,遍历数组查找是否存在该字符串,若存在则输出其在数组中的下标,否则输出-1。具体实现可以参考以下代码:
int main() {
const char* week[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
int repeat;
scanf("%d", &repeat);
while (repeat--) {
char str[20];
scanf("%s", str);
int i;
for (i = ; i < 7; i++) {
if (strcmp(str, week[i]) == ) {
printf("%d\n", i + 1);
break;
}
}
if (i == 7) {
printf("-1\n");
}
}
return ;
}
### 回答2:
此题需要定义一个星期信息的指针数组,用来存储所有星期的信息,然后通过输入的字符串内容,查询在数组中的位置,如果存在则输出其序号,否则输出-1。
首先,我们需要定义一个星期信息的结构体,可以包含星期的名称和序号两个字段:
typedef struct {
char name[10];
int num;
} Week;
然后,定义一个指针数组来存储所有星期的信息:
Week *week[7] = {
&(Week){ "Monday", 1 },
&(Week){ "Tuesday", 2 },
&(Week){ "Wednesday", 3 },
&(Week){ "Thursday", 4 },
&(Week){ "Friday", 5 },
&(Week){ "Saturday", 6 },
&(Week){ "Sunday", 7 }
};
接下来,输入一个字符串,表中查找是否存在该字符串,若存在,则输出该字符串在表中的序号,否则输出-1:
for (int i = 0; i < repeat; i++) {
char str[10];
int index = -1;
scanf("%s", str);
for (int j = 0; j < 7; j++) {
if (strcmp(str, week[j]->name) == 0) {
index = j;
break;
}
}
printf("%d\n", index);
}
完整代码如下:
#include <stdio.h>
#include <string.h>
typedef struct {
char name[10];
int num;
} Week;
int main() {
Week *week[7] = {
&(Week){ "Monday", 1 },
&(Week){ "Tuesday", 2 },
&(Week){ "Wednesday", 3 },
&(Week){ "Thursday", 4 },
&(Week){ "Friday", 5 },
&(Week){ "Saturday", 6 },
&(Week){ "Sunday", 7 }
};
int repeat;
scanf("%d", &repeat);
for (int i = 0; i < repeat; i++) {
char str[10];
int index = -1;
scanf("%s", str);
for (int j = 0; j < 7; j++) {
if (strcmp(str, week[j]->name) == 0) {
index = j;
break;
}
}
printf("%d\n", index);
}
return 0;
}
### 回答3:
本题要求我们进行 repeat 次操作,每次操作需要我们定义一个指针数组将星期信息组织起来,然后输入一个字符串,在表中查找该字符串是否存在,并输出其在表中的序号,如果不存在则输出 -1。
如果要实现这个功能,我们需要先定义一个指针数组来存储星期信息。指针数组的定义方式如下:
char *week[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
其中,week[0] 表示星期一,week[1] 表示星期二,以此类推。
接下来,我们需要输入一个字符串,并在指针数组中查找该字符串是否存在。我们可以使用循环来遍历指针数组,一旦找到该字符串就输出其在表中的序号,并跳出循环。如果整个指针数组遍历完了也没有找到该字符串,则输出 -1。
完整代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
int repeat; // 重复次数
scanf("%d", &repeat); // 输入重复次数
// 定义指针数组,存储星期信息
char *week[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
for (int i = 0; i < repeat; i++) // 循环 repeat 次
{
char str[10]; // 定义一个字符串,用于存储输入的信息
int j;
scanf("%s", str); // 输入一个字符串
// 在指针数组中查找该字符串
for (j = 0; j < 7; j++)
{
if (strcmp(str, week[j]) == 0) // 找到字符串
{
printf("%d\n", j + 1); // 输出该字符串在表中的序号并跳出循环
break;
}
}
if (j == 7) // 整个指针数组遍历完了也没有找到该字符串
printf("-1\n"); // 输出 -1 并进行下一次循环
}
return 0;
}
阅读全文