写一个程序,要求输入学号能输出对应学号的姓名,输入姓名输出对应姓名的学号,上述两个输入为并列关系

输入:16300430,输出:huhai 输入:huhai,输出:16300430 大一的课堂练习,我写了两个还是有错误,想来看看大神的操作

只有一个学生的话就直接用数组吧,代码如下:

#include <stdio.h>
#include <string.h>
int main()
{
	char name[] = "huhai";
	char xueh[] = "16300430";
	char buf[20] = {0};
	printf("请输入名字或者学号:\n");
	scanf("%s",buf);
	if (strcmp(buf,name) == 0)
	{
		printf("学号:%s\n",xueh);
	}else if (strcmp(buf,xueh) == 0)
	{
		printf("姓名:%s\n",name);
	}
	//getchar();
	//getchar();
	return 0;
}

 

while True:
    data = [
    {
        "name": "huhai",
        "number": 16300430
    },
    {
        "name": "huhai1",
        "number": 16300431
    },
    ]
    keys = input("输入:")
    for i in data:
        if i["name"] == keys:
            print("输出:" + str(i["number"]))

这样可以嘛,python写的,觉得可以望采纳

我java的python应该也一样,大概思路是两个map分别以名字和学号为key,学生信息为value,串行匹配,判断哪个map取对应信息返回即可