#include<string.h>
#define N 3
void sort(int a[],char name[N][10],int n) //声明排序函数
int binsearch(int x,int a[],int n) //声明查找函数
void main()
{
int i,a[N],x,h
char name[N][10]
printf("输入学生姓名和C语言成绩:")
for(i=0i<Ni++)
{
scanf("%s %d",name[i],&a[i])
}
sort(a,name,N)
for(i=0i<Ni++)
printf("%s\t%d\n",name[i],a[i])
printf("输入要查找的成绩x: ")
scanf("%d",&x)
h=binsearch(x,a,N)
if(h!=-1)
printf("%s\t%d\n",name[h],a[h])
else
printf("no found!\n")
}
void sort(int a[],char c[N][10],int n) //排序函数
{
int i,j,t
char str[10]
for (i=0i<ni++)
for(j=0j<n-i-1j++)
if (a[j+1]>a[j])
{
t=a[j]
strcpy(str,c[j])
a[j]=a[j+1]
strcpy(c[j],c[j+1])
a[j+1]=t
strcpy(c[j+1],str)
}
}
int binsearch(int x,int a[],int n) //查找函数
{
int top=0,bottum=n-1,mid
while (top<=bottum)
{
mid=(top+bottum)/2
if (x<a[mid])
top=mid+1
if (x>a[mid])
bottum=mid-1
if(x==a[mid])
return mid
}
return -1
}
自己看着再加点东西,修改一下
s:printf("请输入学号:\n")if(学号正确)
printf("输入正确!\n")
break//跳出循环
else
{printf("输入错误,请重新输入\n")
goto s}//无条件转移到s 也就是学生学号处
#include<stdio.h>02.struct student
03.{
04.
char xuehao[20]
05.
char name[20]
06.
char sex[3]
07.
double score[3]
08.
double ave
09.
double s
10.}
11.void main()
12.{
13.
struct student stu[1]
14.
int i
15.
scanf("%s %s %s",stu[0].xuehao,stu[0].name,stu[0].sex)
16.
stu[0].s=0
17.
for(i=0i<3i++)
18.
{
19.
scanf("%lf",&stu[0].score[i])
20.
stu[0].s+=stu[0].score[i]
21.
}
22.
stu[0].ave=stu[0].s/3
23.
24.
25.
printf("%s",stu[0].xuehao)
26.
printf(" %s",stu[0].name)
27.
printf(" %s",stu[0].sex)
28.
for(i=0i<3i++)
29.
{
30.
printf(" %.2f",stu[0].score[i])
31.
}
32.
printf(" %.2f %.2f\n",stu[0].ave,stu[0].s)
33.}
按照这个就行了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)