东华大学C语言程序设计报告书
时间:2026-04-30
时间:2026-04-30
三.详细设计 1.学生成绩排名
#include<stdio.h> int main() { int a[11]; //定义相关数组 int i,j,t; printf("输入10个学生的成绩:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(j=0;j<9;j++) //用冒泡法将学生成绩按照从高到低进行排序 for(i=0;i<9-j;i++) if(a[i]<a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("将学生成绩按照从高到低输出:\n"); for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); int temp1,temp2,number,end; printf("insert data:"); scanf("%d",&number); //再输入一个学生的成绩 end=a[9]; if(number<end) a[10]=number; else {for(i=0;i<10;i++) {if(a[i]<number) {temp1=a[i]; a[i]=number; for(j=i+1;j<11;j++) {temp2=a[j]; a[j]=temp1; temp1=temp2; } break; } } } printf("Now array a:\n"); //按原排序规律输出 for(i=0;i<11;i++)
printf("%5d",a[i]); printf("\n");
int n=11,temp,m; for(m=0;m<n/2;m++) //将对称元素的值互换 {temp=a[m]; a[m]=a[n-m-1]; a[n-m-1]=temp; } printf("\nNow array a:\n"); for(m=0;m<n;m++) printf("%4d",a[m]); //反序存放后输出 printf("\n"); return 0; }
运行结果:
2.根据条件进行学生成绩排名 2-1
#include<stdio.h>
int main()
{void sort(int array[], int n); int a[10],i;
printf("请输入10个学生的成绩:\n"); for(i=0;i<10;i++)
scanf("%d",&a[i]); sort(a,10);
printf("从高到低排名:\n"); for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n");
return 0; }
void sort(int array[],int n) {int i,j,k,t;
for(i=0;i<n-1;i++) {k=i;
for(j=i+1;j<n;j++)
if(array[j]>array[k]) k=j;
t=array[k];array[k]=array[i];array[i]=t; } }
运行结果:
2-2
#include<stdio.h> int main() { void sort(int a[],int n); int a[100],n,i; printf("请输入学生数:\n"); scanf("%d",&n); printf("请输入%d个学生的成绩:\n",n); for(i=0;i<n;i++) scanf("%d",&a[i]); sort(a,n); printf("从高到低排名:\n"); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); return 0; }
void sort(int a[],int n) { int i,j,t; for(j=0;j<n-1;j++) for(i=0;i<n-1-j;i++) if(a[i]<a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;} }
运行结果:
2-3
#include<stdio.h> int main() { void sort(int a[],int n,char style); int a[100],n,i; char style; printf("请输入学生数:\n"); scanf("%d",&n); printf("请输入%d个学生的成绩:\n",n); for(i=0;i<n;i++) scanf("%d",&a[i]); printf("请选择排序方式,a为升序,d为降序:\n"); scanf("%s",&style); sort(a,n,style); for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); return 0; }
void sort(int a[],int n,char style) { int i,j,t; if(style=='a') { for(j=0;j<n-1;j++) for(i=0;i<n-1-j;i++) if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} printf("成绩从低到高排序为:\n"); } else if(style=='d')
{ for(j=0;j<n-1;j++) for(i=0;i<n-1-j;i++) if(a[i]<a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} printf("成绩从高到低排序为:\n"); } }
运行结果:
3.用指针优化学生成绩排名 3-1~3-3
#include<stdio.h> int main() { void sort(int stu[],int n); int i,*p,stu[10],j,k,t; p=stu; printf("请输入10个学生的成绩:\n"); for(i=0;i<10;i++) scanf("%d",p++); for(p=stu,i=0;i<10;i++) printf("%d ",*p++); printf("\n"); for(p=stu,i=0;i<9;i++) {k=i; for(j=i+1;j<10;j++) if(stu[j]>stu[k]) k=j; if(k!=i) {t=stu[i];stu[i]=stu[k];stu[k]=t;} } for(p=stu,i=0;i<10;i++) {printf("%d ",*p); p++; }
//sort函数声明 //输入10个整数 //输出排序后的10个学生的成绩
printf("\n"); return 0; }
运行结果:
3-4
#include<stdio.h> int main()
{void sort(int stu[],int n); int i,*p,stu[10]; p=stu;
printf("请输入10个学生的成绩:\n"); for(i=0;i<10;i++)
scanf("%d",p++); p=stu; sort(p,10); for(p=stu,i=0;i<10;i++)
{printf("%d ",*p); p++; }
printf("\n"); return 0; }
void sort(int stu[],int n) { int i,j,k,t; for(i=0;i<n-1;i++) {k=i; for(j=i+1;j<n;j++) if(stu[j]>stu[k]) k=j; if(k!=i) {t=stu[i];stu[i]=stu[k];stu[k]=t;} } }
运行结果:
//sort函数声明 //输入10个整数 //调用sort函数 //输出排序后的10个学生的成绩//定义sort函数
3-5
#include<stdio.h> int main()
{void copy_string(char from[],char to[]); char a[]="student score"; char b[]=" ";
printf("string a=%s\nstring b=%s\n",a,b); printf("copy string a to string b:\n"); copy_string(a,b);
printf("\nstring a=%s\nstring b=%s\n",a,b); return 0; }
void copy_string(char from[],char to[]) {int i=0;
while(from[i]!='\0') {to[i]=from[i];i++;} to[i]='\0'; }
…… 此处隐藏:3303字,全部文档内容请下载后查看。喜欢就下载吧 ……下一篇:新三年级下册劳技教案