注册 登录
编程论坛 VC++/MFC

新手编程出现问题了求大神指点,有关冒泡函数的

被遗忘的火机 发布于 2014-10-20 12:52, 405 次点击
#include<stdio.h>
int main()
{
    int b[3],c[3],i,j,temp1,temp2;
    printf("输入编号与成绩\n");
    for(i=0;i<3;i++)
    {
           scanf("%d%d",&c[i],&b[i]);
    }
    for(i=0;i<3;i++)
    {
        for(j=0;j<3-i;j++)
        {
            if(b[j]<b[j+1])
            {
                temp1=b[j];
                b[j]=b[j+1];
                b[j+1]=temp1;
                temp2=c[j];
                c[j]=c[j+1];
                c[j+1]=temp2;

               
            }

        }
        
    }
    printf("编号  分数\n");
    for(j=0;j<3;j++)
    {
        printf("%d %d\n",b[j],c[j]);
    }
return 0;
}


  我们只学了一维数组,想问问用我这方法哪里不对
1 回复
#2
米兰达斯2014-10-24 17:14
程序代码:
#include<stdio.h>
int main()
{
    int b[3],c[3],i,j,temp1,temp2;
    for(i=0;i<3;i++)
    {
           printf("输入第%d一个学生的学号与成绩:",i+1);
           scanf("%d%d",&c[i],&b[i]);
    }
    for(i=0;i<2;i++) //这里不是3!
    {
        for(j=0;j<2-i;j++) //这里不是3!
        {
            if(b[j]<b[j+1])
            {
                temp1=b[j];
                b[j]=b[j+1];
                b[j+1]=temp1;
                temp2=c[j];
                c[j]=c[j+1];
                c[j+1]=temp2;
            }
        }
        
    }
    printf("编号 分数\n");
    for(j=0;j<3;j++)
    {
        printf(" %d%5d\n",c[j],b[j]);
    }
return 0;
}
1