首页 > 代码库 > (c语法百题38)星罗密布

(c语法百题38)星罗密布

知识点:

for语句,if语句的灵活运用。

思考算法。

此题可以用二维数组做

优势是巧妙的衔接了*和$

 

 

内容:

输出图形

*****$

***$$$

*$$$$$

 

规律是...自己发现吧。

要求输入3,输出上面三行的图形

 

输入说明:

行数小于40

输出说明:

 

输入样例:

3

输出样例 :

*****$

***$$$

*$$$$$

 

法一:

#include <stdio.h>int main(){ int n,a,b,y=1,x,i; scanf("%d",&n); x=n;                     //预控制行数,方便以后递减 for (i=0;i<n;i++)        //控制行数,一行换行 {  for (a=0;a<2*x-1;a++)   //for输出*  {   printf("*");  }  for(b=0;b<y;b++)        //第一行有一个$  {   printf("$");  }  y+=2;                   //递增一行,有y+2个$  x-=1;                   //函数递减,控制*的数,对应上面的“for输出*”  printf("\n");  if(n==0)break;          //当零行时,终止for循环,程序结束 } return 0;}


法二:

 #include <stdio.h>int main(){ char a[100][1000]; int i,n,m,y; scanf("%d",&n); y=n; for (i=0;i<n;i++) {  for (m=0;m<2*y-1;m++)  {   a[i][m]=*;   printf("%c",a[i][m]);  }  for (;m<2*n;m++)          //衔接上面m,直到2*n  {   a[i][m]=$;   printf("%c",a[i][m]);  }  y-=1;  if (y==0)break;  printf("\n");  } printf("\n"); return 0;}

 

(c语法百题38)星罗密布