c - 在 C 中打印数字金字塔,从顶部的最高数字开始
问题描述
我已经在网站上搜索过这种金字塔和互联网,但没有找到接近它的东西,我 myslef 是编码新手,我猜 myslef 无法弄清楚。我试图修改其他代码以获得结果我想要但没有成功。
我必须制作从顶部输入的数字开始打印 piramid 的代码,然后使用以下数字逐渐扩展。
示例输入:5
输出:
55
4554
345543
23455432
1234554321
我可以做一半的金字塔问题是它的uspide down
#include <stdio.h>
#include <math.h>
int main(){
int i,j,num;
printf("number:");
scanf("%d",&num);
for(i=1;i<=num;i++){
j=num;
for(j;j>=i;j--){
printf("%d",j);
}printf("\n");
}
return 0;
}
输出:
number:5
54321
5432
543
54
5
而对于另一半,我试图用循环中的微小变化来反映它,但我不知道如何摆脱一些数字继承该代码:
#include <stdio.h>
#include <math.h>
int main(){
int i,j,num,k;
printf("number:");
scanf("%d",&num);
for(i=1;i<=num;i++){
for(k=1;k<=num;k++){
printf("%d",k);
}
j=num;
for(j;j>=i;j--){
printf("%d",j);
}printf("\n");
}
return 0;
}
输出:
number:5
1234554321
123455432
12345543
1234554
123455
解决方案
我的五分钱。:)
#include <stdio.h>
int main(void)
{
while ( 1 )
{
const int UPPER_LIMIT = 10;
printf( "Enter a non-negative integer number less than %d (0 - exit): ",
UPPER_LIMIT );
int n;
if ( scanf( "%d", &n ) != 1 || n <= 0 ) break;
if ( !( n < UPPER_LIMIT ) ) n = UPPER_LIMIT - 1;
putchar( '\n' );
for ( int i = 0; i < n; i++ )
{
printf( "%*d", n - i, n - i );
int j = n - i;
while ( j++ != n ) putchar( '0' + j );
while ( j-- != n - i ) putchar( '0' + j );
putchar( '\n' );
}
putchar( '\n' );
}
return 0;
}
程序输出可能如下所示
Enter a non-negative integer number less than 10 (0 - exit): 9
99
8998
789987
67899876
5678998765
456789987654
34567899876543
2345678998765432
123456789987654321
Enter a non-negative integer number less than 10 (0 - exit): 8
88
7887
678876
56788765
4567887654
345678876543
23456788765432
1234567887654321
Enter a non-negative integer number less than 10 (0 - exit): 7
77
6776
567765
45677654
3456776543
234567765432
12345677654321
Enter a non-negative integer number less than 10 (0 - exit): 6
66
5665
456654
34566543
2345665432
123456654321
Enter a non-negative integer number less than 10 (0 - exit): 5
55
4554
345543
23455432
1234554321
Enter a non-negative integer number less than 10 (0 - exit): 4
44
3443
234432
12344321
Enter a non-negative integer number less than 10 (0 - exit): 3
33
2332
123321
Enter a non-negative integer number less than 10 (0 - exit): 2
22
1221
Enter a non-negative integer number less than 10 (0 - exit): 1
11
Enter a non-negative integer number less than 10 (0 - exit): 0
推荐阅读
- reactjs - 如何在 React Native + Typescript 项目中设置样式组件的“css prop”?
- sql - 如何使用 postgresql 中的 group by 子句获取关联表列的值?
- php - symfony 在不同的网站生成 CSRF 代码进行登录?
- azure - 如何为 Azure 容器实例配置静态出站 IP
- python - 如果用户没有{username}电报bot python,如何存储用户{name}
- ltk - LLRP IMPINJ LTK 如何设置载波发射频率
- raspberry-pi4 - Raspberry pi - chmod 等权限后黑屏
- r - R ggplot,循环内有变量
- azure-devops - 如何在 azure 管道中参数化 azure agent.name?
- mysql - InfoSchema 用户丢失