|
/*不是作业 :)*/
题目是 这样的 :
已经有一个已经排好序的数组,今输入一个数,要求安原来排序的规律将这个书插入数组中。
解:
/*此题只能有我自己给出一个数组,今令这个数组为a[6]={1,2,3,4,5,6};*/
- main()
- {
- int a[6]={1,2,3,4,5,6},j,k,n;
- float i;
- scanf("%f",&i);
- if(i<a[0])
- {j=a[5];
- for(n=0;n<=4;n++,a[n+1]=a[n])
- a[0]=i;
- for(n=0;n<=5;n++)
- {printf("%f",a[n]);}
- printf("%f\n",j);
- }
- else if(i>a[5])
- {for(n=0;n<=5;n++)
- {printf("%f",a[n]);}
- printf("%f",i);
- }
- for(n=1;n<=5;n++)
- {if(i>a[n-1]&&i<a[n])
- {k=a[5];
- while(n<=4)
- {a[n+1]=a[n];}
- a[n]=i;
- for(n=0;n<=5;n++)
- {printf("%f",a[n]);}
- printf("%f",k);
- }
- }
- }
复制代码
这是我的编译结果,很不理想,请教我那里有错误!真诚的感谢!!:)
- 这是我的编译结果:
- gcc -o fydream ti.c
- ./fydream
- 假如输入的是“5.5”(就是在i>1&&i<6,时的情况)
- 结果 什么也不输出,
- 假如输入“7”
- 则输出:0.0000000.0000000.0000000.0000000.0000000.0000007.000000
- 这个只有最后 的7.000000的输出是对的,但是前6为却都是0.000000
- 假如我输入0.5
- 则输出:0.0000000.0000000.0000000.0000000.0000000.0000000.000000
复制代码
- 我想要的结果是:
- 假如输入5.5就输出:1.0000002.0000003.0000004.0000005.0000005.5000006.000000
- 加入输入7就应该输出:1.0000002.0000003.0000004.0000005.0000006.0000007.000000
- 加入输入0.5应该输出:
- 0.5000001.0000002.0000003.0000004.0000005.0000006.000000
复制代码
谢谢了!我很急!:) |
|