c语言经典例题讲解(输出菱形,喝汽水问题)

简介: c语言经典例题讲解(输出菱形,喝汽水问题)

5ba3de70f55340af99dd281b325528b4.png一、输出菱形

输出类似于下图的菱形:


通过分析:1、先分为上下两部分输出

                 2.在输出前先输出空格

                 3.找规律进行输出



可知,可令上半部分line行,下半部分便是line-1行。

找空格的规律:当line为7时,第一行有6个空格,第二行有5个……第七行没有

起始点便是line-1,终止为0

找*规律: 当line为7时,第一行有1个*,第二行有3个……第七行有13个

规律是:line*2-1

int main()
{
  int line = 0;
  scanf("%d", &line);
  //开始输出上半部分
  for (int i = 1; i <= line; i++)
  {
    //先输出空格
    for (int j = 1; j <= line - i; j++)
    {
      printf(" ");
    }
    for (int j = 1; j <= 2 * i-1; j++)
    {
      printf("*");
    }
    printf("\n");
  }
  return 0;
}

c7b5707c9c47431fa1fc55f9bfdfc552.png

开始输出下半部分:

int main()
{
  int line = 0;
  scanf("%d", &line);
  //开始输出上半部分
  for (int i = 1; i <= line; i++)
  {
    //先输出空格
    for (int j = 1; j <= line - i; j++)
    {
      printf(" ");
    }
    for (int j = 1; j <= 2 * i-1; j++)
    {
      printf("*");
    }
    printf("\n");
  }
  //开始输出下半部分
  for (int i = 1; i <= line - 1; i++)
  {
    for (int j = 1; j <= i; j++)
    {
      printf(" ");
    }
    for (int j = 1; j <= (line - i) * 2 - 1; j++)
    {
      printf("*");
    }
    printf("\n");
  }
  return 0;
}

5ba3de70f55340af99dd281b325528b4.png


总结:我们要注意找到各行空格和*数量与第几行之间的数量关系

二、喝汽水问题

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给n元,可以喝多少瓶汽水

方法1:一步一步来

int main()
{
  int n = 0;
  int total = 0;
  scanf("%d", &n);//自己输入钱数
  total = n;
  int bottle = n;//一开始剩的瓶子数是钱数
  while (bottle >= 2)
  {
    total = total + bottle / 2;
    bottle = bottle / 2 + bottle % 2;
  }
  printf("%d", total);
  return 0;
}

需要注意的是 bottle = bottle / 2 + bottle % 2;当n=10时,喝完剩10个瓶子,换5瓶。5瓶能再换2瓶,还剩一个空瓶便是+bottle % 2


方法二:直接套公式

各位多试几组之后便很容易就可以看出最后喝的总瓶数是你钱的2倍减一

可直接打印2*n-1;


第一次题目便到这里,以后还会继续分享的,如有疑惑的地方,各位可以随时问我的。


目录
相关文章
|
2月前
|
C语言
C语言-----用二维数组解决菱形的打印问题
C语言-----用二维数组解决菱形的打印问题
20 0
|
5月前
|
C语言
c语言编程练习题:7-4 输出菱形图案
本题要求编写程序,输出指定的由“A”组成的菱形图案。
24 0
|
3月前
|
C语言
C语言:指针典型例题剖析
C语言:指针典型例题剖析
|
5月前
|
C语言
c语言编程练习题:7-59 打印菱形图案
c语言编程练习题:7-59 打印菱形图案
38 0
|
5月前
|
存储 编译器 vr&ar
c语言进阶部分详解(《高质量C-C++编程》经典例题讲解及柔性数组)
c语言进阶部分详解(《高质量C-C++编程》经典例题讲解及柔性数组)
34 0
|
5月前
|
C语言
用c语言画菱形( ̄_ ̄ )
用c语言画菱形( ̄_ ̄ )
31 0
|
5月前
|
C语言
C语言第二十五弹--打印菱形
C语言第二十五弹--打印菱形
|
6月前
|
C语言
【C语言刷题】水仙花数、打印菱形、求和
【C语言刷题】水仙花数、打印菱形、求和
41 0
|
7月前
|
C语言
C语言例题讲解(if语句,循环语句,函数)
C语言例题讲解(if语句,循环语句,函数)
63 0
|
9月前
|
编译器 C语言 C++
C语言操作符经典例题
C语言操作符经典例题