数组中,不一定都是字符,可以没有'\0',ascll码值可以为0
1.数组名字时,地址常量不可修改
2.数组长度在定义时,必须是常量。
#include<stdio.h>
int main(){
int a[3][4],i,j;
printf("Input data:\n");
for(i=0;i<2;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(j=0;j<4;j++)
a[2][j]=a[0][j]+a[1][j];
printf("Result:\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++)
printf("%d",a[i][j]);
printf("\n");
}
}
//这一个结果就是我们输入前两行,
for(i=0;i<2;i++)
for(j=0;j<4;i++)
printf("%d",&a[i][j]);
//最后一行结果就是
前4列加起来就是第三行
for(j=0;j<4;j++)
a[2][j]=a[0][j]+a[1][j];
//要是这里是把所有的行加起来,那么该怎么写呢?
a[i][4]=a[i][0]+a[i][1]+a[i][2]+a[i][3];
//最后输出3行4列:
printf("The result :");
for(i=0;i<3;i++)//按行按列输出
for(j=0;j<4;j++)
printf("%d",a[i][j]);
printf("\n");
二维数组初始化
- 按行初始化
- int a[2][3]={{1,2,3},{4,5,6}};//可以理解为二维数组为一维数组的一维数组
- int a[2][3]={{1,2},{4}};
- 按行逐列初始化
- int b[3][2]={10,20,30,40,50,60};
- int b[3][2]={10,20,30};
- 省略行数初始化
- int a[][4]={{1,2},{1,2,3}};
- int b[][3]={1,2,3,4,5,6,7,8,9};
#include<stdio.h>
int main(){
int a[4][4]={{1},{6,1},{8,7,1},{9,5,3,1}};
int i,j;
for(i=0;i<3;i++)
for(j=i+1;j<4;j++)
a[i][j]=a[j][i];
for(i=0;i<4;i++){
for(j=0;j<4;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
原题是
1
6 1
8 7 1
9 5 3 1
我手写一下代码:
#include<stdio.h>
void main(){
int a[4][4]={{1},{6,1},{8,7,1},{9,5,3,1}};
int i,j;//定义行列;计数
//行我需要求得数 0,1,2
//列 1,2,3
for(i=0;i<3;i++)
for(j=i+1;j<4;j++)
a[i][j]=a[j][i];
//输出
for(i=0;i<4;i++){
for(j=0;j<4;j++)
printf("%4d",a[i][j]);//一行显示4个数,换行
printf("\n");
}
}