实例
输入一个行和列均小于100的整形二维数组,并以矩阵的形式输出。
输入一行n和m,1<=n<=100,1<=m<=100.
输出:n行m列数组
分析:
#include <stdio.h>
int main()
{
int n,m,a[100][100];// 定义变量行、列,数组
int i,j;//定义变量表示数组的下标
scanf("%d%d",&n,&m);//输入二维数组的行和列
for(i=0;i<n;i++)//数组的行标
{
for(j=0;j<m;j++)//数组列表
{
scanf("%d",&a[i][j]);//输入二维数组每一个元素的值
}
}
for(i=0;i<n;i++)//行
{
for(j=0;j<m;j++)//列
{
printf("%d ",a[i][j]);//输出数组元素
}
printf("\n");//换行
}
return 0;
}
练习1:
【题目描述】
输入两个n行m列的矩阵A和B,输出它们的和A+B。
【输入】
第一行包含两个整数n和m,表示矩阵的行数和列数(1≤n≤100,1≤m≤100)。
接下来n行,每行m个整数,表示矩阵A的元素。
接下来n行,每行m个整数,表示矩阵B的元素。
相邻两个整数之间用单个空格隔开,每个元素均在1~1000之间。
【输出】
n行,每行m个整数,表示矩阵加法的结果。相邻两个整数之间用单个空格隔开。
【输入样例】
3 3
1 2 3
1 2 3
1 2 3
1 2 3
4 5 6
7 8 9
【输出样例】
2 4 6
5 7 9
8 10 12
【信息学奥赛一本通】
#include <stdio.h>
int main()
{
int a[101][101],b[101][101],s[101][101],m,n;
int i,j;
scanf("%d%d",&m,&n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&b[i][j]);
s[i][j]=a[i][j]+b[i][j];
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",s[i][j]);
}
printf("\n");
}
return 0;
}