找高手帮忙!谢谢了...

时间:2021-04-13 04:33:19
幫我個忙啊.用C寫個小程式啊. 
 要用C寫個程式實現功能為: 1.輸入十個學生的姓名,成績! 2/根據分數由高到低顯示出來!  

8 个解决方案

#1


樓主不會就是偶群里的那個小丫頭吧?

#2


help me ,,help me...

#3


哪个群?

#4


这种问题坚决不给任何帮助

#5


晕...我是没办法,C以经好几年不用了..都忘记语法了..你怎么能这么残忍???

#6


#include <io.h>

//定义数据结构并全部进行初始化
struct{
double Chinese;
double Math;
double Total;
}Student[10]={{0,0,0},{0,0,0},
              {0,0,0},{0,0,0},
              {0,0,0},{0,0,0},
              {0,0,0},{0,0,0},
              {0,0,0},{0,0,0}
             };
//输入
void input()
{
   int i;
   for(i=0;i<10;i++)
   {
      scanf("%lf %lf",&Student[i].Chinese,&Student[i].Math);
   }
}
//统计总分
void total()
{
   int i;
   printf("正在统计总分...\r\n");
   for(i=0;i<10;i++)
   {
      Student[i].Total = Student[i].Chinese+Student[i].Math;
   }
}

//排序
void sort()
{
   //冒泡排序
   int i,j;
   double temp;
   for(i=0;i<10;i++)
      for(j=1;j<10-i;j++)
         if(Student[j].Total>Student[j-1].Total)
         {
           temp=Student[j-1].Total;
           Student[j-1].Total=Student[j].Total;
           Student[j].Total=temp;
         }
}
//中文系统当中的输出(以免制表符显示为乱码)
void output_ch()
{
        int i;
        clrscr();
        printf("╒══╤════╤═══╤═══╕\r\n");
        printf("│%4s│%8s│%6s│%6s│\r\n","No.","Chinese","Math","Total");
        printf("╞══╪════╪═══╪═══╡\r\n");
        for(i=0;i<10;i++)
        {
           printf("│%4d│%8.2f│%6.2f│%6.2f│\r\n",i+1,Student[i].Chinese,Student[i].Math,Student[i].Total);
           if(i!=9)
              printf("├──┼────┼───┼───┤\r\n");
           else
              printf("└──┴────┴───┴───┘\r\n");
        }
}
//英文系统当中的输出(对于Win98和Dos系统请采用此种输出)
void output_en()
{
        int i;
        clrscr();
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\r\n",213,205,205,205,205,209,205,205,205,205,205,205,205,205,209,205,205,205,205,205,205,209,205,205,205,205,205,205,184);
        printf("%s%4s%c%8s%c%6s%c%6s%c\r\n",179,"No.",179,"Chinese",179,"Math",179,"Total",179);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\r\n",198,205,205,205,205,216,205,205,205,205,205,205,205,205,216,205,205,205,205,205,205,216,205,205,205,205,205,205,181);
        for(i=0;i<10;i++)
        {
           printf("%c%4d%c%8.2f%c%6.2f%c%6.2f%c\r\n",179,i+1,179,Student[i].Chinese,179,Student[i].Math,179,Student[i].Total,179);
           if(i!=9)
              printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\r\n",195,196,196,196,196,197,196,196,196,196,196,196,196,196,197,196,196,196,196,196,196,197,196,196,196,196,196,196,180);
           else
              printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\r\n",192,196,196,196,196,193,196,196,196,196,196,196,196,196,193,196,196,196,196,196,196,193,196,196,196,196,196,196,217);
        }
}
int main(int argc, char* argv[])
{
        clrscr();//清屏
        printf("请输入10名学生的成绩单:\r\n语文 数学\r\n");
        input();     //接受用户输入
        printf("成绩输入完毕,按任意键统计总分!\r\n");
        getch();
        total();
        printf("总分统计完毕,按任意键进行排序!\r\n");
        getch();
        sort();      //排序
        printf("排序作业完成,按任意键进行浏览!\r\n");
        getch();
        output_ch(); //输出,如果不支持中文则使用output_en();
        getch();
        return 0;
}

#7


#include <stdio.h>
#include<string.h>
#define NUM 10
typedef struct node
{
char name[20];
float score;
}student;

void main()
{
student su[10];
char na[20];
float sc;
int i,j,k;
printf("please input a name and score:");
scanf("%s%f",su[0].name,&su[0].score);
for(i=1;i<NUM;i++)
{
printf("please input a name and score:");
scanf("%s%f",na,&sc);
for(j=0;j<i;j++)
{
if(sc<su[j].score)
continue;
else
break;
}
for(k=i;k>j;k--)
{
strcpy(su[k].name,su[k-1].name);
su[k].score=su[k-1].score;
}
strcpy(su[j].name,na);
su[j].score=sc;
}
for(i=0;i<NUM;i++)
{
printf("%s %f\n",su[i].name,su[i].score);
}
}

