问题出在:你代码的第七行之考虑到开始的空格输出,而没有考虑到中间和后面的空格
所以导致逻辑上的错误
正确代码如下:
#include
#include
#include
#include
/*
int main()
{
int num;
char triangle[40];//可删去
while(scanf("%d",&num)==1){
for(int count1=0;count1<40;count1++){
triangle[count1]='#';
}
int main(){ 源代码截图: 参考资料:百度百科-网页链接 扩展资料: C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。 C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。 其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
for(int count1=0;count1
if(count1-1>=0){
count2=count1-1;
triangle[count2]=' ';
triangle[2*num-2-count2]=' ';
}
for(int count2=0;count2<2*num-1;count2++){
printf("%c",triangle[count2]);
}
printf("\n");
}
}
}
*/
int num;
while(scanf("%d",&num)!=EOF){
for(int count1=0;count1
for(int count2=0;count2
printf(" ");
}
for(int count2=count1;count2<=2*num-2-count1;count2++){
printf("#");
}
printf("\n");
}
}
}
C语言经典例子之打印杨辉三角形
下面的程序可以输出一个n层的倒三角形:
#include
int main()
{int i,j,n;
scanf("%d",&n); //输入n的值
for(i=0;i { for(j=0;j
printf(" "); for(j=0;j<2*(n-i)-1;j++) //输出一行上的“*” printf("*"); printf("\n"); //一行结束,换行 } system("pause"); //暂停,便于观察 return 0; }
题目要求的每一行的*之间有空格,你打的每一行*之间没空格