c语言用一个for画出直角三角形?

#include<stdio.h>
void main()
{
int i,j;

for(i = 1; i <= 5; i++){
for(j = 1; j <= i; j++){
printf("* ");
}
printf("\n");
}
}
把这个程序该成用一个for
在这个for中不能在用循环语句!

# include <stdio.h>

int main()
{
int i,k=1,N;
scanf("%d",&N);//输入层数
for(i=1;i<N;i++)
if(i==k){printf("\n");k++;i=0;}
else printf("* ");
return 0;
}

不要用GOTO,这个语法已经被认为不该存在了.一个循环中用一个变量控制就可以了.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-06
不用for用while用do while用goto呗
不过必然需要两重循环

对了,用指针可以实现你的理想~
#include<stdio.h>
void main()
{
int i;
char *p="*****";
p=p+4;
for(i = 1; i <= 5; i++){
printf("%s",p);
printf("\n");
p--;
}
}
第2个回答  2019-08-09
#
include
<stdio.h>
int
main()
{
int
i,k=1,N;
scanf("%d",&N);//输入层数
for(i=1;i<N;i++)
if(i==k){printf("\n");k++;i=0;}
else
printf("*
");
return
0;
}
不要用GOTO,这个语法已经被认为不该存在了.一个循环中用一个变量控制就可以了.
第3个回答  2010-03-06
#include<stdio.h>
void main()
{
int i,j;

for(i = 1; i <= 5; i++){
int count = 0;
BACK:printf("*");
count ++;
if (count != i)
goto BACK;
printf("\n");
}
}

用goto做可以实现
第4个回答  2010-03-06
#include<stdio.h>
void main()
{
int i,j=1;
for(i = 1; i <= 15; i++)
{
printf("* ");
if(i==j)
{
static int n=1;
printf("\n");
n++;
j=j+n;
}
}
}


#include<stdio.h>
void main()
{
int i,j=0;
int s[5]={1,3,6,10,15};
for(i = 1; i <= 15; i++)
{
printf("* ");
if(i==s[j])
{
printf("\n");
j++;
}
}
}
相似回答