學完了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;
}