C语言的学生成绩排序问题

Python022

C语言的学生成绩排序问题,第1张

#include <stdio.h>

#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++) {

printf("请输入学生成绩(结束输入-1):")

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--

    }

}