第四十一题:.定义一个含有30个整型元素的数组,按顺序赋予从2开始的偶数,然后按顺序以每5个数一组的形式求出平均值并输出。
#include"stdio.h"voidmain(){int arr[30],sum=0;int i,j;for(i=0;i<30;i++)
arr[i]=2*i+2;for(i=0;i<30;i++){
sum+=arr[i];if((i+1)%5==0){printf("the average is :=%d\n",sum/5);
sum=0;}}}
第四十二题:退出圈子,下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。输入整数n和m,并按退出顺序输出退出圈子的人的编号。试编写相应程序。
#include<stdio.h>#include<stdlib.h>voidmain(){int m,n,i,cnt=0,CNT=0,flag;printf("please input the m and n:\n");scanf("%d%d",&m,&n);int*a=(int*)malloc(n*sizeof(int));for(i=0;i<n;i++)
a[i]=i+1;while(1){
flag=CNT;for(i=0;i<n;i++){if(a[i]!=0){
cnt++;
CNT++;}if(cnt==m){
a[i]=0;
cnt=0;printf("%d ",i+1);}}if(CNT==flag+1)break;}free(a);}
第四十三题:定义一个3行3列的二维数组,从键盘输入9个数的值。输出其中最大值和最小值及其所在的行列坐标。
#include"stdio.h"voidmain(){int arr[3][3];int i,j,max,min;int max_i,max_j;int min_i,min_j;printf("please input the arr:\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&arr[i][j]);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%5d",arr[i][j]);printf("\n");}
max=arr[0][0];
min=arr[0][0];for(i=0;i<3;i++)for(j=0;j<3;j++){if(arr[i][j]>max){
max=arr[i][j];
max_i=i;
max_j=j;}if(arr[i][j]<min){
min=arr[i][j];
min_i=i;
min_j=j;}}printf("the result is :\n");printf("the max element is %d, index is [%d][%d]\n\n",max,max_i,max_j);printf("the min element is %d, index is [%d][%d]\n\n",min,min_i,min_j);}
第四十四题:编程计算3*3矩阵的主对角线元素和反向对角线元素之和。`在这里插入代码片`
#include"stdio.h"voidmain(){int arr[3][3];int i,j;int sum_1=0,sum_2=0;printf("please input the arr:\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&arr[i][j]);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%5d",arr[i][j]);printf("\n");}for(i=0;i<3;i++)for(j=0;j<3;j++){if(i==j)
sum_1+=arr[i][j];if(i+j==2)
sum_2+=arr[i][j];}printf("\n the sum_1 is %d, the sum_2 is %d :\n",sum_1,sum_2);}
第四十六题:定义一个3行3列的二维数组,从键盘输入9个数的值。输出其中最大值和最小值及其所在的行列坐标。
#include"stdio.h"voidmain(){int arr[3][3];int i,j,max,min;int max_i,max_j;int min_i,min_j;printf("please input the arr:\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&arr[i][j]);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%5d",arr[i][j]);printf("\n");}
max=arr[0][0];
min=arr[0][0];for(i=0;i<3;i++)for(j=0;j<3;j++){if(arr[i][j]>max){
max=arr[i][j];
max_i=i;
max_j=j;}if(arr[i][j]<min){
min=arr[i][j];
min_i=i;
min_j=j;}}printf("the result is :\n");printf("the max element is %d, index is [%d][%d]\n\n",max,max_i,max_j);printf("the min element is %d, index is [%d][%d]\n\n",min,min_i,min_j);}
第五十四题:对10个数进行排序(起泡排序)
#include"stdio.h"voidmain(){int arr[10];int i,j,temp;printf("please input the arr:\n");for(i=0;i<10;i++)scanf("%d",&arr[i]);for(i=1;i<10;i++)for(j=0;j<10-i;j++)if(arr[j]>arr[j+1]){
temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;}printf("the result is :\n");for(i=0;i<10;i++)printf("%d ",arr[i]);}
第五十五题:将一个数组逆序输出。
#include"stdio.h"voidmain(){int arr[10];int i,j;int temp;printf("please input the arr:\n");for(i=0;i<10;i++)scanf("%d",&arr[i]);for(i=0,j=9;i<5;i++,j--){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;}printf("the result is :\n");for(i=0;i<10;i++)printf("%5d",arr[i]);}