#include <stdlib.h>
int main() {
struct student {
int num
float scores
}
student *stu = new student
float insert = 0, temp = 0
int i = 0
for (insert != -1i++) {
scanf("%f", &insert)
stu[i].num = i + 1
stu[i].scores = insert
}
for (int m = 0m <i - 2m++) {
for (int n = 0n <i - 2n++) {
temp = stu[n].scores
if (temp <stu[n + 1].scores) {
stu[n].scores = stu[n + 1].scores
stu[n + 1].scores = temp
temp = stu[n].num
stu[n].num = stu[n+1].num
stu[n+1].num = (int)temp
}
}
}
for (int j = 0 j <i - 1 j++){
printf("%s%d%s\t%s%d\t%s%.2f\n","第",j+1,"名:","号数:",stu[j].num,"成绩:",stu[j].scores)
}
system("PAUSE")
return 0
}
#include<stdio.h>int main()
{
int a[30],i,j,t,k
printf("请以次输入30个学生的成绩:")
for(i=0i<30i++)scanf("%d",&a[i])
for(i=0i<29i++)
{
k=i
for(j=ij<30j++)
if(a[j]>a[k])k=j
if(i!=k)
{
t=a[i]
a[i]=a[k]
a[k]=t
}
}
printf("由高到低排序输出成绩:\n")
for(i=0i<30i++)
printf("%d\n",a[i])
return 0
}
#include<stdio.h>void setList(int *a,int len)
void printfList(int *a,int len)
void pxList(int *a,int len)
void insertList(int *a,int len)
void fanList(int *a,int len)
int main()
{
int a[11]//1.定义一个数组a[11],用以存放学生的成绩。
setList(a,10)//2.从键盘输入10个学生成绩。
pxList(a,10)//3.采用选择法,将学生成绩按照从高到低进行排序。
printfList(a,10)
insertList(a,10)//4.再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组。
printfList(a,11)
fanList(a,11)//5.将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列
printfList(a,11)
return 0
}
void setList(int *a,int len)//输入
{
int i
printf("请输入%d个学生成绩\n",len)
for(i=0i<leni++)
scanf("%d",&a[i])
}
void printfList(int *a,int len)//打印数组
{
int i
printf("\n---打印数组---\n")
for(i=0i<leni++)
printf("%d ",a[i])
}
void pxList(int *a,int len)// 选择排序
{
int i,j
printf("\n---从大到小排序---\n")
for(i=0i<len-1i++)
for(j=i+1j<lenj++)
if(a[i]<a[j])
{
a[j]^=a[i]
a[i]^=a[j]
a[j]^=a[i]
}
}
void insertList(int *a,int len)//插入数组
{
printf("\n---插入数组---\n")
printf("输入要插入的数:")
scanf("%d",&a[len])
pxList(a,11)
}
void fanList(int *a,int len)//数组反向存储
{
int *p0,*p1
p0=a
p1=&a[len-1]
while(p0<p1)
{
*p0^=*p1
*p1^=*p0
*p0^=*p1
p0++
p1--
}
}