• c++基础题 想不明白的逻辑


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 MMarioNNZ 2024-06-19 08:31 采纳率: 0% 浏览 7 首页/ 编程语言 / c++基础题 想不明白的逻辑 c++算法 #includeusing namespace std;int main(){ int n,sum,ave,a[10001],maxx,minn,maxi,mini,t; cin>>n; maxx=0; minn=100000; sum=0; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) { if(a[i]>maxx) maxx=a[i]; maxi=i; if(a[i]

    1条回答 默认 最新

    • 小魏冬琅 2024-06-19 08:59
      关注

      我觉得是排序部分的问题:
      内部循环 for(int j = i+1; j <= n; i++) 的循环变量加法 i++ 是错误的,应该将 i++ 修改为 j++,这样才能正确的进行冒泡排序。

      #include 
      using namespace std;
      
      int main() {
          int n, sum, ave, a[10001], maxx, minn, maxi, mini;
          cin >> n;
          maxx = 0;
          minn = 100000; // 此处初始化minn因为输入范围最大为1000,所以理论上不会超出
          sum = 0;
      
          // 将数组下标从0开始计算
          for(int i = 0; i < n; i++)
              cin >> a[i];
          
          // 找到最大最小值及其下标
          for(int i = 0; i < n; i++) {
              if(a[i] > maxx) {
                  maxx = a[i];
                  maxi = i;
              }
              if(a[i] < minn) {
                  minn = a[i];
                  mini = i;
              }
          }
      
          // 计算剩余元素的总和
          for(int i = 0; i < n; i++) {
              if(i != maxi && i != mini)
                  sum += a[i];
          }
      
          // 输出平均值
          cout << sum / (n - 2) << endl;
      
          // 修改冒泡排序部分
          for(int i = 0; i < n - 1; i++) { // 数组下标从0开始计算
              for(int j = i + 1; j < n; j++) { // 纠正内循环的计数变量应为j++
                  if(a[j] < a[i]) {
                      swap(a[i], a[j]);
                  }
              }
          }
      
          // 输出排序后的数组,排除最大最小值
          for(int i = 0; i < n; i++) {
              if(i != maxi && i != mini)
                  cout << a[i] << " ";
          }
          cout << endl;
      
          return 0;
      }
      
      

      展开全部

      评论
      编辑
      预览

      报告相同问题?

  • 相关阅读:
    【GridMask】《GridMask Data Augmentation》
    防火墙实验二——实现域间、域内双向NAT、双机热备实验
    融合微平衡激活的小孔成像算术优化算法
    hive中的join操作及其数据倾斜
    https
    c# 定时器
    Linux配置NFS文件共享存储
    LeetCode75——Day8
    xml开发mybatis
    力扣 272. 最接近的二叉搜索树值 II 递归
  • 原文地址:https://ask.csdn.net/questions/8120821