19届第四范式测试开发工程师校招-编程题

编程题两道,第一道关于SQL的联合查询跟第二排序,第二道关于二维数组。

题目2:

    给定一个空的int类型的二维数组array[n][m]。按下面的填充规则,请编写一个函数将此二维数组填满并打印出来。

1 2 4 7
3 5 8 11
6 9 12 14
10 13 15 16

输入描述:输入的包括两个正整数,表示二维数组的大小n,m(1<=n,m<=10)

输出描述:打印结果,每行行末无空格。

例1:输入为4 4

输出为

1 2 4 7

3 5 8 11

6 9 12 14

10 13 15 16

思路:首先先找出规律,是按照i+j=(0,1,2,n*m)来递增赋值。接下来就是编写程序了。

代码如下

 1 #include <iostream>
 2 #include<stdio.h>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int n,m;
 8     scanf("%d %d",&n,&m);
 9     int a[100][100]={1},com=1;
10     if(n>=1&&n<=10&&m>=1&&m<=10)  //判断下标是否超出
11     {
12         for(int k=1;k<=n*m;k++)
13         {
14             for(int i=0;i<n;i++)
15             {
16                 for(int j=0;j<m;j++)
17                 {
18                     if(i+j==k)
19                     {
20                         a[i][k-i]=com+1;
21                         com=a[i][k-i];
22                     }
23                 }
24             }
25         }
26         for(int i=0;i<n;i++)   //输出二维数组
27         {
28             for(int j=0;j<m;j++) cout<<a[i][j]<<" ";
29             cout<<endl;
30         }
31     }
32     else cout<<"error"<<endl;
33     return 0;
34 }

猜你喜欢

转载自www.cnblogs.com/lijuanhu321/p/9616088.html
今日推荐