我需要在金字塔模式中生成以下奇数输出。 输出就像
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
答案 0 :(得分:2)
你可以写:
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
的次数。
答案 1 :(得分:2)
此代码中有2个错误。 m没有在任何地方声明。 你正在运行一个无限循环
试试这个。
#include<stdio.h>
int main()
{
int num,r,c,m;
printf("Enter structure number : ");
scanf("%d", &num);
for(r=1; r<=num; r++)
{
if(r%2 != 0){
m=r;
for(c=1; c<=m; c++)
printf("%d",r);
printf("\n");
}
}
return 0;
}
答案 2 :(得分:1)
在您的代码中,而不是
m=1;
你应该写
m= ( (r/2) + 1);
在所有的时间里,你只会在for
循环中迭代一次。
答案 3 :(得分:1)
稍作修改即可:
#include<stdio.h>
int main()
{
int num,r,c,m=0;
printf("Enter structure number : \n");
scanf("%d", &num);
for(r=1; r<=num; r++)
{
if(r%2 != 0){
m++;
for(c=1; c<=m; c++)
printf("%d ",r);
printf("\n");
}
}
return 0;
}
这是demo。
答案 4 :(得分:1)
内部for
循环应如下所示:
for(c=1; c <= r/2; c++)
printf("%d ",r);
只需考虑一下。你想在每一行打印一个四舍五入的r/2
数字,对吧?
3/2
- &gt; 1.5 -rounded-&gt; 1 - &gt;印刷品:3 5/2
- &gt; 2.5 -rounded-&gt; 2 - &gt;印刷品:5 5 您可以在ideone.com
上运行此处的代码答案 5 :(得分:1)
#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){
int m=r;
for(c=1; c<=m; c++)
{
if(c%2 != 0){
printf("%d ",r);
}
}
printf("\n");
}
}
return 0;
}
并测试
sh-4.3# main
Enter structure number : 9
1
3 3
5 5 5
7 7 7 7
9 9 9 9 9
答案 6 :(得分:0)
在第1行中,您应该打印1.
在第2行中,您应该打印3
在第3行中,您应该打印5
在第4行中,您应该打印7
............................
............................
在 n 行中,您应该打印 2 * n-1 。
您可以查看:
#include<stdio.h>
int main()
{
int num,r,c;
printf("Enter structure number : ");
scanf("%d", &num);
for(r=1; r<=num; r++)
{
for(c=1; c<=r; c++)
printf("%d",2*r-1);
printf("\n");
}
return 0;
}
答案 7 :(得分:0)
请看一下:
Id(i => i.TableId).GeneratedBy.Increment();
如果您想要1,3,5,7之类的替代数字......只需按IOException
增加值。