|
/*不是作业 :)*/
题目是 这样的 :
已经有一个已经排好序的数组,今输入一个数,要求安原来排序的规律将这个书插入数组中。
解:
/*此题只能有我自己给出一个数组,今令这个数组为a[6]={1,2,3,4,5,6};*/
[code:1]
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);
}
}
}
[/code:1]
这是我的编译结果,很不理想,请教我那里有错误!真诚的感谢!!:)
[code:1]这是我的编译结果:
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
[/code:1]
[code:1]我想要的结果是:
假如输入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
[/code:1]
强烈的感谢!!![/code] |
|