练习2:输入n个姓名(1<=n<=6 ),查找名字为”jim”
时间: 2024-12-17 15:38:50 浏览: 18
好的,这个练习要求你编写一段C程序,让用户输入一定数量(1到6之间)的姓名,然后查找其中是否包含名为"Jim"的名字。下面是基本的步骤:
1. 首先,你需要创建一个数组或者动态分配内存来存储这些姓名。因为范围是1到6,所以如果使用固定大小数组,你可以定义一个`char names[7][MAX_NAME_LENGTH]`,`MAX_NAME_LENGTH`是你给每个姓名预留的最大长度。
2. 接下来,用一个循环提示用户输入姓名,直到达到n或所有位置都被填满。每次输入后,检查该名字是否为"Jim"。
```c
int n;
printf("Enter the number of names (1 to 6): ");
scanf("%d", &n);
if (n > 6) {
// 处理超过最大限制的情况
printf("Too many names, please enter between 1 and 6.\n");
return; // 或者重新开始输入过程
}
for (int i = 0; i < n; ++i) {
printf("Enter name %d: ", i + 1);
fgets(names[i], MAX_NAME_LENGTH, stdin); // 注意去掉fgets读取的换行符
names[i][strcspn(names[i], "\n")] = '\0'; // 去除末尾的换行符
}
```
3. 再次使用循环遍历数组,检查是否存在名字为"Jim"的记录。
```c
for (int i = 0; i < n; ++i) {
if (strcmp(names[i], "Jim") == 0) {
printf("Name 'Jim' found at position %d.\n", i+1);
break; // 找到就退出循环
}
}
if (!strstr(names, "Jim")) {
printf("No name 'Jim' found in the list.\n");
}
```
阅读全文