请看看这个c++程序,输出时的错误原因是什么?

#include<iostream.h>
#define m 10

void main()
{
int data[m];
int n;

do
{
for(n=0;n<m;n++)
{
cout<<"请输入第"<<n+1<<"个数:"<<endl;
cin<<data[n];
}

cout<<"你输入的数的顺序是:"<<endl;

for(n=1;n<m;n++)
{
cout<<data[0]<<"->"<<data[n];
}

cout<<endl;

/* for(n=0;n<m-1;n++)
{

for(int j=n+1;j<m;j++)
{

if(data[n]>data[j])
{

int k=data[n];
data[n]=data[j];
data[j]=k;

}
}
}
*/
int j=0;
for(int i=1;i<m;i++)
if(data[i]<data[j])j=i;
if(j>0)
{
int k=data[0];
data[0]=data[j];
data[j]=k;
}

cout<<"你输入的数字由大到小的顺序是:"<<endl;

for(n=1;n<m;n++)
{
cout<<data[0]<<"->"<<data[n];
}

cout<<endl;

cout<<"你输入的数字由小到大的顺序是:"<<endl;

for(n=9;n>0;n--)
{
cout<<data[n]<<"->"<<data[0];
}

cout<<endl;

}
while(m>0);

cin.get();

}
cin后面的>>是我打错了。

LZ输出的时候没注意……重复输出了第一个值,把输出第一个值放循环体外去就好了:
#include<iostream.h>
#define m 10

void main()
{
int data[m];
int n;

do
{
for(n=0;n<m;n++)
{
cout<<"请输入第"<<n+1<<"个数:"<<endl;
cin>>data[n];
}

cout<<"你输入的数的顺序是:"<<endl;

cout<<data[0];
for(n=1;n<m;n++)
{
cout<<"->"<<data[n];
}

cout<<endl;

/* for(n=0;n<m-1;n++)
{

for(int j=n+1;j<m;j++)
{

if(data[n]>data[j])
{

int k=data[n];
data[n]=data[j];
data[j]=k;

}
}
}
*/
int j=0;
for(int i=1;i<m;i++)
if(data[i]<data[j])j=i;
if(j>0)
{
int k=data[0];
data[0]=data[j];
data[j]=k;
}

cout<<"你输入的数字由大到小的顺序是:"<<endl;

cout<<data[0];
for(n=1;n<m;n++)
{
cout<<"->"<<data[n];
}

cout<<endl;

cout<<"你输入的数字由小到大的顺序是:"<<endl;

for(n=9;n>0;n--)
{
cout<<data[n]<<"->";
}
cout<<data[0];

cout<<endl;

}
while(m>0);

cin.get();

}
温馨提示:答案为网友推荐,仅供参考
相似回答