1 显示效果
2 代码
#include <stdio.h> int main() { int a = 5, b = 8; //求两个数中最大的数,并将最大的数放在变量a中,并打印出变量a的值 int tmp = 0; if (a < b) { tmp = a ; a = b; b = tmp; } printf("两个数中最大的数是%d" , a); getchar(); return 0; }
1 显示效果
2 代码
#include <stdio.h> //打印数组 void PrintArray(int a[], int len) { int i = 0; for (i = 0; i < len; i++) { printf("%d ", a[i] ); } } //选出最到的数并移动到数组的最后 void MoveMaxToArrayEnd(int * a, int len) { int i = 0 , tmp =0; for (i = 0; i < len-1; i++) { if (a[i]>a[i + 1]) { tmp = a[i]; a[i] = a[i + 1]; a[i + 1] = tmp; } } } int main() { printf("将数组中最大数移动大数组的最后\n"); int a[10] = {3,5,2,6,0,9,7,4,8,1}; printf("\n移动前的数据\n"); PrintArray(a, 10); MoveMaxToArrayEnd(a, 10); printf("\n移动后的数据\n"); PrintArray(a, 10); getchar(); return 0; }1 冒泡排序的算法:每次都是数组中相邻的两个数两两比较,每次选出最大的一个数,并进行交换。
2 显示效果:
3 代码
#include <stdio.h> /** 冒泡排序: 每次都是数组中相邻的两个数两两比较,每次选出最大的一个数,并进行交换。 执行完第一遍在10个数里选出这个数组里第一大的数(或第一小的数),放在数组的第10个位置(即数组下标为9的位置), 执行完第二遍在9个数里选出这个数组里第二大的数(或第二小的数),放在数组的第9个位置(即数组下标为8的位置), ..... 执行完第十遍在1个梳理选出这个数组里第十的数(或第十小的数),放在数组的第1个位置(即数组下标为0的位置) **/ void PrintfArray(int *a , int len) { int i = 0; for (i = 0; i < len; i++) { printf("%d ", a[i]); } } void sort(int a[] , int len) { int i = 0 , j = 0 , tmp = 0; for (i = 0; i < len;i++) { for (j = 0; j < len - 1; j++)//注意这里不能写成j< len ,如果这样会造成数组越界比较(a[9]会和a[10]比较,a[10]是个随机数,这样会造成错误) { if (a[j]>a[j + 1]) { tmp = a[j]; a[j] = a[j + 1]; a[j + 1] = tmp; } } printf("第%d趟比较\n", i+1); PrintfArray(a, len); printf("\n"); } } int main() { int a[10] = { 3, 5, 2, 6, 0, 9, 7, 4, 8, 1 }; int i = 0; printf("排序前的数据:\n"); PrintfArray(a, 10); printf("\n---------------------------------\n"); sort(a,10);//冒泡排序函数调用 getchar(); return 0; }