#8


謝謝你們...雖然分數少了點但表示一下心意

#1


樓主不會就是偶群里的那個小丫頭吧?

#2


help me ,,help me...

#3


哪个群?

#4


这种问题坚决不给任何帮助

#5


晕...我是没办法,C以经好几年不用了..都忘记语法了..你怎么能这么残忍???

#6


#include <io.h>

//定义数据结构并全部进行初始化
struct{
double Chinese;
double Math;
double Total;
}Student[10]={{0,0,0},{0,0,0},
              {0,0,0},{0,0,0},
              {0,0,0},{0,0,0},
              {0,0,0},{0,0,0},
              {0,0,0},{0,0,0}
             };
//输入
void input()
{
   int i;
   for(i=0;i<10;i++)
   {
      scanf("%lf %lf",&Student[i].Chinese,&Student[i].Math);
   }
}
//统计总分
void total()
{
   int i;
   printf("正在统计总分...\r\n");
   for(i=0;i<10;i++)
   {
      Student[i].Total = Student[i].Chinese+Student[i].Math;
   }
}

//排序
void sort()
{
   //冒泡排序
   int i,j;
   double temp;
   for(i=0;i<10;i++)
      for(j=1;j<10-i;j++)
         if(Student[j].Total>Student[j-1].Total)
         {
           temp=Student[j-1].Total;
           Student[j-1].Total=Student[j].Total;
           Student[j].Total=temp;
         }
}
//中文系统当中的输出(以免制表符显示为乱码)
void output_ch()
{
        int i;
        clrscr();
        printf("╒══╤════╤═══╤═══╕\r\n");
        printf("│%4s│%8s│%6s│%6s│\r\n","No.","Chinese","Math","Total");
        printf("╞══╪════╪═══╪═══╡\r\n");
        for(i=0;i<10;i++)
        {
           printf("│%4d│%8.2f│%6.2f│%6.2f│\r\n",i+1,Student[i].Chinese,Student[i].Math,Student[i].Total);
           if(i!=9)
              printf("├──┼────┼───┼───┤\r\n");
           else
              printf("└──┴────┴───┴───┘\r\n");
        }
}
//英文系统当中的输出(对于Win98和Dos系统请采用此种输出)
void output_en()
{
        int i;
        clrscr();
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\r\n",213,205,205,205,205,209,205,205,205,205,205,205,205,205,209,205,205,205,205,205,205,209,205,205,205,205,205,205,184);
        printf("%s%4s%c%8s%c%6s%c%6s%c\r\n",179,"No.",179,"Chinese",179,"Math",179,"Total",179);
        printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\r\n",198,205,205,205,205,216,205,205,205,205,205,205,205,205,216,205,205,205,205,205,205,216,205,205,205,205,205,205,181);
        for(i=0;i<10;i++)
        {
           printf("%c%4d%c%8.2f%c%6.2f%c%6.2f%c\r\n",179,i+1,179,Student[i].Chinese,179,Student[i].Math,179,Student[i].Total,179);
           if(i!=9)
              printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\r\n",195,196,196,196,196,197,196,196,196,196,196,196,196,196,197,196,196,196,196,196,196,197,196,196,196,196,196,196,180);
           else
              printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\r\n",192,196,196,196,196,193,196,196,196,196,196,196,196,196,193,196,196,196,196,196,196,193,196,196,196,196,196,196,217);
        }
}
int main(int argc, char* argv[])
{
        clrscr();//清屏
        printf("请输入10名学生的成绩单:\r\n语文 数学\r\n");
        input();     //接受用户输入
        printf("成绩输入完毕,按任意键统计总分!\r\n");
        getch();
        total();
        printf("总分统计完毕,按任意键进行排序!\r\n");
        getch();
        sort();      //排序
        printf("排序作业完成,按任意键进行浏览!\r\n");
        getch();
        output_ch(); //输出,如果不支持中文则使用output_en();
        getch();
        return 0;
}

#7


#include <stdio.h>
#include<string.h>
#define NUM 10
typedef struct node
{
char name[20];
float score;
}student;

void main()
{
student su[10];
char na[20];
float sc;
int i,j,k;
printf("please input a name and score:");
scanf("%s%f",su[0].name,&su[0].score);
for(i=1;i<NUM;i++)
{
printf("please input a name and score:");
scanf("%s%f",na,&sc);
for(j=0;j<i;j++)
{
if(sc<su[j].score)
continue;
else
break;
}
for(k=i;k>j;k--)
{
strcpy(su[k].name,su[k-1].name);
su[k].score=su[k-1].score;
}
strcpy(su[j].name,na);
su[j].score=sc;
}
for(i=0;i<NUM;i++)
{
printf("%s %f\n",su[i].name,su[i].score);
}
}

#8


謝謝你們...雖然分數少了點但表示一下心意