zoukankan      html  css  js  c++  java
  • 最小乘积(基本型)

     1 #include<stdio.h>
     2 
     3 int main()
     4 {
     5     int i,j,k;
     6     int t,n; //t:数据组数;n:每组数据的两行中每行的个数 
     7     int a[2][8]; //用于存储输入的每组数据中的两行数据 
     8     int temp; //用于对每行数据排序的过程中的中间临时变量 
     9     int sum; //用于记录两行数据乘积的和 
    10     
    11     scanf("%d",&t); //输入数据组数 
    12     
    13     for(i=t;i>0;i--) //分组输入和处理 
    14     {
    15         sum=0; //清零乘积和 
    16          
    17         scanf("%d",&n); //输入两行数据中每行的个数 
    18         
    19         for(j=0;j<2;j++) //输入两行数据 
    20             for(k=0;k<n;k++)
    21                 scanf("%d",&a[j][k]);
    22 
    23         /***********************************************************************
    24         **要实现最小乘积,只需要找出两行数据中未相乘的最大值和最小值相乘,
    25         **然后相加即可,所以分别对两行数据进行降序和升序排序
    26         ***********************************************************************/
    27         for(j=0;j<n-1;j++) //使用冒泡排序法分别对两行数据进行降序排序和升序排序
    28             for(k=j+1;k<n;k++)
    29             {
    30                 if(a[0][k]>a[0][j]) //降序 
    31                 {
    32                     temp=a[0][j];
    33                     a[0][j]=a[0][k];
    34                     a[0][k]=temp;
    35                 }
    36                 if(a[1][k]<a[1][j]) //升序 
    37                 {
    38                     temp=a[1][j];
    39                     a[1][j]=a[1][k];
    40                     a[1][k]=temp;
    41                 }
    42             }
    43             
    44         for(j=0;j<n;j++) //求两行数据中相同下标的元素对应相乘,然后相加求和 
    45             sum+=a[0][j]*a[1][j];
    46 
    47         printf("%d
    ",sum); //输出最小乘积和 
    48     }
    49     
    50     return 0;
    51 }
  • 相关阅读:
    p3159 [CQOI2012]交换棋子
    三分法
    p2805 [NOI2009]植物大战僵尸
    p2604 [ZJOI2010]网络扩容
    p1129 [ZJOI2007]矩阵游戏
    有趣与愉快-------罗辑思维整理
    张小龙的书单
    会议
    使用CCProxy代理遇到的问题
    关于看书
  • 原文地址:https://www.cnblogs.com/LeoFeng/p/4321685.html
Copyright © 2011-2022 走看看