求解C或C++程序题!
从键盘输入100个整型数据;将这100个数按从小到大进行排序;输出程序排序后的数据,同事,还要求以每行10个数据的格式输出;用流程图描述设计的算法。...
从键盘输入100个整型数据;
将这100个数按从小到大进行排序;
输出程序排序后的数据,同事,还要求以每行10个数据的格式输出;
用流程图描述设计的算法。 展开
将这100个数按从小到大进行排序;
输出程序排序后的数据,同事,还要求以每行10个数据的格式输出;
用流程图描述设计的算法。 展开
2个回答
展开全部
这个程序略多,首先定义一个数组,用来存放100个数据。要是直接输100个数会累死的。所以还是建议系统直接随机生成。代码如下:(C++)
#include<iostream>
#include<windows.h>
#include<cstdlib>
#include<iomanip>
之后加入:#define MAX 100
类定义:
class Array_CS
{
public:
void Rand_Input();
void Array_Input();
void Bubble_Sort();
private:
Array[MAX];
};
子函数:
void Array_CS::Rand_Input() //随机生成
{
int i,Max_Rand;
system("cls");
cout<<"数字将随机生成。。。。。。\n";
cout<<"请输入数字上限(不小于300,不大于32767),生成的数据将不超过这个上限\n";
cin>>Max_Rand;
while((Max_Rand<50)||(Max_Rand>32767))
{
cout<<"上限太小,请重新输入!\n";
cin>>Max_Rand;
}
for(i=1;i<=MAX;i++)
{
Array[i]=(Max_Rand*rand()/(RAND_MAX+1.0));
}
for(i=1;i<=MAX;i++)
{
cout<<setw(6)<<Array[i]<<" ";
if(i%10==0) //每行满十个,换行
cout<<endl;
}
getwchar();
getchar();
system("cls");
}
void Array_CS::Array_Input() //手动输入
{
int i,temp;
system("cls");
cout<<"请依次输入100个整数,如果不是整数,将被向下取整:\n";
for(i=1;i<=MAX;i++)
{
cin>>temp;
Array[i]=static_cast<int>(temp);
}
cout<<endl<<"您刚才输入的是:\n";
for(i=1;i<=MAX;i++)
{
cout<<setw(6)<<Array[i];
if(i%10==0)
cout<<endl;
}
cout<<endl<<"按任意键进行排序方式选择!\n";
getwchar();
getchar();
system("cls");
}
排序的方法很多,这里用冒泡排序:
void Array_CS::Bubble_Sort()
{
int i,j,temp,count;
system("cls");
cout<<"你选择了冒泡排序!";
count=0;
for(i=0;i<=MAX;i++)
{
for(j=0;j<=MAX;j++)
{
if(Array[i]<Array[j])
{
count++;
temp=Array[i];
Array[i]=Array[j];
Array[j]=temp;
}
}
}
cout<<endl<<"排序后顺序如下:\n";
for(i=1;i<=MAX;i++)
{
cout<<setw(6)<<Array[i];
if(i%10==0)
cout<<endl;
}
cout<<"冒泡排序总的平均时间复杂度为:"<<count<<endl;
}
具体的主函数,你自己编一下吧。
#include<iostream>
#include<windows.h>
#include<cstdlib>
#include<iomanip>
之后加入:#define MAX 100
类定义:
class Array_CS
{
public:
void Rand_Input();
void Array_Input();
void Bubble_Sort();
private:
Array[MAX];
};
子函数:
void Array_CS::Rand_Input() //随机生成
{
int i,Max_Rand;
system("cls");
cout<<"数字将随机生成。。。。。。\n";
cout<<"请输入数字上限(不小于300,不大于32767),生成的数据将不超过这个上限\n";
cin>>Max_Rand;
while((Max_Rand<50)||(Max_Rand>32767))
{
cout<<"上限太小,请重新输入!\n";
cin>>Max_Rand;
}
for(i=1;i<=MAX;i++)
{
Array[i]=(Max_Rand*rand()/(RAND_MAX+1.0));
}
for(i=1;i<=MAX;i++)
{
cout<<setw(6)<<Array[i]<<" ";
if(i%10==0) //每行满十个,换行
cout<<endl;
}
getwchar();
getchar();
system("cls");
}
void Array_CS::Array_Input() //手动输入
{
int i,temp;
system("cls");
cout<<"请依次输入100个整数,如果不是整数,将被向下取整:\n";
for(i=1;i<=MAX;i++)
{
cin>>temp;
Array[i]=static_cast<int>(temp);
}
cout<<endl<<"您刚才输入的是:\n";
for(i=1;i<=MAX;i++)
{
cout<<setw(6)<<Array[i];
if(i%10==0)
cout<<endl;
}
cout<<endl<<"按任意键进行排序方式选择!\n";
getwchar();
getchar();
system("cls");
}
排序的方法很多,这里用冒泡排序:
void Array_CS::Bubble_Sort()
{
int i,j,temp,count;
system("cls");
cout<<"你选择了冒泡排序!";
count=0;
for(i=0;i<=MAX;i++)
{
for(j=0;j<=MAX;j++)
{
if(Array[i]<Array[j])
{
count++;
temp=Array[i];
Array[i]=Array[j];
Array[j]=temp;
}
}
}
cout<<endl<<"排序后顺序如下:\n";
for(i=1;i<=MAX;i++)
{
cout<<setw(6)<<Array[i];
if(i%10==0)
cout<<endl;
}
cout<<"冒泡排序总的平均时间复杂度为:"<<count<<endl;
}
具体的主函数,你自己编一下吧。
展开全部
#include <iostream>
#include <iomanip>
using namespace std;
void collocate(int a[]);
int main()
{
int i,a[10];
cout<<"Please input 10 number: "<<endl;
for(i=0;i<10;i++)
cin>>a[i];
collocate(a);
for(i=0;i<10;i++)
cout<<setw(3)<<a[i];
cout<<endl;
return 0;
}
void collocate(int a[])
{
int i,j,temp;
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(a[j]<a[i])
{
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}
}
#include <iomanip>
using namespace std;
void collocate(int a[]);
int main()
{
int i,a[10];
cout<<"Please input 10 number: "<<endl;
for(i=0;i<10;i++)
cin>>a[i];
collocate(a);
for(i=0;i<10;i++)
cout<<setw(3)<<a[i];
cout<<endl;
return 0;
}
void collocate(int a[])
{
int i,j,temp;
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(a[j]<a[i])
{
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询