【刷题记录】
第七次刷题记录
写在前面刷题过程中发现自己所缺乏的点,仅对自己不熟悉的知识点一个回顾与复习的记录,如有错误,望大家批评指正
【回顾】C语言
数组
什么是数组?
数组是具有相同数据类型变量的集合。
数组定义方式
1.一维数组的定义方式:类型说明符 数组名[常量表达式];
2.二维数组的定义方式:类型说明符 数组名[常量表达式1][常量表达式2];
其中常量表达式1表示行下标,常量表达式2表示列下标。下标值从0开始
数组的初始化
1.一维数组:类型说明符 数组名[常量表达式]={数值1,数值2,……,数值n};
2.二维数组:(1)把初始值括在一对大括号内。例如 int x[2][3]={1,2,3,4,5};
(2)分解成多个一维数组的初始化,例如 int x[2][3]={{1,2,3},{4,5,6}};
例题
(1)题目描述求一个3*3矩阵的两条对角线元素之和(注意:两对角线交叉点处的元素只计算一次)
(2)代码:
#include<stdio.h>
int main()
{
int a[3][3]; //定义3*3矩阵
int i,j,sum,result1=0,result2=1; //定义循环变量
for(i=0;i<3;i++) //外循环
{
printf("输入一行:"); //输出提示信息
for(j=0;j<3;j++) //内循环
{
scanf("%d",&a[i][j]); //逐行输入矩阵
if(i==j) //如下标相同,则累加到result1
result1+=a[i][j];
if(i+j==2&&i!=j) //如下标不同且和为2,则累加到result2
result2+=a[i][j];
}
}
sum=resule1+result2; //将result1和result2相加
printf("sum=%d\n",sum); //输出结果
}
(3)问题分析:利用for循环,将对角线上的元素累加到result1,将两个下标不一致,但和等于2累加到result2,最终将resultresult2相加得到结果,输出。