电脑软硬件应用网
当前位置: 电脑软硬件应用网 > 设计学院 > 网络编程 > C语言 > 正文
从键盘输入任意5个4位整数存入数组aa中
从键盘输入任意5个4位整数存入数组aa中
2010-6-19 9:19:27  文/网络收集   出处:电脑软硬件应用网   

题目:

   1.编写main函数,从键盘输入任意5个4位整数存入数组aa中,调用函数sort[]

  函数sort[]的功能是:按每个数后三位的大小进行升序排列,并将结果放在数组bb中,如果后三位的数值相等,则按4为正整数的大小进行降序排列。列入:输入6012 5099 9012 7025 8088 则输出 9012 6012 7025 8088 5099

   最后在main函数中,把排序后的结果疏导文件 test3-2.dat

程序:

 #include<iostream>
#include <fstream>
using namespace std;

 

//分割函数,将4位整数分割为第一位,和后三位
//参数num为待分割的4位数,数组a为分别存储第一位和第三位
void discut(int num,int *a)
{
     int temp[4];                //临时数组,存储4位数的每一位
     //分割过程
      for (int i=3;i>=1;i--)
      {
            temp[i] = num % 10;
            num /= 10;
      }
      a[0] = num;                //第一位存在a[0]中
      a[1] = temp[1]*100 + temp[2]*10 + temp[3];//后三位存在a[1]中
}

 

//排序函数
void sort(int *a)
{
      int temper;                  //临时变量,用于数据交换
      int tem1[2],tem2[2];         //存放4位数的两个数组
      //冒泡排序
      for (int j=0;j<5;j++)
      {
            for (int i=0;i<4;i++)
            {
                  discut(a[i],tem1);      //用于比较的第一个数
                  discut(a[i+1],tem2);    //用于比较的第一个数
                  //如果第一个数的后三位比第二个数的后三位大,则交换位置
                  if(tem1[1]>tem2[1])
                  {
                        temper = a[i];
                        a[i] = a[i+1];
                        a[i+1] = temper;
                  }
                  //当两个数的后三位相等时
                  else if(tem1[1] == tem2[1])
                  {
                        //如果第一个数的第一位比第二个数的第一位小,则交换位置
                        if (tem1[0]<tem2[0])
                        {
                              temper = a[i];
                              a[i] = a[i+1];
                              a[i+1] = temper;
                        }
                  }
            }
      }
}

 

//主函数,程序入口
int main()
{
      int aa[5];                //存储输入的5个四位数的数组
      for (int i=0;i<5;i++)
      {
            cin>>aa[i];
      }

      //排序
      sort(aa);

 

     //定义一个文件流对象,以写方式打开文件 test3-2.dat
      fstream file("test3-2.dat",ios::out | ios::trunc);
      //将排序后的结果写入该文件
      for (int j=0;j<5;++j)
      {
            file<<aa[j]<<endl;
      }

      return 0;
}

  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    用C语言实现的闹钟程序
    C#实现Windows关机的代码
    用动态规划法求组和数的算法
    循环结构程序具有哪3个组成部分?
    const成员函数有什么特点?
    c语言求平均分程序
    一道关于指针的C语言题
    C语言求3个整数的最大公约数
    BM模式匹配算法C语言实现
    求1到1000之间能被7和11整除,但不能…
    关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 |

    Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号