加载中...

浙江理工大学入队200题——11C

问题 C: 零基础学C/C++118——弓型矩阵

题目描述

输出n*m的弓型矩阵

输入

多组测试数据 每组输入2个整数 n和m(不大于10)

输出

输出n*m的弓型矩阵,要求左上角元素是1,(每个元素占2个位置,靠右)

样例输入 Copy

4 3

样例输出 Copy

1 2 3
6 5 4
7 8 9
12 11 10

题解

如果是
1 2 3
4 5 6
7 8 9
10 11 12
你会输出吗?那么我们只需要在偶数行( 默认初始行列为1)倒着输出就行了
注意格式右对齐%2d
代码(AC)

点击查看代码
#include <stdio.h>
int main (){
	int n,m;
	while(scanf("%d%d",&n,&m)!=EOF)
	{
		int a[n+1][m+1],s=0;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				s++;
				a[i][j]=s;
			}
		}
			for(int i=1;i<=n;i++)
			{
				for(int j=1;j<=m;j++)
				{   
				if(i%2!=0) printf("%2d",a[i][j]);
				else
				{
					printf("%2d",a[i][m-j+1]);
				}	
					if(j<m) printf(" ");
					if(j==m) printf("\n");
				}
			}
	}
	return 0;
}
posted @ 2022-10-29 10:13  shany212  阅读(35)  评论(0编辑  收藏  举报