题目描述
输入n个整数的数列,请找出数列中最小数所在的位置(若有多个最小数,则选最左边的那个最小数),把它与数列的第一个数对调,其他数的位置不动,输出此数列。
输入
数组数的个数n (N<=200) 一行n个数,用空格分开(都<=32767)
输出
第一行:最小数所在的位置(只需要输出最左边的一个的位置) 第二行:交换后的数组(一个空格隔开)
样例
输入 复制
3
2 6 1
输出 复制
3
1 6 2

jzxxoj编程C:1165: 【入门】最小数
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- LYSnowy 2022-01-29 11:53关注
#include <stdio.h> #include <malloc.h> void swap(int* a, int* b) { int tmp = *a; *a = *b; *b = tmp; } int main() { int n; scanf("%d", &n); int* p = (int*)malloc(sizeof(int) * n); int min_num = 1000000000, min_place = -1; for (int i = 0; i < n; i++) { scanf("%d", &p[i]); if (p[i] < min_num) { min_num = p[i]; min_place = i; } } printf("%d\n", min_place + 1); swap(&p[0], &p[min_place]); for (int i = 0; i < n; i++) { printf("%d ", p[i]); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1