在另一个函数调用字符串调不出来?求助啊~~~~~~
#include<stdio.h>#include<string.h>
void puttt(char a[]);
void main()
{
char hao[7];
gets(hao);
puttt(hao);
}
void puttt(char a[])
{ printf("职工号%s姓名",a);}
这样子可以调出hao[7]表示的东西,下面这个大的程序怎么老调不成功,都是空白(重点看涂红的部分),我想可能是小错误,不过我发现不出来啊(捉狂)~~~~~求助
#include<stdio.h>
#include<string.h>
#include<math.h>
#define N 10
char Name[N][27];
void input(char a[][27]);
void rank(char a[][27]);
void find(char str[]);
int main()
{
char hao[7],c;
input(Name);
rank(Name);
do
{
printf("菜单:0.退出程序;1.查找职工姓名:\n请选择:");
c=getchar();
if(c=='1')
{
printf("\n请输入要查找的职工号:");
gets(hao);
printf("\n");
find(hao);
}
}
while(c!='0');
return 0;
}
void input(char a[][27])
{
int i;
printf("请分别输入10个职工的职工号和姓名(例:201223zhengyidan):\n");
for(i=0;i<N;i++)
gets(a[i]);
printf("\n");
}
void rank(char a[][27])
{
int i,j;
char string[27];
printf("由小到大排序为:\n");
for(j=0;j<N-1;j++)
for(i=0;i<N-1-j;i++)
if(strcmp(a[i],a[i+1])>0)
{
strcpy(string,a[i]);
strcpy(a[i],a[i+1]);
strcpy(a[i+1],string);
}
for(i=0;i<N;i++)
puts(a[i]);
}
void find (char str[])
{
int j,n,i;
printf("职工号为%s的职工姓名为:",str); //在这里的%s出不来
if(strcmp(str,Name[9])==0)
for(j=6;j!='\0';j++)
printf("%c",Name[9][j]);
else
{
for(j=4,n=1;strcmp(str,Name[i])!=0&&n>=0;n--)
{
if(strcmp(str,Name[i])>0)
i=i+pow(2,n);
else i=i-pow(2,n);
}
if(strcmp(str,Name[i])==0)
{
for(j=6;j!='\0';j++)
printf("%c",Name[i][j]);
printf("\n");
}
else printf("sorry,此职工号无效\n");
}
}
[ 本帖最后由 思罗琪曼娜 于 2013-5-17 20:44 编辑 ]