专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++ Builder

老烦高手用C++写个这种程序,小弟我是菜鸟,希望写的详细点、多谢喽

发布时间:2011-06-28 12:34:44 文章来源:www.iduyao.cn 采编人员:星星草
老烦高手用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>)




------解决方案--------------------
第二题
C/C++ code
#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等前辈指教。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: