首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C 写的出现一个有关问题,求解

2012-05-11 
C 写的出现一个问题,求解~/* 编写程序 输入5个姓名和编号,按编号排序输出 */#include stdio.hvoid get(c

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上调调看啊。。

[解决办法]

C/C++ code
/* 编写程序 输入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);} 

热点排行