我需要以金字塔模式生成以下奇数输出。 输出会像
1
3 3
5 5 5
7 7 7 7
我写了下面的代码。我应该修改哪一部分?
#include<stdio.h>
int main()
{
int num,r,c;
printf("Enter structure number : ");
scanf("%d", &num);
for(r=1; r<=num; r++)
{
if(r%2 != 0){
m=1;
for(c=1; c<=m; c++)
printf("%d",r);
printf("\n");
}
}
return 0;
}
当前输出:
当前输出就像-
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
最佳答案
你可以这样写:
for(r=1; r <= num; r+=2) //we only need odd numbers
{
times = r/2 + 1; //how many times to print odd number
for(c=1; c <= times; c++)
printf("%d",r); //print one character at a time
printf("\n");
}
如果您只遍历奇数,您可能会更好地理解它。我目前正在这样做并计算我需要打印该数字多少次,然后我只打印 times
的次数。
关于c - 数字的半金字塔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29822358/