#include <stdio.h>#define N 10//7、对称//typedef enum {// false,//0// true //1//}bool;//bool isSymmetryArray(int a[], int len);//bool isSymmetryArray(int a[], int len)//{// for (int i=0; i<len/2; i++) {// if (a[i]!=a[len-i-1]) {// return false;// }// }// return true;//}int main(int argc, const char * argv[]) {// z1. 数组(求最大值及下标)定义一个整型数组,输入10个整数到数组中,并将数组中最大值及下标输出。12345// 例如:// 输入: 3 5 2 9 1 8 7 4 6 0// 输出: 9 3// // int array[10],max,index,temp;// printf("输入10个数给数组赋值:");// for (int i=0; i<10; i++) {// scanf("%d",&array[i]);// }// max=array[0];// index=0;// for (int i=1; i<10; i++) {// if (max<array[i]) {// temp=max;// max=array[i];// array[i]=temp;// index=i;// }// }// printf("%d %d",max,index);// // // 2.有一个数组b[5] = {1,2,3,4,5};把这个数组拷贝到另外一个数组int a[5]中// // // int b[5] = {1,2,3,4,5};// int a[5];// printf("复制以后a[i]输出:");// for (int i=0; i<5; i++) {// a[i]=b[i];// printf("%d ",a[i]);// }// // // 3. 字符数组(正序输出)定义一个字符数组,输入10个字符到数组中,将字符数组内容逐个输出。// 输入:A B C D E F G H I J// 输出:A B C D E F G H I J// // char array[10];// int i;// printf("输入10个字符给数组赋值:");// for (i=0; i<10; i++) {// //scanf("%c",&array[i]);// array[i]=getchar();// }// //printf("\n");// for (i=0; i<10; i++) {// printf("%c ",array[i]);// }// // 4. 字符数组(逆序输出)定义一个字符数组,输入10个字符到数组中,将字符数组内容倒序输出// 输入:a b c d e f g h i j// 输出:j i h g f e d c b a// // // char array[10];// int i;// printf("输入10个字符给数组赋值:");// for (i=0; i<10; i++) {// //scanf("%c",&array[i]);// array[i]=getchar();// }// //printf("\n");// for (i-=1; i>=0; i--) {// printf("%c ",array[i]);// }// // // 5.输入十个正整数,把这十个数按由小到大的顺序排列// // // int num[10];// int i,temp=0;// printf("输入10个正整数:");// for (i=0; i<10; i++) {// scanf("%d",&num[i]);// }// for (i=0; i<10; i++) {// for (int j=0; j<10-i-1; j++) { //冒泡排序// if (num[j]<num[j+1]) {// temp=num[j];// num[j]=num[j+1];// num[j+1]=temp;// }// }// }// for (i=0; i<10; i++) {// printf("%d ",num[i]);// }// // // int num[N];// printf("输入%d个整数:",N);// for (int i=0; i<N; i++) {// scanf("%d",&num[i]);// }// int temp;// for (int i=0; i<N; i++) {// //内循环 每一次比较的过程,循环结束找到一个最小的数字// for (int j=0; j<N-1-i; j++) { //每循环一次确定一个数字// if (num[j]<num[j+1]) {// temp=num[j];// num[j]=num[j+1];// num[j+1]=temp;// }// }// }// printf("数组降序排列为:\n");// for (int i=0; i<N; i++) {// printf("%d ",num[i]);// }// printf("\n");// // // // 6.给定一个有10个整数的元素,将前5个元素跟后5个元素做整体交换,比如{1,1,1,1,1,2,3,2,2,2}->{2,3,2,2,2,1,1,1,1,1}// // // int array1[10]={1,1,1,1,1,2,3,2,2,2},array2[10];// for (int i=0,j=5; i<5&&j<10; i++,j++) {// array2[i]=array1[j];// array2[j]=array1[i];// }// for (int j=0; j<10; j++) {// printf("%d ",array2[j]);// }// // // // 7.判断一个整型数组是否是对称数组,例如{1,2,3,3,2,1}和{1,6,8,1,8,6,1}都是对称数组// // // int a[]={1,2,3,1,2};// int b[]={1,1,2,3,3,2,1,1};// if(isSymmetryArray(b,8)==true){// printf("duichen");// }else{// printf("buduichen");// }// // // // 8.给定一个10个元素的整型数组,现在将第2个元素删除,后面的数组顺序前移// // int a[10]={1,2,3,4,5,6,7,8,9,0},i;// for (i=1; i<9; i++) {// a[i]=a[i+1];// }// for (i=0; i<10; i++) {// printf("%d ",a[i]);// }// // // 9.给定一个整型数组,求该数组中第二大的数的下标// // // int a[N]={1,2,3,4,5,6,7,8,9,0};// int max=0,secMax=0,i,j;//最大值,第二大值,变量,储存第二大数下标// for (i=0; i<N; i++) {// if (a[i]>max) {// max=a[i];// }// }// for (i=0; i<N; i++) {// if (a[i]>secMax && a[i]<max) {// secMax=a[i];// j=i;// }// }// printf("第二大数:%d 其下标为:%d\n",secMax,j);// // // 10.给定一个整型数组,计算大于该数组平均值的元素的个数// // // int a[N]={1,2,3,4,5,6,7,8,9,0};// int sum=0,avg=0;//所有数的和,平均数// int num=0;//大于平均数个数// int i;// for (i=0; i<N; i++) {// sum+=a[i];// }// avg=sum/N;// for (i=0;i<N; i++) {// if (a[i]>avg) {// num++;// }// }// printf("该数组中大于平均数的个数为:%d\n",num);// // // 11.给定一个整型数组,找到数组中的最小值,并将其放到数组的首元素中,原来首元素的内容放到最小值所在的元素中// // // int a[N]={1,2,3,4,5,6,7,8,9,0};// int min=a[0],m=0;//最小值,最小值下标// int i;// for (i=1; i<N; i++) {// if(a[i]<min){// min=a[i];// m=i;// }// }// int temp;//交换变量// temp=a[0];// a[0]=a[m];// a[m]=temp;// for (i=0; i<N; i++) {// printf("%d ",a[i]);// }// printf("\n");// // // 12.给定一个整型数组,统计某个整数在数组中出现的次数// // // int a[N]={1,2,1,4,5,6,1,8,9,0};// int n=1,num=0,i;//某个整数,出现的个数// for (i=0; i<N; i++) {// if (a[i]==n) {// num++;// }// }// printf("%d出现的次数为:%d\n",n,num);// // // 13.将一个字符数组循环右移2位。比如”12345”->”45123”,假定字符数组中字符的数量大于2// // // int a[N]={1,2,3,4,5,6,7,8,9,0},b[N];// int i,j;//取出前两个数的值// // for (i=0; i<2; i++) {// b[i]=a[N-2+i];// }// for (i=2,j=0; i<N; i++) {// b[i]=a[j];// j++;// }// for (i=0; i<N; i++) {// printf("%d ",b[i]);// }// // // 14.给定某个拥有5个元素的字符数组,数组的成员都有阿拉伯字符构成,试着将该数组转换成一个整数,比如字符数组的内容是:{‘1’,’2’,’3’,’3’,’2’} 则将被转换成12332// // // char ch[5]={'1','2','3','4','5'};// int in[5];// int i,j;// for (j=0; j<5; j++) {// in[j]=ch[j]-'0';// }// for (i=0; i<5; i++) {// printf("%d ",in[i]);// }// // // 15.通过终端输入10个整数并将其保存在一个整型数组中,数字保存在数组中的顺序与下标正好相反,也就是第一个被输入的数放在数组最后一个元素中,最后一个输入的数字放到第一个元素中// // int num[N];// int i,j;// printf("输入10个整数:");// for (i=N-1; i>=0; i--) {// scanf("%d",&num[i]);// }// for (j=0; j<N; j++) {// printf("%d ",num[j]);// }// printf("\n");// // // 16. 给定一个5个元素构成的整型数组,每个元素的值都在0-9之间,按照位置将其组成一个5位数并输出,例如int a[5] = {1,2,2,3,7};则输出73221// // int m=5;// int num[m],n=0;// int i,j;// static int x=10;// printf("输入5个数(0~9):");// for (i=0; i<m; i++) {// scanf("%d",&num[i]);// }// n=num[0];// for (j=1; j<m; j++) {// // n=n+(num[j]*x);// x=x*10;// }// // printf("%d\n",n);// // // 17. 给定一个整型数组,从第1个元素开始将相邻的两个元素分别相互交换。交换完后,第1个元素将变成最后一个元素,其余元素都前进一位// // int m=4;// int n1[m],n2[m],i,j;// printf("输入%d个数给数组赋值:",m);// for (i=0; i<m; i++) {// scanf("%d",&n1[i]);// }// for (i=0,j=1; i<=m-2; i++) {// n2[i]=n1[j];// j++;// }// n2[m-1]=n1[0];// for (i=0; i<m; i++) {// printf("%d ",n2[i]);// }// // // 18. 编写函数将一个n*n矩阵转置,例如:(****)// 1 2 3 4 1 5 3 4// 5 6 7 8 -> 2 6 2 7// 3 2 5 9 3 7 5 2// 4 7 2 3 4 8 9 3//// const int n=4;// int num1[n][n]={{1,2,3,4},{5,6,7,8},{3,2,5,9},{4,7,2,3}};// int num2[n][n],i,j;// for (i=0; i<n; i++) {// for (j=0; j<n; j++) {// num2[i][j]=num1[j][i];// }// }//// for (i=0; i<n; i++) {// for (j=0; j<n; j++) {// printf("%d ",num2[i][j]);// }// printf("\n");// }// // // // 19.// // 杨辉三角 输入n打印一个n行的杨辉三角// 1// 1 1// 1 2 1// 1 3 3 1// 1 4 6 4 1// 1 5 10 10 5 1// 1 6 15 20 15 6 1// // // int n,i,j;// int triangle[100][100]={};// printf("输入n:");// scanf("%d",&n);// for (i=0; i<n; i++) {// for (j=i; j>=0 ; j--) {// if (i==0 || j==0) {// triangle[i][j]=1;// }else{// triangle[i][j]=triangle[i-1][j-1]+triangle[i-1][j];// }// }// }// for (i=0; i<n; i++) {// for (j=i; j>=0; j--) {// printf("%d ",triangle[i][j]);// }// printf("\n");// }// // // 20.给某个整型数组赋值,赋值规律如下,下标能被3整除的都赋值为1,能被5整除的都赋值为2,能被7整除的都赋值为3,其余都赋值为0// // // int m=22;// int shuzu[m];// int i;// shuzu[0]=0;// for (i=1; i<m; i++) {// if (i%3==0 && i%7!=0) {// shuzu[i]=1;// }else if (i%5==0){// shuzu[i]=2;// }else if (i%7==0){// shuzu[i]=3;// }else{// shuzu[i]=0;// }// }// // for (i=0; i<m; i++) {// printf("%d ",shuzu[i]);// } return 0;}