老烦高手用C++写个这种程序,我是初学者,希望写的详细点、谢谢喽
1.给一维数组x输入10个整数,找出x数组中的最大数。
2. 学生成绩排序。
分析:学生成绩由键盘输入,当输入一个负数时,输入完毕。
采用直观的“选择排序法”进行排序,基本步骤如下:
① 将a[0]依次与a[1]~a[n-1]比较,选出大者与a[0]交换;最后a[0]为a[0]~a[n-1]中最大者;
② 将a[1]依次与a[2]~a[n-1]比较,选出大者与a[1]交换;最后a[1]为a[1]~a[n-1]中最大者;
③ 同理,从i=2到i=n-1, 将a[i]依次与a[i+1]~a[n-1]比较,选出较大者存于a[i]中。
3.找出一个整型数组(15个元素)各数组元素中的最大数和最小数,数组中的数由随机数发生函数 rand()产生。(数组元素最多为2位数)(rand()是一个可以生成随机数的函数随机数,函数返回的随机数在0-RAND_MAX(32767)之间; rand()%100结果是随机数除以100后所得的余数,即限定随机的范围是在0~99之间; 使用rand()函数需添加头文件:#include <cstdlib>)
[解决办法]
第二题
#include <iostream>using namespace std;int data[1000];//存放数据的全局数组//实现将a[low]依次与a[low+1]~a[len-1]比较,选出较大者存于a[low]中void FindMax(int low,int len){ int i; int max=data[low]; int tag=low;//标记最大值在数组的下标 //开始寻找最大值 for (i=low+1;i<len;++i) { if (data[i]>max) { tag=i; max=data[i]; } } //判断最大值是否为a[low],不是的话则进行交换否则不需要交换 if (tag!=low) { int mid=data[tag]; data[tag] = data[low]; data[low] = mid; }}int main(void){ /*读取数据*/ int len=0; do { cin>>data[len++]; } while (data[len-1]>=0); --len; //选择排序,将a[i]依次与a[i+1]~a[n-1]比较,选出较大者存于a[i]中。 int i; for (i=0;i<len-1;++i) { FindMax(i,len); } //输出排序结果 for (i=0; i<len; ++i) { cout<<data[i]<<" "; } cout<<endl; getchar();//可删除 getchar();//可删除 return 0;}
[解决办法]
这种题目一般网上都有现成源码,楼主可以搜搜看。另外,如果自己写过,也可以将你写的代码贴出来,请妖哥或zzbinfo等前辈指教。