//输入10个职工的姓名和职工号,排序
#include "stdafx.h"
#include <string.h>
void input(int num[],char name[][10]);
void sort(int num[],char name[][10]);
int find(int num[], int n);
int main()
{
int num[10];
char name[10][10];
int n;
int m;
int flog=1;
input(num,name);
for (int i=0;i<10;i++)
{
printf("%d ",num[i]);
puts(name[i]);
}
sort(num,name);
for (int i=0;i<10;i++)
{
printf("%5d ",num[i]);
puts(name[i]);
}
while (flog==1)
{
scanf("%d",&n);
m=find(num,n);
if(m<0)
printf("can not find %d\n",n);
else
puts(name[m]);
printf("\ncontinue or not(Y/N)?");
getchar();
char c=getchar();
if(c=='n'||c=='N')
flog=0;
}
return 0;
}
void input(int num[],char name[][10])
{
int i;
for (i=0;i<10;i++)
{
printf("please input the number and name of %d :\n",i+1);
scanf("%d",&num[i]);
getchar();
gets(name[i]);
}
}
void sort(int num[],char name[][10])
{
int temp;
char str[10];
int i,j;
for (i=0;i<10;i++)
{
for (j=i;j<10;j++)
{
if(num[i]>num[j])
{
temp=num[i];
num[i]=num[j];
num[j]=temp;
strcpy(str,name[i]);
strcpy(name[i],name[j]);
strcpy(name[j],str);
}
}
}
}
int find(int num[], int n)
{
int high=9,low=0,mid;
while (low<=high)
{
mid=(low+high)/2;
if(num[mid]==n) return mid;
else if(num[mid]>n) high=mid-1;
else low=mid+1;
}
return -1;
}
输入10个职工的姓名和职工号,排序
最新推荐文章于 2023-11-28 23:22:25 发布