C++笔记:使用字符数组和实型数组分别存储学生姓名和成绩,并使用冒泡排序法排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++笔记:使用字符数组和实型数组分别存储学生姓名和成绩,并使用冒泡排序法排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3017字,纯文字阅读大概需要5分钟。
内容图文
![C++笔记:使用字符数组和实型数组分别存储学生姓名和成绩,并使用冒泡排序法排序](/upload/InfoBanner/zyjiaocheng/753/48ae343b6b4045b1aafb4597eb92a808.jpg)
文章目录
升序输出
/*
使用"字符数组"和"实型数组"分别存储学生姓名和成绩,并通过对学生成绩的排序(由小到大),按照名次输出字符数组中对应的学生姓名
*/
#include<iostream>
using namespace std;
#include<cstring>
#include<windows.h>
int main(){
SetConsoleOutputCP(65001);
char name[10][10];//存储十个学生的姓名,每个学生姓名不超过10个字符
strcpy(name[0],"Mary");//strcpy函数实质上是用字符数组2中的字符串覆盖字符数组1中内容,此处用于初始化
strcpy(name[1],"Jam");
strcpy(name[2],"Jack");
strcpy(name[3],"Jose");
strcpy(name[4],"Hery");
strcpy(name[5],"Mark");
strcpy(name[6],"Dobbs");
strcpy(name[7],"Steven");
strcpy(name[8],"Stanly");
strcpy(name[9],"John");
cout<<"开始输入每个学生的分数:"<<endl;
int score[10][2];//存储十个学生的分数
for(int i=0;i<10;i++){
score[i][0]=i;//第一列为编号
cout<<name[i]<<endl;
cin>>score[i][1];//第二列为用户输入的分数
}
for(int i=1;i<10;i++){//冒泡排序循环(由小到大),难点
for(int j=9;j>=i;j--){//循环第一次,确定最小的数;循环第二次,确定第二小的数;......
if(score[j][1]<score[j-1][1]){//从score二维数组最后一个下标开始,如果二维数组score分数列的前一个元素大于后一个元素,则交换
int scoretmp=score[j-1][1];//存放score二维数组分数列(较大的)
int idtmp=score[j-1][0];//存放score二维数组编号列(较大的)
score[j-1][1]=score[j][1];//将较小的分数列赋值给前一个数组元素
score[j-1][0]=score[j][0];//将较小的编号列赋值给前一个数组元素
score[j][1]=scoretmp;
score[j][0]=idtmp;
}
}
}
for(int j=0;j<10;j++){//输出循环
cout<<name[score[j][0]];
cout << ": "<<score[j][1] << endl;
}
return 0;
}
输出:
降序输出
/*
使用"字符数组"和"实型数组"分别存储学生姓名和成绩,并通过对学生成绩的排序(由大到小),按照名次输出字符数组中对应的学生姓名
*/
#include<iostream>
using namespace std;
#include<cstring>
#include<windows.h>
int main(){
SetConsoleOutputCP(65001);
char name[10][10];//存储十个学生的姓名,每个学生姓名不超过10个字符
strcpy(name[0],"Mary");//strcpy函数实质上是用字符数组2中的字符串覆盖字符数组1中内容
strcpy(name[1],"Jam");
strcpy(name[2],"Jack");
strcpy(name[3],"Jose");
strcpy(name[4],"Hery");
strcpy(name[5],"Mark");
strcpy(name[6],"Dobbs");
strcpy(name[7],"Steven");
strcpy(name[8],"Stanly");
strcpy(name[9],"John");
cout<<"开始输入每个学生的分数:"<<endl;
int score[10][2];//存储十个学生的分数
for(int i=0;i<10;i++){
score[i][0]=i;//第一列为编号
cout<<name[i]<<endl;
cin>>score[i][1];//第二列为用户输入的分数
}
for(int i=1;i<10;i++){//冒泡排序循环(由大到小),难点
for(int j=9;j>=i;j--){//循环从数组地址最后开始,循环第一次,确定最小的数;循环第二次,确定第二小的数;......
if(score[j][1]>score[j-1][1]){//从score二维数组最后一个下标开始,如果二维数组score分数列的后一个元素大于前一个元素,则交换
int scoretmp=score[j][1];//存放score二维数组分数列(较大的)
int idtmp=score[j][0];//存放score二维数组编号列(较大的)
score[j][1]=score[j-1][1];//将较小的分数列赋值给后一个数组元素
score[j][0]=score[j-1][0];//将较小的编号列赋值给后一个数组元素
score[j-1][1]=scoretmp;//将较大的分数列赋值给前一个数组元素
score[j-1][0]=idtmp;////将较大的编号列赋值给前一个数组元素
}
}
}
for(int j=0;j<10;j++){//输出循环
cout<<name[score[j][0]];
cout<<": "<<score[j][1]<<endl;
}
return 0;
}
输出:
内容总结
以上是互联网集市为您收集整理的C++笔记:使用字符数组和实型数组分别存储学生姓名和成绩,并使用冒泡排序法排序全部内容,希望文章能够帮你解决C++笔记:使用字符数组和实型数组分别存储学生姓名和成绩,并使用冒泡排序法排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。