题记:最近家教,教一个大一孩子c++,教他冒泡法排序的时候,发现,冒泡法排序输入的数字必须是固定的比方式10或者15,我想,能不能通过某个方法实现判断命令行中输入的数字是几个,这样再用冒泡法排序的时候就不用担心输入的是几个数字,用到的知识主要是冒泡法排序和istringstream。
冒泡法排序不赘述,关于istringstream,请看链接:
http://www.cnblogs.com/gamesky/archive/2013/01/09/2852356.html
//http://www.cppblog.com/shyli/archive/2006/10/17/13758.html
代码如下:
#include <iostream>
#include <stdio.h>
#include <string>
#include <sstream>
//http://www.cnblogs.com/gamesky/archive/2013/01/09/2852356.html
//http://www.cppblog.com/shyli/archive/2006/10/17/13758.html
using namespace std;
int main()
{
string input;
int number_count = 0;
int a[10];
int i = 0;
//cout << "input numbers:" << endl;
getline(cin,input);//接受一个字符串,可以接受空格输出,输出什么还是输出什么,nput就是要输出的内容
istringstream input_stream(input);//istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来
while(!input_stream.eof()){//判断是否为空
int n;
input_stream >> n;//n是代表整形变量,
//cout << n << endl;
a[i] = n;
//cout <<a[i] << endl;
i++;
++number_count;
}
cout << "input count:" << number_count << endl;
int j,t,h;
for(j=0;j<number_count-1;j++){
for(i=0;i<number_count-1-j;i++){
if(a[i] > a[i+1]){
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for(i=0;i<number_count;i++){
cout << a[i];
}
cout << endl;
return 0;
}
应该还会有其他方式,去判断????