c语言按学号或者姓名查找某名学生三门课成绩并显示,填中间空就行了

按学号
void search_num()

system ("pause")

按姓名
void search_name()

system("pause")

img

这个图和问题有啥关系?三门课,NUM定义为2?

我做完啦

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7418264
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:c语言 分别计算五名学生三门成绩的总分平均分以及排名
  • 除此之外, 这篇博客: C语言程序设计 - 学生信息管理(支持文件读写、课程条目自定义)中的 主函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • tot_students这个变量到后来似乎也没有什么用了,都被那个while循环给替代了;

    int main()
    {
    	load_settings();
    	int tot_students=0;
    	//tot_students = elimination(tot_students);
    	int ch=0;
    	int results[256];
    	char input[128]={0};
    	view_help_text();
    	while (ch!=-1&&ch!=-2)
    	{
    		getline(input);
    		ch = atoi(input);
    		switch(ch)
    		{
    			case 0: view_help_text(); break;
    			case 1: tot_students = load_stuData("stulib.txt"); break;
    			case 2: save_stuData("stulib.txt"); break;
    			case 3: view_all_students(); break;
    			case 4: search_by(results); break;  
    			case 5: tot_students = add_student(); break;
    			case 6: edit_student_info(); break;
    			case 7:
    				printf("# Input the No. of the student to delete: ");
    				getline(input);
    				del_student( atoi(input) -1);
    				break; 
    			case 8: sort_by(); break;
    			case 9: edit_courses_tag(); break;
    			//case -1: save_stuData(); break;
    			case -1: break;
    		}
    		if (ch>0) printf("\n# Backed to the main menu. Enter 0 for HELP. \n");
    	}
    	return 0;
    }
    

    然后,就完了。

  • 您还可以看一下 黄强老师的30分钟彻底学会C语言指针视频教程课程中的 指针玩转一维数组小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    选择按照学号或者姓名进行查找: 姓名

    具体的解决方案代码如下:

    include

    include

    struct Student { char id[10]; char name[10]; int score; }stu[] = {{"001", "Sam", 80},{"002", "Jay", 87},{"003", "Tom", 92},{"004", "Ken", 76},{"005", "Lucy", 85},{"006", "Amy", 90}};

    int main() { char target_name[10]; //定义目标姓名 int i; //循环计数器

    printf("请输入目标姓名:");
    scanf("%s", target_name); //输入目标姓名
    
    //循环找到目标姓名对应的学生成绩并进行输出
    for(i=0;i<6;i++){
       if(strcmp(target_name, stu[i].name) == 0) {
           printf("学号:%s,姓名:%s,成绩:%d\n", stu[i].id, stu[i].name, stu[i].score);
           break;
       }
    }
    
    //如果循环完毕仍未找到匹配的姓名则输出未找到
    if(i == 6) {
        printf("未找到该学生的成绩信息!\n");
    }
    
    return 0;
    

    }

    下面为代码详解:

    • 第4行~第10行定义了一个结构体类型Student,包含学号id、姓名name和课程成绩score三个成员变量,并在第5行~第10行范围内定义了一个结构体数组stu,该数组中元素分别为6名学生的学号、姓名、课程成绩信息(此处为了方便,采用静态方式定义数组)。
    • 第12行~第25行为主函数main,首先在第14行定义一个目标姓名字符串数组target_name,用于接收用户输入的目标姓名。然后在第16行-17行之间输出提示信息并输入目标姓名。在第20行-24行之间使用循环遍历stu数组来查找目标姓名对应的学生成绩信息。具体地,使用strcmp比较函数进行字符串比较,如果找到目标姓名对应的成绩信息,则使用printf函数输出该信息后退出循环。如果循环完毕仍未找到匹配的学生信息,则在第27行输出未找到该学生的成绩信息。
    • 第29行为程序返回值0,表示程序正常结束。

    最后执行上述代码并输入目标姓名"Jay",可以发现程序输出该学生的学号、姓名、成绩信息,如下所示:

    请输入目标姓名:Jay 学号:002,姓名:Jay,成绩:87

    如果输入目标姓名为"John",则由于没有匹配项,程序输出未找到该学生的成绩信息,如下所示:

    请输入目标姓名:John 未找到该学生的成绩信息!