|  | 
 
| 
#include<stdio.h>
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  #include<string.h>
 #define N 10
 int main()
 {
 void input(int[], char name[][8]);
 void sort(int[], char name[][8]);
 void search(int, int[],char name[][8]);
 int num[N], number, flag = 1, c;
 char name[N][8];
 input(num, name);
 sort(num, name);
 while (flag == 1)
 {
 printf("\n input number to look for:");
 scanf_s("%d", &number);
 search(number, num, name);
 printf("continue or not(Y/N)?");
 getchar();
 c = getchar();
 if (c == 'N' || c == 'n')
 flag = 0;
 }
 system("pause");
 return 0;
 }
 void input(int num[], char name[N][8])
 {
 int i;
 for (i = 0; i < N; i++)
 {
 printf("input NO.:");
 scanf_s("%d", &num[i]);
 printf("input name:");
 getchar();
 gets_s(name[i],9);
 }
 }
 void sort(int num[], char name[N][8])
 {
 int i, j, min, temp1;
 char temp2[8];
 for (i = 0; i < N - 1; i++)
 {
 min = i;
 for (j = i; j < N;j++)
 if (num[min]>num[j])
 min = j;
 temp1 = num[i];
 strcpy_s(temp2, name[i],7);
 num[i] = num[min];
 strcpy_s(name[i], name[min],7);
 num[min] = temp1;
 strcpy_s(name[min], temp2,7);
 
 }
 printf("\n result :\n");
 for (i = 0; i < N; i++)
 printf("\n %5d%10s", num[i], name[i]);
 }
 void search(int n, int num[], char name[N][8])
 {
 int top, bott, mid, loca, sign;
 top = 0;
 bott = N - 1;
 loca = 0;
 sign = 1;
 if ((n<num[0]) || (n>num[N - 1]))
 loca = -1;
 while ((sign == 1) && (top <= bott))
 {
 mid = (bott + top) / 2;
 if (n == num[mid])
 {
 loca = mid;
 printf("NO.%d,his name is %s.\n", n, name[loca]);
 sign = -1;
 }
 else if (n < num[mid])
 bott = mid - 1;
 else
 top = mid + 1;
 }
 if (sign == 1 || loca == -1)
 printf("%d not been found.\n", n);
 }
 | 
 |