IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c语言for循环、while循环、函数嵌套以及递归作业练习 -> 正文阅读

[C++知识库]c语言for循环、while循环、函数嵌套以及递归作业练习

博客主页:https://blog.csdn.net/weixin_46094737?type=blog
欢迎评论?留言 ?如有错误敬请指正!
本文由小学生廉原创,首发于 CSDN🙉🙉🙉
未来很长,值得我们全力奔赴更美好的生活!💞💞💞?

下面开始做作业。

1、 从键盘输入一串字符,统计里面字母、数字、其他字符的个数(while循环)

分析:首先题目要求的是输入一串字符,然后统计相关字符出现的个数,我的思路这样的,首先一个一个的去拿字符,每拿一个字符判断一次,利用while()循环判断,既然要用到循环,必不可少的就是进入循环以及跳出循环的条件:(ch=getchar())!='\n',有了这个思路即可。

?源代码:

#include <stdio.h>

int main()
{
	int a,b,c;
	char ch;
	printf("请输入一串字符:\n");
	while((ch=getchar())!='\n')
	{
		if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z')
			a++;	
	
		else if(ch>='0'&&ch<='9')
			b++;
		else
			c++;
	} 
	printf("该串字符中共有%d个字母\n",a);
	printf("该串字符中共有%d个数字\n",b);
	printf("该串字符中共有%d个其他字符\n",c);
	
	return 0;
} 

运行结果:

2、键盘录入一个数,请判断它数能被几个9整除?。如81就可以被2个9整除。

这一题乍一看好像还挺简单,但是在我编写程序的过程中发现,总是会出现一些不明的结果,排除低级错误之后,我发现这一题用函数调用,会是代码结构比较清晰。

?源代码:

#include <stdio.h>

int main()
{
	int a,b;
	printf("请输入一个整数:");
	scanf("%d",&a);
	b=count(a);
	printf("%d能被%d个9整除",a,b); 
} 

int count(int a)
{
	int i=0;
	int b;
	if(a%9==0)
	{
		i++;
		b=a/9;
		i += count(b);
	}
	else
		;
	return i;
}

运行结果:

3、计算顾客比例,统计30以上以及30以下的人数比例。

这一题比较简单,没有使用函数,就是按照流程一步一步写完即可,及时在输入顾客年龄的时候,需要使用一个简单的for(;;)循环来存储年龄的值即可。

源代码:

#include <stdio.h>
 
int main()
{
	int a,b;
	float i,j;
	for(a=1;a<=10;a++)
	{
		printf("请输入第%d个顾客的年龄:",a);
		scanf("%d",&b);
		if(b>30)
			i++;
		else if(b<30)
			j++;
		else
			;
	}
	i=i/10;
	j=j/10;
	printf("三十岁以上的比例为%.1f%%\n",i*100);
	printf("三十岁以下的比例为%.1f%%",j*100);
	
	return 0;
}

运行结果:

4、输入一个整数,然后升序显示它的所有最小因子。如120,输出2,2,2,3,5

本题解题思路的关键在于,输入一个数,从2开始循环除,然后直接输入结果,这个结果就是我们需要的每次除的最小因子。

?源代码:

#include <stdio.h>
#include <math.h>
 
int main()
{
	int a,i=2;
	printf("请输入一个整数:");
	scanf("%d",&a); 
	printf("%d最小因子有:",a);
	while(i<=a)
	{
		if(a%i==0)
		{
			printf("%d ",i);
			a /= i;
		}	
		else
			i++;	
	}
	
	return 0;
}

运行结果:

5、如果一个正整数等于除它本身之外其他所有因数之和,这个数就称之为完会数。例如:6是
第一个完全数,因为 6=1+2+3。下一个完全数是 28=14+7+4+2+1,编写程序请找出10000 以内的所有完全数。

本题思路也较为明朗,1、找出一个整数的所有因数,利用for(;;)循环一个数一个数的去除,然后取余,如果余数为0,则这个除数就是这个整数的因数,还有一个问题就是,这个整数不是我们从键盘输入的(不是判断!!!),所以这个整数也需要利用一次for(;;)循环去拿。

此题考察的就是对for循环的嵌套使用。

?源代码:

#include <stdio.h>

int main()
{
	int n,i,j,sum;  
	printf("请输入您要查找的完全数的范围:\n");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		sum=0;                
		for(j=1;j<i;j++)
		{
			if(i%j==0)		  
				sum += j;		  
		}
		if(sum==i)			  
			printf("%d ",i);
	}
		
	return 0;
}

运行结果:

6、梅森数(Mersenne Prime)指的是形如?2^{n}-1的正整数,其中指数 n 是素数。如果一个梅森数是素数,则称其为梅森素数。例如,当 n=2,3,5,7 时,2^{n}-1?都是素数,但 n=11 时,2^{n}-1 显然不是梅森素数。编写程序找出(n<=31)以内的所有梅森数?。

本题较为复杂一点,首先分析我们不难发现,我们首先就是要解决如何输出31(包含31)以下的所有素数,然后拿这些素数去进行指数运算即可,最后就是将得到的指数在进行一次素数判断即可,最后输出这些素数。

?源代码:

#include <stdio.h>
#include <math.h>

int prime(int n)
{
    int i,k;
    k=sqrt(n)+1;//输出二次方根,然后加1,即可得到素数 
    for (i=2; i<=k; i++)
    {
    	if (n%i == 0)
    	    return 0;
	}	
}

int main()
{
    int m,i;
    printf("梅森素数:\n");
    for (i=2; i <= 31;i++)
    {
    	m=pow(2,i)-1;
		if (prime(m))
		    printf("M(%d)=%d\n",i,m);
    }
    
    return 0;
}

运行结果:

7、(自由落体)假如一个小球从100米高度自由落下,每次落地后就反跳回原高度的一半。
那么求它在第10次落地时,共经过多少米?第10次反弹多高?

本题思路也比较清晰,首先分析小球每次落地之后的反弹高度:

落地次数落地后高度
150
225
312.5
47.5

源代码:

#include <stdio.h>

int main()
{
	float a,n;
	a=count(n);
	return 0;
}

int count(int i)
{
	int n;
	float sum=100.0,m=100.0;
	printf("请输入小球的落地次数:\n");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{	
		m *= 0.5;
		sum += m;
		printf("小球落地第%d次后高度为:%f\n",i,m);
		printf("小球共经过了%f米\n",sum);
	} 
	
	return m;
}

运行结果:

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 18:34:21  更:2022-07-20 18:37:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 23:31:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码