数组学习总结
1.二位数组的定义
类型名 数组名【行长度】【列长度】
int a[3][2]
定义一个二维数组,3行2列,6个元素
行下标的取值范围是【0,行长度-1】
列下标的取值范围是【0,列长度-1】
注意:下标一定不能越界。
2.二维数组的赋初值
(1)分行赋初值
int a[3][3]={{1,2,3},{1,2,3}{1,2,3}};
(2)顺序赋初值
int a[3][3]={1,2,3,1,2,3,1,2,3}
数组a:1 2 3
1 2 3
1 2 3
3.字符数组
如果数组中的每一个元素都是一个字符,这样的数组称为字符数组。
1.字符数组的赋值方法
1).用字符常量逐个初始化
用赋值语句逐个元素赋值
用scanf读入整个数组
用scanf逐个元素读入
用cin输入整个数组
用cin逐个元素输入
用gets读入整个数组
用getchar逐个读入
注意:
1.用gets,读入整个数组可以读入空格,用其他方式读入数组则空格作为间隔符,不作为文字的内容
2.一个字符数组,只能存一个字母。
字符数组的输出方法
用cout输出整个数组
用cout逐个元素输出
用printf输出整个数组
用printf逐个元素输出
用puts输出整个数组
用putchar逐个元素输出题目练习
题目练习:
给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。
输入格式:
输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。
输出格式:
在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
输入样例:
4
2 3 4 1
5 6 1 1
7 1 8 1
1 1 1 1
输出样例:
35
#include <stdio.h>
int main(){
int m=0,n=0,i=0,j=0;
scanf("%d",&n);
int a[n][n];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
if(i!=n-1&&j!=n-1&&j!=n-1-i) //最后一行、最后一列、副对角线的角标关系
{
m=m+a[i][j];
}
}
}
printf("%d",m);
return 0;
}
求一个二维数组周边元素的累加和。 输入一个二维数组的行数m(m<10),列数n(n<10),二维数组的各元素值。输出周边元素之和。
输入格式:
输入的第一行为矩阵的行数和列数,从第二行开始,为矩阵元素的输入。
输出格式:
输出周边元素之和。
输入样例:
在这里给出一组输入。例如:
3 4
1 2 3 4
5 6 7 8
1 2 3 4
输出样例:
在这里给出相应的输出。例如:
33
#include <stdio.h> int main(int argc, char *argv[]) { int m,n,a[12][12],s=0,x; scanf("%d %d",&n,&m); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ scanf("%d",&x); if(i==1||i==n||j==1||j==m) s+=x; } } printf("%d",s); return 0; }

浙公网安备 33010602011771号