学习了这么久的C语言,相信大家对数组并不陌生了,在这里写些数组应用,望采纳.

1 #include <stdio.h> 2 3 //定义一个由整数组成的数组,求出其中奇数的个数和偶数的个数,并打印 4 5 int main(){ 6 int a[]={1,2,3,4,5,6,8}; 7 int i,odd=0,even=0; 8 int len=sizeof(a)/sizeof(int); 9 printf("数组元素为: "); 10 for(i=0;i<len;i++) 11 { 12 if(a[i]%2==0) even++; 13 else odd++; 14 printf("%d ",a[i]); 15 } 16 printf(" "); 17 printf("奇数的个数:%d ",odd); 18 printf("偶数的个数:%d ",even); 19 return 0; 20 }

1 #include <stdio.h> 2 3 /*从键盘输入序列{48,62,35,77,55,14,35,98,22,40}, 4 用冒泡排序法由低到高排序并输出排序结果*/ 5 6 int main(){ 7 int i,j,change=1; 8 int a[10]={48,62,35,77,55,14,35,98,22,40}; 9 for(i=0;i<10&&change;i++)/* 如果比较一趟没有发生交换,这说明已经有序 */ 10 { 11 change=0; 12 for(j=0;j<10-i-1;j++) 13 if(a[j]>a[j+1]) 14 { 15 a[j]^=a[j+1]; 16 a[j+1]^=a[j]; 17 a[j]^=a[j+1]; 18 change=1; 19 } 20 } 21 printf("排序后: "); 22 for(i=0;i<10;i++) printf("%d ",a[i]); 23 return 0; 24 }

1 #include <stdio.h> 2 3 //二维数组计算两个矩阵MA和MB之差,将结果存储在MA中 4 5 int main(){ 6 int i,j; 7 int a[3][3]={5,6,7,4,3,8,2,9,1,10}; 8 int b[3][3]={1,5,4,6,9,8,7,3,2,10}; 9 printf("矩阵1: ");/* 输出矩阵MA */ 10 for(i=0;i<3;i++){ 11 for(j=0;j<3;j++){ 12 printf("%4d",a[i][j]); 13 } 14 printf(" "); 15 } 16 printf("矩阵2: ");/* 输出矩阵MB */ 17 for(i=0;i<3;i++){ 18 for(j=0;j<3;j++){ 19 printf("%4d",b[i][j]); 20 } 21 printf(" "); 22 } 23 printf("2个矩阵之差: ");/* 输出矩阵MA-MB的结果 */ 24 for(i=0;i<3;i++){ 25 for(j=0;j<3;j++){ 26 a[i][j]-=b[i][j]; 27 printf("%4d",a[i][j]); 28 } 29 printf(" "); 30 } 31 return 0; 32 }

1 #include <stdio.h> 2 3 //从键盘输入一个2行3列的矩阵,并将其转置(行和列元素互换)并存到二维数组中 4 5 int main(){ 6 int c[2][3]; 7 int d[3][2]; 8 int i,j; 9 printf("Input matix c[2][3]: "); 10 for(i=0;i<2;i++){ 11 for(j=0;j<3;j++) 12 scanf("%d",&c[i][j]); 13 } 14 printf("matix c[2][3]: "); 15 for(i=0;i<2;i++){ 16 for(j=0;j<3;j++){ 17 printf("%4d",c[i][j]); 18 d[j][i]=c[i][j]; 19 } 20 printf(" "); 21 } 22 printf("matix d[3][2]: "); 23 for(j=0;j<3;j++){ 24 for(i=0;i<2;i++) 25 printf("%4d",d[j][i]); 26 printf(" "); 27 } 28 return 0; 29 }

1 #include <stdio.h> 2 3 //从键盘输入4个学生语文和数学课程的成绩,求每个学生两门课的总分,并按总分从高到低的顺序输出每个学生两门课程的成绩和总分 4 5 //方法一:两次循环,外层循环只找总最大值的一行和首行交换,和总分放在另一个数组,两个数组分别交换值 6 7 int main(){ 8 int i,j,k,t,score[4][2],sum[4];/* 定义数组和变量 */ 9 printf("Input 4 student`s scores(Chinese and Math): "); 10 for(i=0;i<4;i++){ 11 scanf("%d,%d",&score[i][0],&score[i][1]);/* 输入成绩 */ 12 sum[i]=score[i][0]+score[i][1]; 13 } 14 for(i=0;i<4;i++){ 15 k=i;/* 用k存储第一趟总分最高者的下标 */ 16 for(j=i+1;j<4;j++) 17 if(sum[j]>sum[k]) k=j; 18 if(k!=i) 19 { 20 for(j=0;j<2;j++) 21 { 22 t=score[i][j];/* 变量t用来作交换值的中间值 */ 23 score[i][j]=score[k][j]; 24 score[k][j]=t; 25 } 26 t=sum[i];/* 变量t用来作交换值的中间值 */ 27 sum[i]=sum[k]; 28 sum[k]=t; 29 } 30 } 31 printf("The sorted scores: "); 32 printf("%6s%6s%6s: ","chinese","math","sum"); 33 for(i=0;i<4;i++)/* 输出每个学生的成绩和总分 */ 34 printf("%6d%6d%6d ",score[i][0],score[i][1],sum[i]); 35 return 0; 36 } 37 38 //方法二:用到了三重循环(数组冒泡排序),并且将总分分别加入每个一维数组中 39 40 int main2(){ 41 int i,j,k,t,score[4][3];/* 定义数组和变量 */ 42 printf("Input 4 student`s scores(Chinese and Math): "); 43 for(i=0;i<4;i++){ 44 scanf("%d,%d",&score[i][0],&score[i][1]);/* 输入成绩 */ 45 score[i][2]=score[i][0]+score[i][1]; 46 } 47 for(i=0;i<3;i++){/* 控制前一行 */ 48 for(k=i+1;k<4;k++){/* 控制后一行 */ 49 if(score[i][2]<score[k][2]){/* 如果前一行的总分比后一行的小 */ 50 for(j=0;j<3;j++){/* 交换两行的每一列 */ 51 t=score[i][j]; 52 score[i][j]=score[k][j]; 53 score[k][j]=t; 54 } 55 } 56 } 57 } 58 printf("The sorted scores: "); 59 printf("%6s%6s%6s: ","chinese","math","sum"); 60 for(i=0;i<4;i++)/* 输出每个学生的成绩和总分 */ 61 printf("%6d%6d%6d ",score[i][0],score[i][1],score[i][2]); 62 return 0; 63 }

1 #include <stdio.h> 2 #include <stdlib.h> 3 4 //用格式符%c逐个输入字符到字符数组,然后逐个字符输出 5 6 int main(){ 7 char d[20];int i; 8 printf("please input 10 char: "); 9 for(i=0;i<10;i++) 10 scanf("%c",&d[i]);/* 必须输入10个字符,不会自动加结束符' ' */ 11 d[i]='