数组排序与二维数组
// // main.c // 数组排序与二维数组 // // Created by zhangxueming on 15/6/1. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #include <stdio.h> //冒泡排序(从小到大) //9 7 8 5 3 --> 3 5 7 8 9 //第一次排序 //7 9 8 5 3 //7 8 9 5 3 //7 8 5 9 3 //7 8 5 3 9 //第二次排序 //7 8 5 3 9 //7 5 8 3 9 //7 5 3 8 9 //第三次排序 //5 7 3 8 9 //5 3 7 8 9 //第四次排序 //3 5 7 8 9 #define LEN 5 //int main(int argc, const char * argv[]) { // int a[LEN]={}; // //输入数组 // for (int i=0; i<LEN; i++) { // scanf("%d", &a[i]); // } // //冒泡排序 // for (int i=0; i<LEN-1; i++) { // for (int j=0; j<LEN-i-1; j++) { // if (a[j]>a[j+1]) { // int temp= a[j]; // a[j]=a[j+1]; // a[j+1]=temp; // } // } // } // //遍历输出 // for (int i=0; i<LEN; i++) { // printf("%d ", a[i]); // } // printf("\n"); // return 0; //} //选择排序 //9 7 8 5 3 k=4 a[k] a[i] //第一次排序 //3 7 8 5 9 //第二次排序 //3 5 8 7 9 //第三次排序 //3 5 7 8 9 //第四次排序 //3 5 7 8 9 int main(int argc, const char *argv[]) { int a[LEN]={}; //输入数组 for (int i=0; i<LEN; i++) { scanf("%d", &a[i]); } //选择排序 for (int i=0; i<LEN-1; i++) { int k=i;//记录最小值下标 for (int j=i+1; j<LEN; j++) { if (a[k]>a[j]) { k=j; } } if (k!=i) { int temp = a[k]; a[k]=a[i]; a[i]=temp; } } //输出数组 for (int i=0; i<LEN; i++) { printf("%d ", a[i]) ; } printf("\n"); return 0; } //插入排序 //9 7 8 5 3 int temp = 7; //第一次排序 //9 9 8 5 3 //7 9 8 5 3 //第二次排序 temp = 8; //7 9 9 5 3 //7 8 9 5 3 //第三次排序 temp = 5; //7 8 9 9 3 //7 8 8 9 3 //7 7 8 9 3 //5 7 8 9 3 //第四次排序 temp = 3; //5 7 8 9 9 //5 7 8 8 9 //5 7 7 8 9 //5 5 7 8 9 //3 5 7 8 9 //int main(int argc,const char *argv[]) //{ // int a[LEN]={}; // for (int i=0; i<LEN; i++) { // scanf("%d", &a[i]); // } // //插入排序 // for (int i=0; i<LEN-1; i++) { // int temp = a[i+1]; // int j=i; // //控制移位 // while (a[j]>temp && j>=0) { // a[j+1]=a[j]; // j--; // } // //插入元素 // a[j+1]=temp; // } // for (int i=0; i<LEN; i++) { // printf("%d ", a[i]); // } // printf("\n"); // // return 0; //} //int a[5] //int a[3][4][5] //二维数组:由一维数组作为元素构成的一维数组 //int a[3][4]; //a[0] a[1] a[2] 是由4个int类型元素构成的数组 //二维数组的初始化 //int main(int argc,const char *argv[]) //{ // int a[3][2]={1,[2][0]=3,4}; // for (int i=0; i<3; i++) { // for (int j=0; j<2; j++) { // printf("%d ", a[i][j]); // } // printf("\n"); // } // return 0; //} //int main(int argc, const char *argv[]) //{ // int a[3][4]={{1,2,3,4}, // { 5,6,7,8}, // { 9,10,11,12}}; // // for (int i=0; i<3; i++) { // for (int j=0; j<4; j++) { // printf("%4d", a[i][j]); // } // printf("\n"); // } // return 0; //} //1 //1 1 //1 2 1 //1 3 3 1 //1 4 6 4 1 //1 5 10 10 5 1 //int main(int argc,const char *argv[]) //{ // int a[10][10]={}; // for (int i=0; i<10; i++) { // for (int j=0; j<=i; j++) { // if (j==0 || j==i) { // a[i][j]=1; // } // else // { // a[i][j]=a[i-1][j]+a[i-1][j-1]; // } // } // } // for (int i=0; i<10; i++) { // for (int j=0; j<=i; j++) { // printf("%4d", a[i][j]); // } // printf("\n"); // } // return 0; //} //12 34 5 6 7 //int main(int argc,const char *argv[]) //{ // int a[100]={}; // int cnt = 0;//统计输入数组元素个数 // for (int i=0; i<100; i++) { // scanf("%d", &a[i]); // cnt++; // if (getchar()=='\n') { // break; // } // } // printf("cnt = %d\n", cnt); // return 0; //} //int main(int argc,const char *argv[]) //{ // char str[100]={}; // int cnt=0; // for (int i=0; i<100; i++) { // //scanf("%c", &str[i]); // str[i]=getchar(); // if (str[i]=='\n') { // str[i]='\0'; // break; // } // cnt++; // } // printf("cnt = %d\n", cnt); // return 0; //}