#include <stdio.h>#include <stdlib.h>int main(void){ int n = 0, i; int min = 0,minpos = 0; int* a = NULL; printf("请输入你要输入多少整数\n"); scanf("%d",&n); a = (int*)malloc(n*sizeof(int)); if(a == NULL) return -1; printf("请输入这%d个整数\n",n); for(i=0; i<n;) { scanf("%d",a+i); if(*(a+i)<2 || *(a+i)>10) { printf("重新输入\n"); }else{ i++; } } min = *a; for(i=0; i<n; i++) { if(*(a+i) < min) { min = *(a+i); minpos = i; } } printf("最小数%d,位置%d\n",min, minpos+1); *(a+minpos) = *a; *a = min; for(i=0; i<n; i++) { printf("%d\t",*(a+i)); } return 0;}//当输入的数可以重复的时候,暂时没考虑这个,需要的话,直接修改存储变量的代码即可
#include <stdio.h>#include <stdio.h>#define MAX 10int main(){int num[MAX], n, min_index;int i;//输入并判断nwhile(1){printf("请输入n的值(1 < n <= 10):");scanf("%d", &n);if(n > 1 && n <= 10){break;}else{printf("n的值不符合条件,请重输\n");}}//给数组赋值for(i = 0; i < n; i ++){printf("请输入第 %d 个整数:");scanf("%d", &num[i]);}//找出最小数并记录下标min_index = 0;for(i = 1; i < n; i ++){if(mun[i] < num[min_index]){min_index = i;}}//输出最小值和对应下标printf("最小值是:%d,它对应的下标是:%d", mun[min_index], min_index);//最小值与第一个数交换i = num[0];num[0] = num[index];num[index] = i;//输出交换后的结果printf("交换后的数:");for(i = 0; i < n; i ++){printf("%d\t", num[i]);}return 0;}