鱼C论坛

 找回密码
 立即注册
查看: 2491|回复: 2

[已解决]代码错在哪了啊

[复制链接]
发表于 2023-10-26 16:18:35 | 显示全部楼层    本楼为最佳答案   
代码中的错误在于未重置flag变量的值。在每组数据处理开始时,应将flag重新设为0。否则,如果上一组数据的n是偶数,那么flag的值仍然为1,会导致错误的计算结果。

正确的代码示例:
  1. #include<stdio.h>
  2. int main() {
  3.     int n, a[100], i, j, t, flag=0;
  4.     double ans;
  5.    
  6.     while(scanf("%d", &n) != EOF) {
  7.         flag = 0; // 重置flag的值
  8.         
  9.         if(n % 2 == 0)
  10.             flag = 1;
  11.         
  12.         for(i = 0; i < n; i++) {
  13.             scanf("%d", &a[ i]);
  14.         }
  15.         
  16.         for(i = 0; i < n - 1; i++) {
  17.             for(j = 0; j < n - 1 - i; j++) {
  18.                 if(a[j] > a[j + 1]) {
  19.                     t = a[j];
  20.                     a[j] = a[j + 1];
  21.                     a[j + 1] = t;
  22.                 }
  23.             }
  24.         }
  25.         
  26.         if(flag) {
  27.             ans = (a[n / 2] + a[n / 2 - 1]) / 2.0;
  28.             printf("%.1lf\n", ans);
  29.         } else {
  30.             ans = a[n / 2];
  31.             printf("%.1lf\n", ans);
  32.         }
  33.     }
  34.    
  35.     return 0;
  36. }
复制代码


这样修改后,应该能够得到正确的结果。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-1 03:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表