实验五 循环结构程序设计

本文介绍了实验五的循环结构编程任务,包括while、for、嵌套循环、选择语句和do-while的应用,以及实际问题如计算最大公约数、最小公倍数、水仙花数和解决百钱白鸡问题的编程实例。同时,还涉及了提高实验任务中的计算器和策略选择练习。
摘要由CSDN通过智能技术生成

实验五 循环结构程序设计【-4】

1.最大公约数和最小公倍数【X】
3.百钱白鸡问题【X】
5.2提高实验任务【X】
1.计算器
2.打渔还是晒网

5.1基本实验任务

任务1:阅读程序

1.while循环
#include <stdio.h>
int main()
{
	int k = 0;
	while (k == 1)
		k++;
	printf("k=%d\n", k);
	return 0;
}

在这里插入图片描述

2.for循环的嵌套
#include <stdio.h>
int main()
{
	int s=0, t, i, j;
	for (i = 1; i <= 3; i++)
	{
		t = 1;
		for (j = 1; j <= 2 * i - 1; j++)
		{
			t = t * j;
			s = s + t;
		}
	}
	printf("s=%5d\n",s);
	return 0;
}

在这里插入图片描述

3.for循环与选择语句相结合
#include <stdio.h>
int main()
{
	int n = 0;
	for (n = 1; n <= 5; n++)
	{
		if (n % 2)
			printf("*");
		else
			continue;
		printf("#");
	}
	return 0;
}

在这里插入图片描述

4.do while 循环
#include <stdio.h>
int main()
{
	int i = 0, s = 0;
	do
	{
		if(i%2)
		{
			i++;
			continue;
		}
		i++;
		s += i;
	}while(i < 7);
	printf("s=%d\n", s);
	return 0;
}

在这里插入图片描述

任务2:完成程序

1.数的立方和,除法结合取模及叠加
#include <stdio.h>
int main()
{
	int n, sum = 0;
	n = 2345;
	while (n)
	{
		sum = sum + (n % 10) * (n % 10) * (n % 10);
		n /= 10;
	}
	printf("sum=%d\n", sum);
	return 0;
}

在这里插入图片描述

2.求自然底数【求助GPT】
#include <stdio.h>
int main()
{
    int i = 1;//用于迭代阶乘的分母
    double s = 1, term = 1;
    int count = 0;
    //'s' 用于存储 *e* 的近似值,'term' 用于存储当前迭代的项的值。开始时,它们都被设置为1。
    do
    {
        term /= i;//在原来的基础上继续处理,注意是阶乘
        s += term;
        i++;
        count++;
    } while (term > 1e-6);

    printf("e=%lf\n", s);
    printf("%d", count);
    return 0;
}

在这里插入图片描述

3.利用循环的嵌套及数学规律打印星星
*
#include <stdio.h>
int main()
{
    int i, j;

    // 外层循环控制行数
    for (i = 1; i <= 4; i++)
    {
        // 内层循环打印空格,控制空格的数量
        for (j = 1; j <= 4 - i; j++)
            printf(" ");
        // 内层循环打印星号,控制星号的数量
        for (j = 1; j <= 2 * i - 1; j++)
            printf("*");
        printf("\n");
    }
    return 0;
}

在这里插入图片描述

NB
#include <stdio.h>
int main()
{
	int i = 0, j = 0, h = 0;
	printf("请输入高度:");
	scanf("%d", &h);
	for (i = 1; i <= h; i++)
	{
		for (j = 1; j <= h - i; j++)
			printf("  ");
		for (j = 1; j <= 2 * i - 1; j++)
			printf("NB");
		printf("\n");
	}
	return 0;
}

在这里插入图片描述

任务3:编写程序,实现题目要求

1.最大公约数和最小公倍数【X】
2.水仙花数
#include <stdio.h>
int sxhs(int num)
{
	int original = num;//保存原始值
	int sum = 0;
	while (num)
	{
		sum += (num % 10) * (num % 10) * (num % 10);
		num /= 10;
	}
	if (sum == original)//比较原始值
		return 1;
	else
		return 0;
}
int main()
{
	int i = 0;
	int count = 0;
	for (i = 100; i < 1000; i++)
	{
		if (sxhs(i) == 1)//传参
		{
			count++;
			printf("%d是水仙花数\n", i);
		}
	}
	printf("100-999之间的水仙花数有%d个", count);
	return 0;
}

在这里插入图片描述

3.百钱白鸡问题【X】

5.2提高实验任务【X】

1.计算器

2.打渔还是晒网

  • 29
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟空阿瞒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值