要用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;
}
//定义数据结构并全部进行初始化
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);
}
}
#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;
}
//定义数据结构并全部进行初始化
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);
}
}
#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
謝謝你們...雖然分數少了點但表示一下心意