搜索
查看: 2003|回复: 8
打印 上一主题 下一主题

【第四章第10节第1,2题】我用while做的

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-20 14:51:21 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 cdzjf 于 2013-8-20 14:56 编辑

1.
我对此题做了小小的改动,让用户自己输入要打印多少行星号,这个行是指的正序部分的行数

#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,x,y,z,t;
    a=1,c=1;
    printf("请输入要打印几行星号");
    scanf("%d",&t);
    y=t-1;
    system("cls"); //目的是把上面喊用户输入的那几个去掉,影响美观。
    while(a<=t)
     {
      b=0;
      while(b<y)
      {
       printf(" ");
       b++;
      }
     y--;
     x=1;
     while(c>=x)
      {
       printf("*");
       x++;      
      }
     c=c+2;
     printf("\n");
     a++;
     }
    a=1,b=t,c=c-4;  //如果C-2的话,将会出现同样的星号数量,这里开始要递减一个,当然也可以从上面那个就少一个也可以的。本来是递减,但上面执行完程序后,C的值是t次加2的,其值是比最后一行的星星还多2个。
    while(a<t)         //只能小于,不可以小于等于,因为这样后面多对一个空行。
     {
      x=0,y=t+1;      //t+1的目的也是让空格从这行就开始执行。
      while(y>b)
      {
      printf(" ");
      y--;
      }
      b--;
      z=c;       //本来是用C的值,但如果直接用,等下面的Z--(x--)执行完以后C就成0了,星号那个循环就再也进不去了,所有只有用一个跳板
       while(z>x)
       {
        printf("*");
        z--;            
       }
      c=c-2;
      printf("\n");
      a++;
     }     
         system("pause");
        return 0;
}


沙发
 楼主| 发表于 2013-8-20 14:52:22 | 显示全部楼层
2.九九乘法表
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c,t;
    a=1;
    b=1;
   // t=10;
    while(a<=9)
     {   
    t=a;
    b=1;
      while(t>=1)
       {
        c=a*b;
        printf("%d*%d=%d ",a,b,c);     
        b++;  
        t--;
       }   
       a++;
       printf("\n");
     }
        system("pause");
        return 0;
}


板凳
 楼主| 发表于 2013-8-20 17:31:20 | 显示全部楼层
那个九九乘法表用for做的,开始调试了很久,后来发现for后面不可以有;符号


#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c,t,x=9;
    for(a=1;a<=9;a++)
     {
      //t=x,
      b=1;
      for(t=1;t<=a;t++)
       {
       c=a*b;
       printf("%d*%d=%d ",a,b,c);     
       b++;  
       }
      x--;
      printf("\n");
     }
        system("pause");
        return 0;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表