Chinaunix首页 | 论坛 | 博客
  • 博客访问: 151291
  • 博文数量: 44
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 407
  • 用 户 组: 普通用户
  • 注册时间: 2015-11-10 13:28
个人简介

仰望星空

文章分类
文章存档

2016年(22)

2015年(22)

我的朋友

分类: C/C++

2015-11-24 21:13:40

一、提示输入一个整形字符,例如输入9,就会打印下面的效果,其实是锻炼for语句

点击(此处)折叠或打开

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {    
  5.     unsigned int num;
  6.     char i, j;
  7.     printf("please input num:");
  8.     scanf("%d",&num);


  9.     for(i = 1; i <= num; i++)
  10.     {
  11.         j = i; //重点是理解这个,如果直接while(i != 0)
  12.          //会无限循环的 因为下面有i--
  13.         while(j != 0)
  14.         {
  15.             printf("*");
  16.             j--;
  17.         }
  18.         printf("\n");
  19.     }

  20.     for(i = num; i >= 1; i--)
  21.     {
  22.         j = i;
  23.         while(j != 0)
  24.         {
  25.             printf("*");
  26.             j--;
  27.         }
  28.         printf("\n");
  29.     }

  30. }

二、这个是对一的升级版,打印结果如下:


代码如下:

点击(此处)折叠或打开

  1. include <stdio.h>
  2.  
  3. int main()
  4. {    
  5.     unsigned int num, numk, numl;
  6.     char i, j, z;
  7.     printf("please input num:");
  8.     scanf("%d",&num);

  9.     numk = num/2;


  10.     for(i = 1; i <= num; i+=2)
  11.     {
  12.         j = i; //每一轮输出的“*”个数

  13.         numk = (num-i) / 2; //计算输出空格数
  14.         while(numk != 0) //输出空格
  15.         {
  16.             printf(" ");
  17.             numk--;
  18.         }
  19.         

  20.         while(j != 0) //输出“*
  21.         {
  22.             printf("*");
  23.             j--;
  24.         }

  25.         printf("\n");
  26.     }

  27. }

三、杨辉三角,这个原理差不多,但是公式不是很会,所以百度了一个,例如输入一个:9
    结果如下:


下边是代码;

点击(此处)折叠或打开

  1. #include<stdio.h>
  2. void main()
  3. {
  4.     int i,j,n,k;
  5.     char num;
  6.     printf("请输入一个正整数:");
  7.     scanf("%d",&n);
  8.     

  9.     for(i=1;i<=n;i++)
  10.     {

  11.         k=1;
  12.         for(j=1;j<i;j++)
  13.         {
  14.             printf("%d ",k);
  15.             k=k*(i-j)/j;//每次要打印的下一个数等于前一个数乘以其所在行数和列数的差再除以其列数,就Ok了~
  16.         }
  17.     printf("%ld",k);
  18.     printf("\n");
  19.     }
  20. }


阅读(1371) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~