| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 345 人关注过本帖
标题:请帮忙看看这段程序的问题
只看楼主 加入收藏
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
结帖率:95%
收藏
已结贴  问题点数:1 回复次数:3 
请帮忙看看这段程序的问题
#include "stdio.h"
#include "conio.h"
#define N 10

void input(int num[N],char name[N][8])
{int i;
for(i=0;i<N;i++)
{printf("\nInput NO.:");
scanf("%d",&num[i]);
printf("Input name:");                  为什么运行时输入不了name
gets(name[i]);
}
}
void sort(int num[N],char name[N][8])
{int i,j,temp1;
char temp2[8];
for(i=0;i<N;i++)
  for(j=0;j<N-i;j++)
  if(num[j]>num[j+1])
  {temp1=num[i];
  num[i]=num[i+1];
  num[i+1]=temp1;
  strcpy(temp2,name[i]);
  strcpy(name[i],name[i+1]);
  strcpy(name[i+1],temp2);
  }
printf("\nresult:\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;
loca=0;
top=0;
bott=N-1;
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);
}
main()
{int num[N],number,flag=1,c,n;
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;
}

    getch();
}
搜索更多相关主题的帖子: 看看 问题 
2010-01-12 10:43
h978147355
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:187
注 册:2009-12-29
收藏
得分:0 
函数的参数接受不了数组
所以如果你要在函数中定义数组应该为 (int n,int *a) 也就是a[n],这样函数才能接受参数
2010-01-12 10:59
陈威
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2009-10-18
收藏
得分:0 
void input(int num[N],char name[N][8])
{int i;
for(i=0;i<N;i++)
{printf("\nInput NO.:");
scanf("%d",&num[i]);
printf("Input name:");
scanf("%s",name[i]);
}
}
为什么改成这样就可以输入name了
2010-01-12 11:04
h978147355
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:187
注 册:2009-12-29
收藏
得分:1 
你把两个输入语句换一下就可以啦
因为你第一个的scanf()语句中 残留一个回车字符
所以你的gets接受到得只有一个‘\n’而已
2010-01-12 11:38
快速回复:请帮忙看看这段程序的问题
数据加载中...
 
   



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

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