由键盘任意输入10个姓名(二维数组),再输入一个姓名(一维数组),在此10个姓名中查找此姓名是否存在;如果存在,输出其位置。

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;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7446677
  • 你也可以参考下这篇文章:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。在主函数中输入10个数,调用函数实现对换,并在主函数中输出对换后的结果
  • 除此之外, 这篇博客: C语言指针数组、数组指针分析(数组名、&数组名(取地址数组名)、字符指针、函数指针等)中的 前言 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    本文将介绍指针数组、数组指针,了解二者的区别。学习数组名、&数组名(取地址数组名)的不同。掌握字符指针、函数指针等相关内容。


  • 您还可以看一下 吴刚老师的【吴刚】字体设计与表现视频教程课程中的 10-文字图层样式与打底色制作小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    我会解决该问题。

    代码示例:

    定义一个空的二维列表

    name_list = [[] for i in range(10)]

    从键盘输入10个姓名

    for i in range(10): name = input('请输入第%d个姓名:' % (i+1)) name_list[i].append(name)

    从键盘输入一个姓名

    search_name = input('请输入要查找的姓名:')

    在name_list中查找search_name

    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('姓名不存在')

    具体实现步骤:

    1. 首先定义一个空的二维列表,利用列表生成式创建长度为10的空列表,用来存放10个姓名。 python name_list = [[] for i in range(10)]

    2. 接着,循环10次,每次从键盘输入一个姓名,将其添加到对应的行。 python for i in range(10): name = input('请输入第%d个姓名:' % (i+1)) name_list[i].append(name)

    3. 然后,从键盘输入一个需要查找的姓名。 python search_name = input('请输入要查找的姓名:')

    4. 最后,在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语句。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^