C 写的出现一个问题,求解~
/* 编写程序 输入5个姓名和编号,按编号排序输出 */
#include "stdio.h"
void get(char str[5][9],int number[]) //写入姓名 和编号
{
int i,j;
printf("职工编号使用数字\n");
for(i=0;i<5;i++)
{
printf("-----------%d-----------\n",i+1);
printf("输入职工姓名:");
for(j=0;j<9;j++)
{
scanf("%c",&str[i][j]);
if(str[i][j]=='\n')
{
str[i][j]='\0';
break;
}
}
printf("输入职工编号:");
scanf("%d",&number[i]);
}
}
void paixu(char str[5][9],int number[]) //排序,按编号将姓名排序
{
int i,k,j,temp;
char jiaohuan[9];
for(i=5;i>0;i--)
{
for(j=1;j<i;j++)
{
if(number[j-1]>number[j])
{
temp=number[j-1];
number[j-1]=number[j];
number[j]=temp;
for(k=0;k<9;k++)
{
jiaohuan[k]=str[j-1][k];
str[j-1][k]=str[j][k];
str[j][k]=jiaohuan[k];
}
}
}
}
}
void put (char str[5][9],int number[]) //输出排序后 姓名和编号
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;str[i][j]!='\0';j++)
{
printf("%c",str[i][j]);
}
printf("\t%d\n",number[i]);
}
}
void main()
{
char str[5][9];int number[5];
get(str,number);
paixu(str,number);
printf("------------排序后-------------\n");
put(str,number);
}
在第二次输入姓名的时候,直接跳到输入编号。不给我输入姓名。怎么搞的啊??
求解啊。大神们复制一下到VC上调调看啊。。
[解决办法]
/* 编写程序 输入5个姓名和编号,按编号排序输出 */#include "stdio.h"void get(char str[5][9],int number[]) //写入姓名 和编号{ int i,j; printf("职工编号使用数字\n"); for(i=0;i<5;i++) { printf("-----------%d-----------\n",i+1); printf("输入职工姓名:"); scanf("%s",&str[i]); /*for(j=0;j<9;j++) { scanf("%c",&str[i][j]); if(str[i][j]=='\n') { str[i][j]='\0'; break; } }*/ printf("输入职工编号:"); scanf("%d",&number[i]); }}void paixu(char str[5][9],int number[]) //排序,按编号将姓名排序{ int i,k,j,temp; char jiaohuan[9]; for(i=5;i>0;i--) { for(j=1;j<i;j++) { if(number[j-1]>number[j]) { temp=number[j-1]; number[j-1]=number[j]; number[j]=temp; for(k=0;k<9;k++) { jiaohuan[k]=str[j-1][k]; str[j-1][k]=str[j][k]; str[j][k]=jiaohuan[k]; } } } }}void put (char str[5][9],int number[]) //输出排序后 姓名和编号{ int i,j; for(i=0;i<5;i++) { for(j=0;str[i][j]!='\0';j++) { printf("%c",str[i][j]); } printf("\t%d\n",number[i]); }}void main(){ char str[5][9];int number[5]; get(str,number); paixu(str,number); printf("------------排序后-------------\n"); put(str,number);}