鱼C论坛

 找回密码
 立即注册
查看: 1502|回复: 5

大神帮忙一下 这个程序怎么运行不了呢

[复制链接]
发表于 2015-12-11 22:48:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#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);
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-12-11 22:50:01 | 显示全部楼层
哪位 大神行行好 帮帮忙 谢谢啦 我用的是vs2013  一直运行不了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-12 09:22:10 | 显示全部楼层
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. #define N 10
  5. int main()
  6. {
  7.         void input(int[], char name[][8]);
  8.         void sort(int[], char name[][8]);
  9.         void search(int, int[], char name[][8]);
  10.         int num[N], number, flag = 1, c;
  11.         char name[N][8];
  12.         input(num, name);
  13.         sort(num, name);
  14.         while (flag == 1)
  15.         {
  16.                 printf("\n input number to look for:");
  17.                 scanf_s("%d", &number);
  18.                 search(number, num, name);
  19.                 printf("continue or not(Y/N)?");
  20.                 getchar();
  21.                 c = getchar();
  22.                 if (c == 'N' || c == 'n')
  23.                         flag = 0;
  24.         }
  25.         system("pause");
  26.         return 0;
  27. }
  28. void input(int num[], char name[N][8])
  29. {
  30.         int i;
  31.         for (i = 0; i < N; i++)
  32.         {
  33.                 printf("input NO.:");
  34.                 scanf_s("%d", &num[i]);
  35.                 printf("input name:");
  36.                 getchar();
  37.                 gets_s(name[i], 9);
  38.         }
  39. }
  40. void sort(int num[], char name[N][8])
  41. {
  42.         int i, j, min, temp1;
  43.         char temp2[8];
  44.         for (i = 0; i < N - 1; i++)
  45.         {
  46.                 min = i;
  47.                 for (j = i; j < N; j++)
  48.                         if (num[min]>num[j])
  49.                                 min = j;
  50.                 temp1 = num[i];
  51.                 strcpy_s(temp2, name[i]);
  52.                
  53.                 num[i] = num[min];
  54.                 strcpy_s(name[i], name[min] );
  55.                 num[min] = temp1;
  56.                 strcpy_s(name[min], temp2 );

  57.         }
  58.         printf("\n result :\n");
  59.         for (i = 0; i < N; i++)
  60.                 printf("\n %5d%10s", num[i], name[i]);
  61. }
  62. void search(int n, int num[], char name[N][8])
  63. {
  64.         int top, bott, mid, loca, sign;
  65.         top = 0;
  66.         bott = N - 1;
  67.         loca = 0;
  68.         sign = 1;
  69.         if ((n<num[0]) || (n>num[N - 1]))
  70.                 loca = -1;
  71.         while ((sign == 1) && (top <= bott))
  72.         {
  73.                 mid = (bott + top) / 2;
  74.                 if (n == num[mid])
  75.                 {
  76.                         loca = mid;
  77.                         printf("NO.%d,his name is %s.\n", n, name[loca]);
  78.                         sign = -1;
  79.                 }
  80.                 else if (n < num[mid])
  81.                         bott = mid - 1;
  82.                 else
  83.                         top = mid + 1;
  84.         }
  85.         if (sign == 1 || loca == -1)
  86.                 printf("%d not been found.\n", n);
  87. }
复制代码


不知道你要实现什么   没有报错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-12 13:01:19 | 显示全部楼层
小人 发表于 2015-12-12 09:22
不知道你要实现什么   没有报错了

你用的是什么编译器啊 strcpy不用 strcpy_s 吗  我的怎么 总是通不过啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-12 13:11:03 | 显示全部楼层
小人 发表于 2015-12-12 09:22
不知道你要实现什么   没有报错了

谢谢你啊 我自己搞定啦  这个函数调用的问题strcpy_s(name[min],7, temp2);
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-12 15:02:14 | 显示全部楼层
zerone. 发表于 2015-12-12 13:11
谢谢你啊 我自己搞定啦  这个函数调用的问题strcpy_s(name[min],7, temp2);

vs2013
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 16:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表