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

这篇具有很好参考价值的文章主要介绍了c语言经典例题讲解(输出菱形,喝汽水问题)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、输出菱形

二、喝汽水问题

方法1:一步一步来 

 方法二:直接套公式


 

一、输出菱形

输出类似于下图的菱形: 

 c语言经典例题讲解(输出菱形,喝汽水问题),c语言题目分享,c语言,算法,数据结构,经验分享

通过分析: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;
}

c语言经典例题讲解(输出菱形,喝汽水问题),c语言题目分享,c语言,算法,数据结构,经验分享

开始输出下半部分:

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;
}

c语言经典例题讲解(输出菱形,喝汽水问题),c语言题目分享,c语言,算法,数据结构,经验分享


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

二、喝汽水问题

喝汽水,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; 


 第一次题目便到这里,以后还会继续分享的,如有疑惑的地方,各位可以随时问我的。 文章来源地址https://www.toymoban.com/news/detail-648849.html

到了这里,关于c语言经典例题讲解(输出菱形,喝汽水问题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 整数规划、对偶理论、线性规划经典例题讲解

    整数规划是一类要求问题的解中的全部或一部分变量为整数的数学规划,应用范围极其广泛。不仅在工业和工程设计和科学研究方面有许多应用,而且在计算机设计、系统可靠性和经济分析等方面也有新的应用。 通过前面的学习,我们已经掌握了整数规划的数学模型、割平面

    2024年02月05日
    浏览(49)
  • 大学经典题目:Java输出杨辉三角形

    本节利用​ 过 Java 语 ​言中的流程控制语句,如条件语句、循环语句和跳转语句等知识输出一个指定行数的杨辉三角形。 杨辉三角形由数字进行排列,可以把它看作是一个数字表,其基本特性是两侧数值均为 1,其他位置的数值是其左上方数值与右上角数值之和。打印杨辉

    2024年02月09日
    浏览(34)
  • 【C语言经典例题】——程序员必须会的经典基础例题(三)

    关于C语言的一些基础经典题目放在专栏:[C语言刷题] 小菜坤日常上传gitee代码:https://gitee.com/qi-dunyan ❤❤❤ 个人简介:双一流非科班的一名小白,期待与各位大佬一起努力! 推荐网站:cplusplus.com 首先我们要知道什么是杨辉三角,如下: 思路: 我们可以看到,三角的两边

    2023年04月14日
    浏览(67)
  • 【图论经典题目讲解】CF786B - Legacy 一道线段树优化建图的经典题目

    D e s c r i p t i o n mathrm{Description} Description 给定 1 1 1 张 n n n 个点的有向图,初始没有边,接下来有 q q q 次操作,形式如下: 1 u v w 表示从 u u u 向 v v v 连接 1 1 1 条长度为 w w w 的有向边 2 u l r w 表示从 u u u 向 i i i ( i ∈ [ l , r ] iin [l,r] i ∈ [ l , r ] )连接 1 1 1 条长度为 w w w

    2024年02月20日
    浏览(80)
  • 【图论经典题目讲解】洛谷 P2371 墨墨的等式

    D e s c r i p t i o n mathrm{Description} Description 求解有多少个 b ∈ [ l , r ] bin [l,r] b ∈ [ l , r ] 满足 ∑ i = 1 n a i x i = b sumlimits_{i=1}^n a_ix_i=b i = 1 ∑ n ​ a i ​ x i ​ = b 存在非负整数解( x i x_i x i ​ 为变量, a a a 数组给定)。 S o l u t i o n mathrm{Solution} Solution b b b 一定可以表示为

    2024年02月20日
    浏览(32)
  • 【图论经典题目讲解】洛谷 P5304 旅行者

    D e s c r i p t i o n mathrm{Description} Description 给定一个 n n n 个点, m m m 条边的有向图,求解 k k k 个点两两间最短路长度的最小值。 S o l u t i o n mathrm{Solution} Solution 对于 k k k 个点,可以考虑二进制分组优化,即对于每一位为 1 1 1 的点放入 1 1 1 组(设为 A A A 组),为 0 0 0 的点

    2024年02月19日
    浏览(40)
  • C语言递归及经典例题详解

      什么是递归? 什么时候使用递归 例题1 顺序打印问题 例题2 求n的阶乘 例题3 求第n个斐波那契数 经典 汉诺塔问题 经典 青蛙跳台阶问题   什么是递归? 递归就是程序调用自身的编程技巧。递归通常把一个大型复杂的问题层层转化为一个与原问题相似,规模较小的问题来求

    2024年02月05日
    浏览(35)
  • 有关C语言指针的经典例题

     1.通过地址运算符获得地址值   2.输入a,b,按从小到大的顺序输出 3 3.用指针法访问数组元素  4.从键盘输入10个整数,放入一堆数组a中,然后将该数组中的元素值依次输出  5.将10个数的最小值换到最前面的位置 6.求二维数组元素的最大值  7.用指针法实现字符串的复制 8

    2024年02月04日
    浏览(37)
  • C语言递归算法实现经典例题

    递归是一种编程技术,它通过在函数内部反复调用自身来解决问题。当一个程序调用自己时,这就称为递归调用。递归可以有助于简化某些算法的实现和理解。在递归过程中,每个调用都会将一些数据保存在栈上,直到递归结束后才能被处理并弹出栈。 递归通常有两个部分:

    2024年02月05日
    浏览(50)
  • 【图论经典题目讲解】洛谷 P2149 Elaxia的路线

    D e s c r i p t i o n mathrm{Description} Description 给定 n n n 个点, m m m 条边的无向图,求 2 2 2 个点对间最短路的最长公共路径 S o l u t i o n mathrm{Solution} Solution 最短路有可能不唯一,所以公共路径的长度就有可能不同。 将 2 2 2 条最短路都会经过的边(包括同向和异向)记录出来,

    2024年02月20日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包