c - 数字的半金字塔

标签 c loops for-loop printf

我需要以金字塔模式生成以下奇数输出。 输出会像

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/

相关文章:

c++ - rdtscp、rdtsc : memory and cpuid/rdtsc? 的区别

c++ - macOS 上的 .so 和 .dylib 有什么区别?

python - 使用 for 循环迭代并引用 lst[i] 时出现 TypeError/IndexError

loops - 如何在显示的每个主题上显示不同的模态数据?

javascript - 多个条件无效的 for 循环 (JS)

javascript - 文本替换循环不起作用

r - 双循环填充数据框 - 如何修复 "invalid function in complex assignment"

c++ - 如何通过对C函数和类对象的外部调用来处理C++头文件

c++ - 如何使用makefile生成自动头文件

java - StreamGobbler - 接受输入的线程? java