「已注销」 2022-08-18 11:13 采纳率: 90.2%
浏览 22
已结题

HDU2016数据的交换输出

问题遇到的现象和发生背景 输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。对于每组输入数据,输出交换后的数列,每组输出占一行。
问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    int n,min,i;
    while(scanf("%d",n)!=EOF&&n!=0){
        min=0;
        int *a=malloc(sizeof(int)*n);
        memset(a,0,sizeof(int)*n);
        for(i=0;i<n;i++){
            scanf("%d",&a[i]);
            min=a[i]<min?a[i]:min; 
        }
        for(i=0;i<n;i++){
            if(a[i]==min)a[i]=a[0];
            printf(i==0?"%d":" %d",i==0?min:a[i]);
        }
        free(a);
        printf("\n");
    }
    printf("END!");
    return 0;
}

运行结果及报错内容 输入4 2 1 3 4,没有输出就结束程序了
我的解答思路和尝试过的方法
我想要达到的结果 不知道哪里出错了,求指导。
  • 写回答

3条回答 默认 最新

  • qzjhjxj 2022-08-18 11:47
    关注

    修改如下,供参考:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <limits.h>
    int main()
    {
        int n, min, i, k;
        while (scanf("%d", &n) == 1 && n != 0) { //scanf("%d", n)  修改
            min = INT_MAX; k = 0;   
            int* a = (int*)malloc(sizeof(int) * n); //int *a=malloc(sizeof(int)*n);  修改
            memset(a, 0, sizeof(int) * n);
            for (i = 0; i < n; i++) {
                scanf("%d", &a[i]);
                min = a[i] < min ? (k = i, a[i]) : min; // 修改
            }
            if (k != 0) {  // 修改
                min = a[k]; a[k] = a[0]; a[0] = min;  // 修改
            }
            for (i = 0; i < n; i++)
                printf(i == 0 ? "%d" : " %d", a[i]); // 修改
            printf("\n");
            free(a);
        }
        printf("END!");
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月26日
  • 已采纳回答 8月18日
  • 创建了问题 8月18日

悬赏问题

  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。