问答详情
源自:6-5 数组的应用(一)

为何我的代码运行后左边一直是空白?

#include <stdio.h>
int main()
{
    double arr[]={1.78, 1.77, 1.82, 1.79, 1.85, 1.75, 1.86, 1.77, 1.81, 1.80};
    int i,j;
    printf("\n************排队前*************\n");
    for(i=0;i<10;i++)
    {
        if(i != 9)   
            printf("%.2f, ", arr[i]);  //%.2f表示小数点后精确到两位
        else
            printf("%.2f", arr[i]);    //%.2f表示小数点后精确到两位
    }
    for(i=8; i>=0; i--)
    {
        for(j=0;j<=i;j++)
        {
            if(arr[j]>arr[i=1])      //当前面的数比后面的数大时
            {
                double temp;    //定义临时变量temp
                temp = arr[j]; //将前面的数赋值给temp
                arr[j] = arr[j+1];  //前后之数颠倒位置
                arr[j+1] = temp; //将较大的数放在后面    
            }                 
        }                
    }
    printf("\n************排队后*************\n");
    for(i=0;i<10;i++)
    {
        if(i != 9)   
            printf("%.2f, ", arr[i]);  //%.2f表示小数点后精确到两位     
        else
            printf("%.2f", arr[i]);    //%.2f表示小数点后精确到两位
    }
    return 0;    
}

http://img.mukewang.com/565aabae0001209f09450600.jpg

提问者:鱼竿_grump 2015-11-29 15:39

个回答

  • 越飞越高
    2016-11-02 19:40:12

    #include <stdio.h>

    int main()

    {

        double arr[]={1.78, 1.77, 1.82, 1.79, 1.85, 1.75, 1.86, 1.77, 1.81, 1.80};

        int i,j;

        printf("\n************排队前*************\n");

        for(i=0;i<10;i++)

        {

            if(i != 9)   

                printf("%.2f, ", arr[i]);  //%.2f表示小数点后精确到两位

            else

                printf("%.2f", arr[i]);    //%.2f表示小数点后精确到两位

        }

        for(i=8; i>=0; i--)

        {

            for(j=0;j<=i;j++)

            {

                if(arr[j]>arr[i=1])       //当前面的数比后面的数大时   这里出错,应改为if(arr[j]>arr[j+1])

                {

                    double temp;    //定义临时变量temp

                    temp = arr[j]; //将前面的数赋值给temp

                    arr[j] = arr[j+1];  //前后之数颠倒位置

                    arr[j+1] = temp; //将较大的数放在后面    

                }                 

            }                

        }

        printf("\n************排队后*************\n");

        for(i=0;i<10;i++)

        {

            if(i != 9)   

                printf("%.2f, ", arr[i]);  //%.2f表示小数点后精确到两位     

            else

                printf("%.2f", arr[i]);    //%.2f表示小数点后精确到两位

        }

        return 0;    

    }

  • 有时蔚蓝
    2015-12-04 22:42:38

    我的也是空白,何解?提交是正常的,把代码放到dev-c等编译器内,也是正确的

  • qq_酷比_0
    2015-12-02 17:33:16

    for(i=0; i<10; i++)

        {

            for(j=0;j<10-i;j++)

            {

                if(arr[j]>arr[j+1])      //当前面的数比后面的数大时

                {

                    double temp;    //定义临时变量temp

                    temp = arr[j]; //将前面的数赋值给temp

                    arr[j] = arr[j+1];  //前后之数颠倒位置

                    arr[j+1] = temp; //将较大的数放在后面    

                }                 

            }                

        }

    循环有问题,多去看看冒泡排序

  • 流浪_老
    2015-11-29 23:16:39

    代码有问题吧  循环都出不来 结果输不出