#include<stdio.h> sort(int *a,int n) { int t; for(int i=0;i<n;i++) for(int j=i+1;j<n;j++) if (a[i] > a[j]) { t = a[i]; a[i] = a[j]; a[j] = t; } } int main() { int i, j, n; int a[10]; for (i = 0; i < 10; i++) scanf("%d", &a[i]); sort(a, 10); for (i = 0; i < 10; i++) printf("%d\n", a[i]); }
6
付28 2022-11-30 08:48:46 |
#include<stdio.h> sort(int *a,int n) { int t; for(int i=0;i<n;i++) for(int j=i+1;j<n;j++) if (a[i] > a[j]) { t = a[i]; a[i] = a[j]; a[j] = t; } } int main() { int i, j, n; int a[10]; for (i = 0; i < 10; i++) scanf("%d", &a[i]); sort(a, 10); for (i = 0; i < 10; i++) printf("%d ", a[i]); }
能问问哪里不对吗? #include<stdio.h> void swap(int *a , int *b)//交换数值函数 { int temp=*a; *a=*b; *b=temp; } void xuanze(int a[] , int n)//选择排序 { int i,j; int min; for(i = 0 ; i < n-1 ; i++){ min=i; for(j = i+1 ; j < n ; j++){ if(a[j] < a[min]){ min=j; } swap(&a[i] , &a[min]);//选择完进行交换 } } } int main() { int i; int a[10]; for(i = 0 ; i < 10 ; i++){ scanf("%d", &a[i]); } xuanze(a , 10); for(i = 0 ; i < 10 ; i++){ printf("%d\n", a[i]); } return 0; }
wdkrt 2022-12-01 11:30:19 |
在选择排序的函数里swap放在下下行就行,不应该在你那个位置就交换的
请问为什么是i<9?而不是10?
人见人爱A+B (C语言代码)浏览:1011 |
C二级辅导-同因查找 (C语言代码)浏览:563 |
简单编码 (C++代码)浏览:678 |
C语言训练-立方和不等式 (C语言代码)浏览:751 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:608 |
简单的a+b (C++语言代码)浏览:860 |
哥德巴赫曾猜测 (C语言代码)浏览:2350 |
IP判断 (C语言描述,蓝桥杯)浏览:1095 |
1024题解浏览:809 |
关于float,double变量的几点说明浏览:1810 |