文章目录
每篇前言
每篇前言
1.导语
2.习题列表
3.结语
每篇前言
✅作者简介:大家好,我是小杨
📃个人主页:「小杨」的csdn博客
🔥系列专栏:小杨带你玩转C语言【初阶】
🐳希望大家多多支持🥰一起进步呀!
导语
本篇博客主要向各位小伙伴们讲解C语言的经典例题,带领各位小伙伴们一起刷C语言,希望各位小伙伴们能够在这里收获多多!让我们一起努力!一起进步!希望大家能够通过阅读这篇博客,受益良多!
习题列表
1.生成不重复的三位数
习题描述:
现有1,2,3,4这四个数字,小杨想从这四个数中选择几个数构成三位数,请问能组成多少个互不相同且无重复数字的三位数?且分别是什么?
习题分析:
本题的本质是排列组合问题,抽象的描述就是一共有3个空位,而有4个数,要将这4个数填入到空位中,且每个数在一次组合的过程中只能使用一次,求能组合成多少种不同的数。
-
类似于这种问题可以直接使用for循环嵌套,本题是组合成三位数,则需要三层for循环嵌套,由于每个位置可选择的数字有4个(即1,2,3,4),所以每层循环的始末分别为1和4
-
使用嵌套循环,由于每次循环都会有变量改变,所以组合成的数字必定是不相同的,但是组合成的数中可能有重复的数字,所以必须要加上一个if判断语句来筛选掉不符合题目要求的三位数
习题代码如下:
#include<stdio.h>
int main()
{
//定义变量
int i = 0; //百位
int j = 0; //十位
int k = 0; //个位
int count = 0;//符合条件的三位数个数
//以下为三层for循环嵌套
for (i = 1; i <= 4; i++)
{
for (j = 1; j <= 4; j++)
{
for (k = 1; k <= 4; k++)
{
//if判断筛选满足条件的三位数
if (i != j && i != k && j != k)
{
printf("%d%d%d ", i, j, k);
count++;
}
}
}
}
printf("\n");
printf("%d", count);
return 0;
}
代码输出结果:
在这里,小伙伴们可能会觉得这个输出结果太长了,既不美观又比较难数个数,想问一下能不能将这些三位数分成多行来进行输出,这样既美观又清晰?
为了满足各位小伙伴们的请求,下面我对这个代码进行一下优化,代码如下:
#include<stdio.h>
int main()
{
//定义变量
int i = 0; //百位
int j = 0; //十位
int k = 0; //个位
int count = 0;//符合条件的三位数个数
//以下为三层for循环嵌套
for (i = 1; i <= 4; i++)
{
for (j = 1; j <= 4; j++)
{
for (k = 1; k <= 4; k++)
{
//if判断筛选满足条件的三位数
if (i != j && i != k && j != k)
{
printf("%d%d%d ", i, j, k);
count++;
//将输出的格式进行优化操作:每行输出5个数
if (count % 5 == 0)
{
printf("\n");
}
}
}
}
}
printf("\n");
printf("%d", count);
return 0;
}
优化后的程序代码输出如下:
2.小球自由下落
习题描述:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
习题分析:
分析:以落下弹起算一次,s=0,h=100
第一次 : 落下:s=h+s =100 弹起:h=h/2=50 总路程:s=s+h=100+50=150
第二次 : 落下:s=h+s=150 弹起: h=h/2=25 总路程:s=s+h=150+25=175
…
第十次 : 落下:s=h+s 弹起: h=h/2 总路程: s=s+h
习题代码如下:
#include <stdio.h>
int main() {
float H = 100; //第1次下跌的距离
float h = 100 / 2; //第1次反弹的距离
//从第二次落地开始,需要加上反弹的高度;
for (int i = 2; i <= 10; i++)
{
H = H + h * 2;//考虑向上反弹的距离
h = h / 2; //表示反弹距离
}
printf("第10次落地时经过了%f米\n", H);
printf("第10次反弹了%f米\n", h);
return 0;
}
代码输出结果:
结语
各位小伙伴们,今天的试题讲解就先到了这里!
小伙伴们,切记!这些示例代码一定要记得自己实际操作一下,这样才能加深对这些知识的理解!
最后,感谢每一位小伙伴的阅读,让我们一起努力,一起加油,一起进步!