C++ 浮点型排序

来源:百度知道 编辑:UC知道 时间:2024/06/01 03:39:19
怎么把下面double a[4]={3.4,4.1,5.5,6.4}改成手动输出..知道的大侠说下,我试了N次 老是输出不对,原理很清楚就是输出的时候输出的是错的!!
麻烦帮忙
小改下下
#include<iostream>
using namespace std;
int main()
{
double j,v;

double a[4]={3.4,4.1,5.5,6.4};
//i=3;j=4;
for(int i=0;i<=3;i++)
{
for(int k=i+1;k<=3;k++)
if(a[i]<a[k])
{
v=a[i];
a[i]=a[k];
a[k]=v;
}
}
for(i=0;i<=3;i++)
{ cout<<a[i]<<" ";
}

}
#include<iostream>
using namespace std;
int main()
{
double l;
int v;
//double j,v;
cin>>v;
double a[100000];//={v.4,4.1,5.5,6.4};
for ( int i = 0; i < v ; cin >> a[i++]);//i=v;j=4;

for( i=0;i<=v;i++)
{
for(int k=i+1;k<=v;k++)
if(a[i]<a[k])
{
l=a[i];
a[i]=a[k];
a[k]=l;
}
}
for(i=0;i<

问题不大,只是有一个变量没有申明:
#include<iostream>
using namespace std;
int main()
{
double v; //j这个变量你好像没有用到

double a[4]={3.4,4.1,5.5,6.4};
//i=3;j=4;
for(int i=0;i<=3;i++)
{
for(int k=i+1;k<=3;k++)
if(a[i]<a[k])
{
v=a[i];
a[i]=a[k];
a[k]=v;
}
}
for(int i=0;i<=3;i++) //i这个变量你只是在之前的for循环中申明过,其作用范围在前一个for循环结束之后就终止了,所以这里需要重新申明。当然你也可以在程序刚开始时就申明,然后把for循环中i前面的int去掉。
{ cout<<a[i]<<" ";
}
}

程序在Visual Studio 2008编译通过,运行结果如下:
6.4 5.5 4.1 3.4 请按任意键继续. . .

把j定义为int型就行了,
#include<iostream>
using namespace std;
int main()
{
//double j,v;//把j定义为int型就行了,
//int j;
double v;
double a[4]={3.4,4.1,5.5,6.4};
//i=3;j=4;
for(int i=0;i<=3;i++)
{
for(int k=i+1;k<=3;k++)
if(a[i]<a[k])
{
v=a[i];
a[i]=a[k];
a[k]=v