输入10个职工的姓名和职工号,排序

来源:互联网 发布:at070tn94数据手册 编辑:程序博客网 时间:2024/05/17 09:28
//输入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);elseputs(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;}

0 0