c - 半右倒金字塔
问题描述
我有一个家庭作业来制作金字塔代码,然后我尝试了一下,代码是这样的:
int main()
{
int n,i,j,k;
printf("How many lines long ?\n");
scanf("%d",&n);
for(i = 0; i<=n; i++)
{
for(j = 0; j<n-i; j++)
{
printf(" ");
}
for(k = 0; k<i; k++)
{
printf("#");
}
printf("\n");
}
return 0;
}
经过多次尝试,结果如下:
#
##
###
####
#####
但是,我想做出这样的结果:
#####
####
###
##
#
谁能帮我???谢谢...
解决方案
您可以通过反转外部 for 循环来实现这一点。制作外部 for-loop for(i = n; i>0; i--) {}
。
修改后的代码:-
int main()
{
int n, i, j, k;
printf("How many lines long ?\n");
scanf("%d", &n);
for (i = n; i > 0; i--)
{
for (j = 0; j < n - i; j++)
{
printf(" ");
}
for (k = 0; k < i; k++)
{
printf("#");
}
printf("\n");
}
return 0;
}
输出 :-
How many lines long ?
5
#####
####
###
##
#
您可以通过使用调试器来解决这些简单的问题。所以请学习使用它。或者只是通过纸笔书写。还要确保您的代码正确缩进。
推荐阅读
- r - R 中的 XGBoost 解释器 - 如何对特征贡献实施约束?
- python-3.x - Pygmo 2:控制内存分配
- angular - 我应该怎么做才能使用 grails 3 和 Angular 创建一个 Web 应用程序?
- java - Spring Boot Index-Page 在 Docker 容器中返回 403
- ios - UICollectionView shouldShowMenuForItemAt 未调用
- android - MPAndroidChart:自定义 Y 轴上的毕业步骤
- visual-studio-code - 有没有办法用 vscode.workspace.createFileSystemWatcher 观察多种文件类型
- google-admin-sdk - 需要查明用户何时被暂停
- google-maps-api-3 - Google Maps API - 自定义某些控件的外观
- amazon-web-services - 如何使用映射模板更新 DynamoDb 中的布尔字段?