65,211
社区成员
发帖
与我相关
我的任务
分享
#include <map>
#include <iostream>
using namespace std;
map<int, num_type> scores;
for (int i = 0; i < n; ++i)
{
scores.insert(make_pair(array[i], num[i]));
}
for (map<int, num_type>::iterator i = scores::begin(); i != scores.end(); ++i)
{
cout << i->second << ":" << i->first << endl;
}
#include<stdio.h>
#include<stdlib.h>
int *inputScore(int); //函数功能:创建一个能容纳size个整数的动态数组,然后从键盘读取size个学生的成绩存储到数组中。
void sort(int*,int); //函数功能:对array指向的数组进行排序。
void printScore(int*,int); //函数功能:打印array指向的数组元素。
main()
{
int size;
int *array=NULL;
//读入学生人数,赋给size
printf("请输入学生人数:\n");
scanf("%d",&size);
//读取每个同学的成绩
printf("请输入这%d个学生的成绩:\n",size);
array=inputScore(size);
//对成绩进行排序
sort(array,size);
printf("从高到低,这%d个学生的成绩为:\n",size);
//打印出成绩
printScore(array,size);
//释放动态数组
free(array);
system("pause");
return 0;
}
/*函数功能:创建一个能容纳size个整数的动态数组,然后从键盘读取size个学生的成绩存储到数组中。
函数参数说明:size:动态数组的长度;
函数返回值:指向动态数组第一个元素的指针。*/
int *inputScore(int size)
{
int * array;
int i;
//申请动态数组的空间,再进行读取成绩
array=(int *)malloc(sizeof(int)*size);;
for(i=0;i<=size-1;i++){
scanf("%d",array+i);
}
return array; //返回动态数组的首地址
}
/*函数功能:对array指向的数组进行排序。
函数参数说明:array:指向待排序的数组的第一个元素的指针;size:数组元素的个数。*/
void sort(int * array,int size)
{
int i,pass,hold;
//用泡沫排序法对数组进行排序
for(pass=1;pass<=size-1;pass++){
for(i=0;i<=size-2;i++){
if(*(array+i)<*(array+i+1)){
hold=*(array+i);
*(array+i)=*(array+i+1);
*(array+i+1)=hold;
}
}
}
}
/*函数功能:打印array指向的数组元素。
函数参数说明:array:指向待排序的数组的第一个元素的指针;size:数组元素的个数。*/
void printScore(int * array,int size)
{
int i;
//逐个打印数组中的元素
for(i=0;i<=size-1;i++){
printf("%d ",*array);
array++;
}
printf("\n");
}