来自小年号的输出旋转上三角

本文介绍了一个使用C++实现的螺旋矩阵生成算法,通过该算法可以生成指定大小的螺旋填充数字矩阵。文章提供了完整的代码示例,并展示了如何逐行打印生成的矩阵。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<iostream>
 4 using namespace std;
 5 int main()
 6 {
 7     int num;
 8 
 9     int arr[10][10];
10     for(int i=0; i<10; i++)
11         for(int j=0; j<10; j++)
12             arr[i][j]=-1;
13     while((scanf("%d",&num))!=EOF)
14     {
15         int n=num;
16         int now=1;
17         int col=0;
18         int row=0;
19         while(num>=1)
20         { //cout<<"row: "<<row<<" col: "<<col<<endl;
21             for(int i=0; i<num; i++)
22             {
23                 arr[row][col]=now++;
24                 col++;
25             }
26             row++;
27             col-=2;
28             //cout<<"row: "<<row<<" col: "<<col<<endl;
29             for(int i=num-1; i>0; i--)
30             {
31                 arr[row][col]=now++;
32                 row++;
33                 col--;
34             }
35             //cout<<"row: "<<row<<" col: "<<col<<endl;
36             row-=2;
37             col++;
38 
39             for(int i=num-2; i>0; i--)
40             {
41                 arr[row][col]=now++;
42                 row--;
43             }
44 
45            // cout<<num<<endl;
46            /* for(int i=0; i<num; i++)
47             {
48                 for(int j=0; j<num; j++)
49                     printf("%5d",arr[i][j]);
50                 cout<<endl;
51             }*/
52             num-=3;
53            // cout<<"row: "<<row<<" col: "<<col<<endl;
54             row++;
55             col++;
56             //cout<<num<<endl;
57             //int a;cin>>a;
58 
59         }
60         int c=n;
61         for(int i=0; i<n; i++)
62         {
63             for(int j=0; j<c; j++)
64                 printf("%5d",arr[i][j]);
65             cout<<endl;
66             c--;
67         }
68 
69     }
70     return 0;
71 }
nineteen.cpp

 

转载于:https://www.cnblogs.com/wangkaipeng/p/5950635.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值