计算机科学与技术学院
程序设计报告
程序名称:数组程序设计
专业:计算机科学与技术
班级:计算机1103班
学号:
姓名:
指导老师:
设计日期:2011年11月26日
数组程序设计
题目:
编写一个程序,其功能如下:输入n(n<50)个学生的姓名和C语言课程的成绩,将成绩按从高到低的次序排序,姓名同时作相应的调整,输出排序后的学生姓名和C语言课程的成绩。
然后输入一个C 语言课程成绩值,用二分法查找进行搜索。
如果查找到该成绩,输出该成绩同学的姓名和C语言课程的成绩;否则输出提示“not found !”.
程序源代码:
#include<stdio.h>
#include<string.h>
#define n 3
void main()
{
int i,j,k,t,x,a[n];
int top=0,bottum=n-1,mid;
char b[n][10],str[10],c[20];
for(i=0;i<n;i++)
{
printf("input the name of the %dth student:",i+1);
gets(b[i]);
printf("input the score of the C language:");
scanf("%d",&a[i]);
printf("\n");
gets(c);
}
for(i=0;i<n-1;i++)
{
k=i;
for(j=1;j<n;j++)
if(a[k]<a[j])
k=j;
if(k!=i)
{
t=a[i];
a[i]=a[k];
a[k]=t;
strcpy(str,b[i]);
strcpy(b[i],b[k]);
strcpy(b[k],str);
}
}
for(i=0;i<n;i++)
{
puts(b[i]);
printf("%d\n",a[i]);
}
printf("input a:");
scanf("%d",&x);
int flag=1;
while(top<=bottum)
{
mid=(top+bottum)/2;
if(x>a[mid])
bottum=mid-1;
else if(x<a[mid])
top=mid+1;
else
{
flag=0;
puts(b[mid]);
printf("%d\n",a[mid]);
break;
}
}
if(flag==1)
printf("not found!"); }
截屏运行结果:。