当前位置:编程学习 > C/C++ >>

问题一百一十六:支配值数目

[plain] Description 
 
已知f[]与g[]两个整数数组,元素都已经从小到大排好序,请写一个程序,算出f[]中比g[]中元素大的对数。换句话说,f[0]比g[]中多少个元素大,f[1]比g[]中多少个元素大等,这些值的总和就是要求的答案。  
举个例子,如果f[]中有1,3,5,7,9,而g[]中有2,3,4,7,8。  
那么:  
f[0]比g[]中的所有元素都小;  
f[1]比g[0]大;  
f[2]比g[0]、g[1]、g[2]大;  
f[3]比g[0]、g[1]、g[2]大;  
f[4]比g[0]、g[1]、g[2]、g[3]、g[4]大;  
所以答案是0+1+3+3+5=12  
 
Input 
 
第一行为两个整数m, n(1≤m, n≤1000),分别代表数组f[], g[]的长度。  
第二行有m个元素,为数组f[]。  
第三行有n个元素,为数组g[]。 
 
Output 
 
输出支配值。 
 
Sample Input 
 
 
5 5 
1 3 5 7 9 
2 3 4 7 8 
 
Sample Output 
 
 
12 

Description

已知f[]与g[]两个整数数组,元素都已经从小到大排好序,请写一个程序,算出f[]中比g[]中元素大的对数。换句话说,f[0]比g[]中多少个元素大,f[1]比g[]中多少个元素大等,这些值的总和就是要求的答案。
举个例子,如果f[]中有1,3,5,7,9,而g[]中有2,3,4,7,8。
那么:
f[0]比g[]中的所有元素都小;
f[1]比g[0]大;
f[2]比g[0]、g[1]、g[2]大;
f[3]比g[0]、g[1]、g[2]大;
f[4]比g[0]、g[1]、g[2]、g[3]、g[4]大;
所以答案是0+1+3+3+5=12

Input

第一行为两个整数m, n(1≤m, n≤1000),分别代表数组f[], g[]的长度。
第二行有m个元素,为数组f[]。
第三行有n个元素,为数组g[]。

Output

输出支配值。

Sample Input


5 5
1 3 5 7 9
2 3 4 7 8

Sample Output


12
  


[plain]  #include <stdio.h> 
 
int main() 
{     
     int i; 
     int j; 
     int n; 
     int m; 
     int sum; 
     int f[1001]; 
     int g[1001]; 
    
     scanf("%d %d", &n, &m); 
         sum=0; 
          
         for(i=0; i<n; i++) 
         { 
            scanf("%d", &f[i]); 
         } 
         for(j=0; j<m; j++) 
         { 
            scanf("%d", &g[j]); 
         } 
 
         for(i=0; i<n; i++) 
         { 
            for(j=0; j<m; j++) 
            { 
                if(f[i]> g[j]) 
                { 
                   sum++; 
                } 
                else 
                { 
                   break; 
                } 
            } 
         } 
 
     printf("%d\n", sum); 
 
     return 0; 
}  

#include <stdio.h>

int main()
{   
     int i;
  int j;
  int n;
  int m;
  int sum;
  int f[1001];
  int g[1001];
  
  scanf("%d %d", &n, &m);
   sum=0;
        
   for(i=0; i<n; i++)
   {
      scanf("%d", &f[i]);
   }
   for(j=0; j<m; j++)
   {
         scanf("%d", &g[j]);
   }

   for(i=0; i<n; i++)
   {
      for(j=0; j<m; j++)
   {
       if(f[i]> g[j])
    {
       sum++;
    }
    else
    {
       break;
    }
   }
   }

  printf("%d\n", sum);

     return 0;
}
  

 

 \
 

补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,