1.有一个3X4的矩阵,要求编程序求出其中值最大的呢个元素的值, 以及其所在的行号和列号。
/*有一个3X4的矩阵,要求编程序求出其中值最大的呢个元素的值,
以及其所在的行号和列号。*/
#include<stdio.h>
int main(){
int i,j ,row=0,colum=0,max;//初始化i,j,row,colum,max
int a[3][4]={{1,2,3,4},{5,6,7,8},{10,-10,5,-5}};//初始化一个3X4的二维列表
max=a[0][0];//先让a[0][0]成为"擂主",max存放最大值
for(i=0;i<=2;i++){
for(j=0;j<=3;j++){
if(a[i][j]>max){
max=a[i][j];
row=i;
colum=j;
}
}
}//循环数组中每一个元素与“擂主”比较,大者存入max
printf("max=%d\nrow=%d\ncolum=%d\n",max,row+1,colum+1);
return 0;
}
2.将一个二维数组行和列的元素互换,存到另一个二维数组中
/*将一个二维数组行和列的元素互换,存到另一个二维数组中*/
#include<stdio.h>
int main(){
int a[2][3]={{1,2,3},{4,5,6}};//初始化一个两行三列的二维数组
int b[3][2],i,j;
printf("array a:\n");
for(i=0;i<=1;i++){
for(j=0;j<=2;j++){
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}//输出二维列表a(%5d是当整数字符少于5个时,其余用空格填充)
//将数组中的每一个数字所对应的行列互换b[j][i]=a[i][j]
printf("\n");
}
printf("array b:\n");
for(i=0;i<=2;i++){
for(j=0;j<=1;j++){
printf("%5d",b[i][j]);
}
printf("\n");
}
return 0;
}
3.有10个地区的面积,要求对他们按小到大的顺序排序
/*有10个地区的面积,要求对他们按小到大的顺序排序*/
#include<stdio.h>
int main(){
int a[10];//初始化一个一维数组(有10个数字)
int i,j,t;
printf("input 10 numbers :\n");
for(i=0;i<10;i++){
scanf("%d",&a[i]);
}//循环,获取一维数组中的每一个数字
printf("\n");
for(i=0;i<9;i++){
for(j=0;j<9-i;j++){
if(a[j]>a[j+1]){
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
}//i代表有i趟,j代表每一趟相邻数字比较n-j次
//j也可以代表一维数组中数的索引
printf("the sorted numbers :\n");
for(i=0;i<10;i++){
printf("%d",a[i]);
}//输出,将已经排序好的一维数组输出
printf("\n");
return 0;//注意,C语言{}所代表的层级要比缩进重要
}
总结:
1.for循环:
for(a:b:c){
语句块
}
a:起始条件 b:判断循环的条件 c:循环体内语句块执行后执行的语句
!!!对于for循环的理解“对于一开始的a,当 b条件满足时,重复循环体,每一轮循环做完循环体内的语句后,执行 c语句”
tips:固定次数用for循环,例如阶乘或数组,其他用while循环,必须执行一次用do while循环文章来源:https://www.toymoban.com/news/detail-628939.html
2.算法扩充--排序--起泡法:
核心思想:每次将相邻的两个数进行比较,较小的数掉到前面,如“9 8 6 10 2”,第一次将前面的8和9对调,第二次9和6对调,以此类推。--起泡法一般用于从小到大或从大到小排序如今天的第三题。文章来源地址https://www.toymoban.com/news/detail-628939.html
到了这里,关于C语言每日一练-Day1有一个3X4的矩阵,要求编程序求出其中值最大的呢个元素的值, 以及其所在的行号和列号。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!