当前位置:编程学习 > C/C++ >>

C语言改进

输入职工姓名和工号; 按工号大小排序。 我的程序有点乱,谁帮我修改下,美化下··才能看懂·· #include <stdio.h> #include <string.h> main() { char name[10][10],a[10][10]; int num[10],i,j,min,t; printf("输入职工姓名和工号\n",i+1); for(i=0;i<10;i++) { scanf("%s",&name[i]); scanf("%d",&num[i]); } for(i=0;i<=9;i++) {min=num[i]; strcpy(a[i],name[i]); for(j=i;j<=9;j++) { if(num[j]<min) { min=num[j]; num[j]=num[i]; num[i]=min; strcpy(a[i],name[j]); strcpy(name[j],name[i]); strcpy(name[i],a[i]); } } } for(i=0;i<10;i++) { printf("%s,%d\n",name[i],num[i]); } }
答案:#include <stdio.h>
#include <string.h>
main()
{

    char name[10][10],a[10];//[10];a的作用只是用作交换
    int num[10],i,j,min,t;
    printf("输入职工姓名和工号\n",i+1);
    for(i=0; i<10; i++)
        //{
        scanf("%s%d",&name[i],&num[i]);
    //scanf("%d",&num[i]);
    //}可以合成一行
    for(i=0; i<9; i++)//
    {
        //min=num[i];
        //strcpy(a[i],name[i]);这一行都没起到作用
        for(j=i+1; j<=9; j++)//
        {
            if(num[j]<num[i])//
            {
                min=num[j];
                num[j]=num[i];
                num[i]=min;
                strcpy(a,name[j]);//
                strcpy(name[j],name[i]);
                strcpy(name[i],a);//
            }
        }
    }
    for(i=0; i<10; i++)
    {
        printf("%s,%d\n",name[i],num[i]);
    }
}

上一个:C语言的问题: 文本读取 写入 结构体比较 30QB奖励
下一个:用C编写对排序问题的计时程序(计时有错误)求帮助,谢谢!

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,