问题出在:你代码的第七行之考虑到开始的空格输出,而没有考虑到中间和后面的空格
所以导致逻辑上的错误
正确代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
/*
int main()
{
int num
char triangle[40]//可删去
while(scanf("%d",&num)==1){
for(int count1=0count1<40count1++){
triangle[count1]='#'
}
for(int count1=0count1<numcount1++){
if(count1-1>=0){
count2=count1-1
triangle[count2]=' '
triangle[2*num-2-count2]=' '
}
for(int count2=0count2<2*num-1count2++){
printf("%c",triangle[count2])
}
printf("\n")
}
}
}
*/
int main(){
int num
while(scanf("%d",&num)!=EOF){
for(int count1=0count1<numcount1++){
for(int count2=0count2<count1count2++){
printf(" ")
}
for(int count2=count1count2<=2*num-2-count1count2++){
printf("#")
}
printf("\n")
}
}
}
源代码截图:
参考资料:百度百科-网页链接
扩展资料:
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等。
整体来说就是用二种的循环来实现,假如要输出一个五层的倒三角图案(等腰三角形形式)第一行输出九个井号然后换行,第二行先输出一个空格,然后再输出七个井号,再换行,第三行输出两个空格,再输出五个井号换行,第四行输出三个空格,再输出三个井号换行,最后一行先输出四个空格,再输出一个井号后换行。这样就输出了一个共五行的由井号组成的倒三角形。题主是想打印“倒三角”,而不是原题代码中的“右下三角”对吧?
#include <stdio.h>int main(void) {
int i,j,n
printf("Enter n:")
scanf("%d",&n) /*输入n的值*/
for(i=0i<ni++) { /*共n行*/
for(j=0 j<i j++) /*前面的空格*/
printf(" ")
for(j=0 j<2*(n-i)-1 j++) /*输出符号*/
printf("*")
printf("\n") /*一行结束,换行*/
}
getch ()
return 0
}
运行结果