写一个函数,用冒泡排序对输人的10个字符按由小到大顺序排列。
#include <stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #define N 10 void bubble(int * p); int main(void) { int num[N] = {1,6,9,12,4,2,99,5,3,55}; puts("冒泡后"); bubble(num); for (int i = 0; i < N; i++) { printf("%d ", num[i]); } printf("\n"); return 0;
}// puts("");
void bubble(int * p) { int t; for (int i = 0; i < N-1; i++) { for (int j = 0 ; j< N-1-i; j++) { /*if (*(p + j) > *(p + j + 1)) { t = *(p + j); *(p + j) = *(p + j+1); *(p + j + 1) = t; }*/ if (p[j] > p[j+1]) { t = p[j]; p[j] = p[j+1]; p[j+1] = t; } } } }
写一个函数,用冒泡排序对输人的10个字符按由小到大顺序排列
void sort(int a[], int n){
int temp;
for(int i = 0;i<n;i++)
for(int j = i+1; j<n;i++) {
if(a[i] > a[j]) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
#include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> int main() { int a[10]={0}; for(int i=0;i<10;i++) scanf("%d",&a[i]); for(int i=0;i<9;i++) { for(int j=i+1;j<10;j++) { if(a[i]>a[j]) { int temp=a[j]; a[j]=a[i]; a[i]=temp; } } } for(int i=0;i<10;i++) printf("%d ",a[i]); }
题目解析及答案:
该题主要是...
用户登录可进行刷题及查看答案
该题主要是对冒泡排序的理解,外层循环控制排序的趟数,内层循环主要是进行每一趟排序的比较,如果前面的字符大于后面的字符,就进行交换,每做一趟排序,就把一个最大字符排在最后,以及每做一趟排序就需要少比较一个字符。
#include<stdio.h> #include<string.h> void BubbleSort(char str[]) { int i, j; char tmp; int len = strlen(str); for(i=0; i<len-1; ++i) { for(j=0; j<len-i-1; ++j) { if(str[j] > str[j+1]) { tmp = str[j]; str[j] = str[j+1]; str[j+1] = tmp; } } } } int main() { int i; char str[11] = {0}; printf("请输入10个字符:>"); for(i=0; i<10; ++i) scanf("%c", &str[i]); BubbleSort(str); printf("string sorted: %s\n", str); return 0; }
登录后提交答案