学完了c语言,回过头来看看之前难死自己的打印图形,嘿嘿,果然还是很简单的啦。
打印图形问题的关键就是找到图形的行数与星号,空格三者之间的规律,如果打印图形AC了的话,相信循环已经不是问题了。
1.输出一行星号
#include <stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("*");
}
return 0;
}
2.打印平行四边形
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i-1;j++)
printf(" ");
for(int k=1;k<=n;k++)
printf("*");
printf("\n");
}
return 0;
}
3.打印三角形
#include <stdio.h>
int main()
{
int n;
int i,j,k;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
printf(" ");
}
for(k=1;k<=2*i-1;k++)
{
printf("*");
}
printf("\n");
}
return 0;
}
4.输出X图形
#include <stdio.h>
int main()
{
int n,i,j,k,l;
scanf("%d",&n);
for (j=1;j<= n;j++)
{
for (k = 1;k<=2*n-1;k++)
{
if (k == j || k ==2*n-j)
printf("*");
else
printf(" ");
}
printf("\n");
}
for (j=n+1;j<=2*n-1;j++)
{
for (k =1;k<=2*n-1;k++)
{
if(k==(2*n-j)||k==2*n-(2*n-j))
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
5.输出一个字母K吧!
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<n;i++)
{
printf("*");
for(int j=1;j<=n-i;j++)
{
printf(" ");
}
printf("*\n");
}
printf("*\n");
for(int i=1;i<n;i++)
{
printf("*");
for(int j=1;j<=i;j++)
{
printf(" ");
}
printf("*\n");
}
return 0;
}
6.打印空心三角形
#include <stdio.h>
int main()
{
int n,i,j,c,z;
char m;
scanf("%c%d",&m,&n);
c=n;
z=n;
i=1;
while(i!=z)
{
for(j=1;j<=n;j++)
{
if(j==n||j==c)
{
printf("%c",m);
}
else
{
printf(" ");
}
}
i++;
c=c-1;
n=n+1;
printf("\n");
}
while(i==z)
{
for(i=1;i<=2*z-1;i++)
{
printf("%c",m);
}
printf("\n");
}
return 0;
}
7.空心直角三角形
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
printf("*\n");
for(int i=1;i<=n-2;i++)
{
printf("*");
for(int j=1;j<=i-1;j++)
{
printf(" ");
}
printf("*\n");
}
for(int i=1;i<=n;i++)
{
printf("*");
}
return 0;
}
/* 方法二:
#include<stdio.h>
int main()
{
int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=0;j<i;j++)
{
if(i>2&&j>0&&j<i-1&&i!=n)
printf(" ");
else
printf("*");
}
printf("\n");
}
return 0;
}