| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 308 人关注过本帖
标题:各位大大,帮忙把下面程序改为指针程序把
取消只看楼主 加入收藏
xingfulovexi
Rank: 1
等 级:新手上路
帖 子:17
专家分:7
注 册:2012-1-18
结帖率:0
收藏
已结贴  问题点数:10 回复次数:1 
各位大大,帮忙把下面程序改为指针程序把
程序代码:
#include<stdio.h>
#include<string.h>
#define N 10
void 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("\ninput number to look for:");
              scanf("%d",&number);
              search(number,num,name);
              printf("continue or not(Y/N)?");
              getchar();
              c=getchar();
              if(c=='N'||c=='n')
                     flag=0;
       }
}

void input(int num[],char name[N][8])
{
       int i;
       for(i=0;i<N;i++)
       {
              printf("\ninput No.:");
              scanf("%d",&num[i]);
              printf("input name:");
              getchar();
              gets(name[i]);
       }
}

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(temp2,name[i]);
              num[i]=num[min];
              strcpy(name[i],name[min]);
              num[min]=temp1;
              strcpy(name[min],temp2);
       }
       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("can not find %d.\n",n);
}
搜索更多相关主题的帖子: color 
2013-12-02 15:41
xingfulovexi
Rank: 1
等 级:新手上路
帖 子:17
专家分:7
注 册:2012-1-18
收藏
得分:0 
应该说当时会了,一年之后忘记了
2013-12-02 16:18
快速回复:各位大大,帮忙把下面程序改为指针程序把
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.084404 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved