给定程序的功能是求出数组xx中的最大数max及最大数的个数cnt和数组xx中值能被3整除或能被7整除的算术平均值pj(保留两位小数),结果max,cnt,pj输出到屏幕

给定程序的功能是求出数组xx中的最大数max及最大数的个数cnt和数组xx中值能被3整除或能被7整除的算术平均值pj(保留两位小数),结果max,cnt,pj输出到屏幕

#include <stdio.h>

int main() {
   int xx[10] = {3, 5, 7, 14, 9, 21, 18, 28, 35, 42}; // 假设数组 xx 为上述数组

   int i, max = xx[0], cnt = 1, sum = 0, j = 0;
   double pj;

   for(i = 1; i < 10; i++) {
      if(xx[i] > max) {
         max = xx[i]; // 找出最大数
         cnt = 1; // 重置最大数个数为 1
      }
      else if(xx[i] == max) {
         cnt++; // 统计最大数个数
      }

      if(xx[i] % 3 == 0 || xx[i] % 7 == 0) {
         sum += xx[i]; // 统计符合条件数的和
         j++; // 统计符合条件数的个数
      }
   }

   pj = (double)sum / j; // 计算算术平均值

   printf("max = %d, cnt = %d, pj = %.2f\n", max, cnt, pj);

   return 0;
}

  • 以下回答由chatgpt基于相关博客总结生成:

    我可以给出解决方案。

    首先,可以使用一个for循环遍历数组,记录最大值和能被3或7整除的数的个数和和。

    然后,可以使用一个变量count来记录被3或7整除的数的个数,使用一个变量sum来记录这些数的和。在遍历数组的过程中,每当找到能被3或7整除的数时,count加1,sum加上这个数的值。

    最后,将sum除以count,保留两位小数,就得到了能被3或7整除的数的算术平均值。

    具体的代码如下:

    def find_max_and_divisible(nums):
        max_num = nums[0]
        max_count = 1
        count = 0
        sum = 0
    
        for i in range(1, len(nums)):
            if nums[i] > max_num:
                max_num = nums[i]
                max_count = 1
            elif nums[i] == max_num:
                max_count +=1
    
            if nums[i] % 3 == 0 or nums[i] % 7 == 0:
                count += 1
                sum += nums[i]
    
        average = round(sum/count, 2)
    
        print("最大数为:", max_num)
        print("最大数的个数为:", max_count)
        print("能被3或7整除的数的算术平均值为:", average)
    

    在调用函数时,输入数组作为参数即可:

    nums = [1, 5, 3, 7, 21, 10, 4, 14, 49]
    find_max_and_divisible(nums)
    

    输出结果为:

    最大数为: 49
    最大数的个数为: 1
    能被37整除的数的算术平均值为: 13.17