趣味矩阵

使左对角线和右对角线上的元素为0,它们上方的元素为1,左方的元素为2,下方元素为3,右方元素为4,下图是一个符合条件的5阶矩阵。
在这里插入图片描述
这里采用二维矩阵来进行问题的求解

1)当对二维表按行进行操作时,应该“外层循环控制行; 内层循环控制列”;反之若要对二维表按列进行操作时,应该“外层循环控制列;内层循环控制行”。
2)二维表和二维数组的显示输出,只能按行从上到下连续进行,每行各列则只能从左到右连续输出。所以,只能用“外层循环控制行;内层循环控制列”。

分析:
五种情况(i为行 j为列 都从0起标 阶数为n)

  1. i+j=n-1 || i=j value=0
  2. i<j || i+j<n-1 value=1
  3. i>j || i+j<n-1 value=2
  4. i>j || i+j>n-1 value=3
  5. i<j || i+j>n-1 value=4

answer:

#include<stdio.h>
int main()
{
	int i,j,a[100][100],n;
	printf("输入矩阵的大小:");
	scanf("%d",&n); 
	//C语言中矩阵行、列的下标均从0开始。 
    for(i=0;i<=n-1;i=i+1){
    	for(j=0;j<=n-1;j=j+1){
    		if(i==j or i+j==n-1) a[i][j]=0;
       		if(i+j<n-1 and i<j) a[i][j]=1;
       		if(i+j<n-1 and i>j) a[i][j]=2;
       		if(i+j>n-1 and i>j) a[i][j]=3;
       		if(i+j>n-1 and i<j) a[i][j]=4;
		}
	}
	for(i=0;i<=n-1;i=i+1){
		for(j=0;j<=n-1;j=j+1){
			printf("%d ",a[i][j]);
		}
		printf("\n");//某行最后一列打印后,要换行,打印下一行。 
	} 
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值