scanf("%s",&k);
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
if(j==a[i][j])
printf("该名字存在,位置为a[%d][%d]",i,j);break;
if(j!=a[i][j])
printf("该名字不在");
}
}
字符串比较要用strcmp不能用==和!=
还有,要循环完了才能知道名字不在,而不是循环里不一致,马上就输出不在。
以下程序供你参考:
#include <stdio.h>
#include <string.h>
int main() {
char names[10][20]; // 存储10个姓名的数组
char target[20]; // 存储待查找的姓名
int i, pos = -1;
// 输入10个姓名
printf("请输入10个姓名:\n");
for (i = 0; i < 10; i++) {
scanf("%s", names[i]);
}
// 输入待查找的姓名
printf("\n请输入待查找的姓名:\n");
scanf("%s", target);
// 在10个姓名中查找待查找的姓名
for (i = 0; i < 10; i++) {
if (strcmp(target, names[i]) == 0) {
pos = i;
break;
}
}
// 输出查找结果
if (pos != -1) {
printf("\n姓名 %s 在数组中的位置是 %d。\n", target, pos);
} else {
printf("\n姓名 %s 不存在于数组中。\n", target);
}
return 0;
}
字符串比较 用 strcmp 函数
给个参考示例:
#include <stdio.h>
#include <string.h>
int main() {
char name[10][100];
int i;
printf("请输入10个姓名:\n");
for (i = 0; i < 10; i++)
{
scanf("%s", name[i]);
}
char ch[100];
printf("\n请输入要查找的姓名:");
scanf("%s", ch);
int index = -1;
for (i = 0; i < 10; i++)
{
if (!strcmp(name[i], ch))
{
index = i;
break;
}
}
if (index == -1)
printf("%s 不存在", ch);
else
printf("%s 在第%d个", ch, index + 1);
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:本文将介绍指针数组、数组指针,了解二者的区别。学习数组名、&数组名(取地址数组名)的不同。掌握字符指针、函数指针等相关内容。
我会解决该问题。
代码示例:
name_list = [[] for i in range(10)]
for i in range(10): name = input('请输入第%d个姓名:' % (i+1)) name_list[i].append(name)
search_name = input('请输入要查找的姓名:')
for i, row in enumerate(name_list): if search_name in row: print('姓名在第%d行第%d列' % (i+1, row.index(search_name)+1)) break else: print('姓名不存在')
具体实现步骤:
首先定义一个空的二维列表,利用列表生成式创建长度为10的空列表,用来存放10个姓名。 python name_list = [[] for i in range(10)]
接着,循环10次,每次从键盘输入一个姓名,将其添加到对应的行。 python for i in range(10): name = input('请输入第%d个姓名:' % (i+1)) name_list[i].append(name)
然后,从键盘输入一个需要查找的姓名。 python search_name = input('请输入要查找的姓名:')
最后,在name_list中查找search_name,如果找到了就输出其位置,否则输出“姓名不存在”。 python for i, row in enumerate(name_list): if search_name in row: print('姓名在第%d行第%d列' % (i+1, row.index(search_name)+1)) break else: print('姓名不存在')
注:程序中的enumerate()
函数用于将一个可迭代对象转化为枚举对象,可以同时获取每个元素的索引和值。同时,else
语句块是与for
循环配合使用的,如果循环没有从break
退出,就会执行else
语句。