实验4 循环结构

1、判断素数

【问题描述】从键盘输入一个大于1的正整数,判断是否为素数

【输入形式】输入一个正整数

【输出形式】输出该数是否为素数

【样例输入】10

【样例输出】10 is not a prime number

【样例说明】样例2

输入:-10

输出:error!

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	int n,i,a=1;
	scanf("%d",&n);
	if(n<=0)
	{
		printf("error!");
		return 0;
	}
	else
	{
		for(i=2;i<=sqrt((double)n);i++)
		{
			if(n%i==0)
			{
				a=0;
			}
		}
	}
	if(a==1)
	{
		printf("%d is a prime number\n",n);
	}
	else
	{
		printf("%d is not a prime number\n",n);
	}
	return 0;
}

2、求阶乘之和的末6位

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	int n,i,s=1,sum=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		s*=i;
		s=s%1000000;
		sum+=s;
		sum=sum%1000000;
	}
	printf("%d\n",sum);
	return 0;
}

3、迭代法求根

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	double a,x,x1;
	scanf("%lf",&a);
	x=a;
	x1=1.0/2.0*(1+a);
	while(fabs(x1-x)>1e-6)
	{
		x=x1;
		x1=1.0/2.0*(x+a/x);
	}
	printf("%.3f\n",x1);
	return 0;
}

4、输出空心矩形

【问题描述】根据用户输入的整数长度和宽度,用星号"*"画出一个空心矩形。

【输入形式】输入长度和宽度

【输出形式】空心矩形

【样例输入】

3 6

【样例输出】

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	int i,j,m,n;
	scanf("%d %d",&m,&n);
	for(i=1;i<=m;i++)
	{
		for(j=1;j<=n;j++)
		{
			if(i==1||i==m||j==1||j==n-1)
			{
				printf("*");
			}
			if(i!=1&&i!=m)
			{
				printf(" ");
			}
		}
		printf("\n");
	}
	return 0;
}

5、分数统计

【问题描述】

某位老师需要分别统计若干个班某项考试的平均分,但每个班的人数都不相同(人数由键盘输入),请写个程序辅助他尽快完成任务。如果输入的成绩不在[0,100]范围内,则重新输入。结果保留2位小数。

【输入形式】

由键盘输入n+1个数,其中第一个数为班级学生人数如7,其后n个整数为这n个学生的成绩。如果学生成绩不在[0,100]范围,该分数不统计,重新输入。

【输出形式】

输出这个班的平均成绩(保留2位小数)

【样例输入】7 80 76 89 56 95 109 78 94

【样例输出】81.14

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	int i,n=0,a;
	double b,m,sum=0;
	scanf("%d",&n);
	m=n;
	for(i=0;i<n;i++)
	{
		scanf("%d",&a);
		if(a<0||a>100)
		{
			n++;
		}
		else 
		{
			sum+=a;
		}
	}
	b=sum/m;
	printf("%.2f\n",b);
	return 0;
}

6、正整数分解质因数

【问题描述】

将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

提示(即算法说明):对n分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已结束,打印出即可。

(2)如果n!=k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

【输入形式】从键盘输入任意一个合数,如输入90

【输出形式】输出90=2*3*3*5

【样例输入】90

【样例输出】90=2*3*3*5

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	int n,k=2;
	scanf("%d",&n);
	printf("%d=",n);
	while(n!=k)
	{
		if(n%k==0)
		{
			printf("%d*",k);
			n=n/k;
		}
		else 
		{
			k+=1;
		}
	}
	printf("%d\n",k);
	return 0;
}

7、求e的近似值

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
	double x,e=0,s=1;
	int i=1;
	scanf("%lf",&x);
	while(1.0/s>x)
	{
		e+=1/s;
		s*=i;
		i++;
	}
	e=e+1/s;
	printf("e=%.10f\n",e);
	return 0;
}
相关推荐
march_birds16 分钟前
FreeRTOS 与 RT-Thread 事件组对比分析
c语言·单片机·算法·系统架构
小麦嵌入式43 分钟前
Linux驱动开发实战(十一):GPIO子系统深度解析与RGB LED驱动实践
linux·c语言·驱动开发·stm32·嵌入式硬件·物联网·ubuntu
斯汤雷1 小时前
Matlab绘图案例,设置图片大小,坐标轴比例为黄金比
数据库·人工智能·算法·matlab·信息可视化
云 无 心 以 出 岫1 小时前
贪心算法QwQ
数据结构·c++·算法·贪心算法
俏布斯2 小时前
算法日常记录
java·算法·leetcode
独好紫罗兰2 小时前
洛谷题单3-P5719 【深基4.例3】分类平均-python-流程图重构
开发语言·python·算法
jelasin2 小时前
LibCoroutine开发手记:细粒度C语言协程库
c语言
篝火悟者2 小时前
自学-C语言-基础-数组、函数、指针、结构体和共同体、文件
c语言·开发语言
SheepMeMe2 小时前
蓝桥杯2024省赛PythonB组——日期问题
python·算法·蓝桥杯
随便昵称2 小时前
蓝桥杯专项复习——前缀和和差分
c++·算法·前缀和·蓝桥杯