本周学习了C语言中的二维数组;
下面是一个简单的代码,利用了二维数组的功能进行实现:
#include <stdio.h>
int main() {
int t,n,i,j,k;
int a[10][10];
scanf("%d",&t);
int count=0;
int b[10]={0}; //记录判断记录
for(k=0; k<t; k++){
//读入矩阵
scanf("%d",&n);
for(i=0; i<n; i++){
for(j=0; j<n; j++){
scanf("%d",&a[i][j]);
}
}
//判断矩阵
for(i=0; i<n; i++){
for(j=0; j<n; j++){
if(i>j && a[i][j] != 0){
count++;
}
}
}
if(count==0 ){
b[k] = 1;
}else{
b[k] = 0;
}
count=0;
}
for(k=0; k<t; k++){
if(b[k]==1){
printf("YES\n");
}else{
printf("NO\n");
}
}
return 0;
}
这个代码能够接收多个矩阵数据并把数据储存在二维数组内,之后遍历数组判断上三角矩阵和下三角矩阵是否都为数据零;
二维数组定义: int a[10][10]; 第一个括号里定义10行,第二个括号定义10列,因此数组为10x10=100 的存储数量;
引用: a[i][j] ;在括号内写下相应的下标,与一维数组一样,二维数组下标也是从0开始到长度-1下标结束;
初始化赋值:1.分行赋值 ,int a[3][3]={{1,2,3},{4,5,6},{7,8,9}} ,也可以针对部分元素赋值;
2.顺序赋值:int a[2][2]={1,2,3,4},这种赋值方法需要注意你的赋值顺序;
使用数组时依旧可以与for循环结合使用;
for(i=0; i<n; i++){
for(j=0; j<n; j++){
scanf("%d",&a[i][j]);
}
这样可以把数据存储或者取出数组数据;
二维数组矩阵术语和下标具有特殊的规律;
通过这些规律我们可以进行更多功能使用,比如判断上三角矩阵以及方阵置换等;
最后讲一下一维字符数组:
其功能就是存储字符型数据,使用和定义与一维数组方法一样;
字符串常量就是用一对双引号括起来的字符序列,其中最后结尾有一个结束标志‘\0’;例如“Happy”
其实质长度是5,数组输入可以为:static char s[6]={"Happy"};这个时候数组储存就需要至少6个储存长度了;
这学期结束前我会用C语言做一个井字棋游戏,有时间进行记录;