c语言常见基础题目学习有感

1.判断一个三位数是否为水仙花数

2. 真睡还是装睡

3.十进制数转化为八位二进制数

4. 三个数的关系之求绝对值的最值

5.三天打鱼两天晒网

一.判断一个三位数是否为水仙花数

本题要求编写程序,判断一个给定的三位数是否为水仙花数。三位水仙花数,即其个位、十位、百位数字的立方和等于该数本身。

输入格式:

输入在一行中给出一个需要判断的整数 N(100≤N≤999)。

输出格式:

如果N是水仙花数,则在一行中输出Yes,否则输出No。如果N不是三位数,则输出Invalid Value.

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

int main()
{
	int a;
	int b, c, d,e;
	int m=0;
	scanf("%d", &a);
	e = a;
	if (a < 100 || a>999)
	{
		printf("Invalid Value.");
		return 0;
	}
	b = a / 100;   //取百位
	b = b * b * b;
	a = a % 100;
	c = a / 10;   //取十位
	c = c * c * c;   
	a = a % 10;   //取个位
	d = a * a * a;
	m = b + c + d;
	if (m == e)
	{
		printf("Yes");
	}
	else
	{
		printf("No");
	}
}

2. 真睡还是装睡

你永远叫不醒一个装睡的人 —— 但是通过分析一个人的呼吸频率和脉搏,你可以发现谁在装睡!医生告诉我们,正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。下面给定一个人的呼吸频率与脉搏,请你判断他是真睡还是装睡(即至少一项指标不在正常睡眠范围内)。

输入格式:

在一行中输入空格隔开的两个整数,分别表示一个人的呼吸频率和脉搏(均为不超过100的正整数)。

输出格式:

如果判定此人真睡,则输出 T,否则为装睡,输出 F

#include<stdio.h>
int main()
{
	int m, n;
	scanf("%d %d", &m, &n);
	
	if (m >= 15 && m <= 20 && n >= 50 && n <= 70)
	{
		printf("T");
	}
	else
	{
		printf("F");
	}
	return 0;
}

3.十进制数转化为八位二进制数

#include<stdio.h>

#define N 8  //固定位数

int main()

{
	int arr[N] = { 0 };//将数组初始化为0(位数不满时,将输出0填补)

	int i;

	int n;

	printf("请输出一个整数:\n");

	scanf_s("%d", &n);
	if (n > 255)
	{
		printf("输入错误\n");
		return 0;
	}



	for (i = N - 1; i >= 0; i--)  //对数组从后往前赋值

	{
		arr[i] = n % 2;

		n = n / 2;

	}

	printf("输出一个八位二进制:\n");

	for (i = 0; i <= N - 1; i++)

	{
		printf("%d", arr[i]);

	}

	return 0;

}

4. 三个数的关系之求绝对值的最值

从键盘输入三个整数,输出绝对值最大的那个数。若绝对值最大的数不唯一,则输出最先出现的那个。

输入格式:

包含3个int范围内的整数,用空格隔开。

输出格式:

一个整数,表示绝对值最大的那个数。

#include<stdio.h>
#include<math.h>
void main()
{
	int m, n, p;
	int a, b, c;
	scanf("%d %d %d", &m, &n, &p);
	a = abs(m);
	b = abs(n);
	c = abs(p);
	if (a ==b && a > c)
	{
		printf("%d", m);
	}
	else if (b == c && b > a)
	{
		printf("%d", n);
	}
	else if (a == c && a > b)
	{
		printf("%d", m);
	}
    else if (a==b&&b==c)
    {
        printf("%d",m);
    }
	else
	{
		
			if (a <= b)
			{
				a = b;
				m = n;
				if (a <= c)
				{
					a = c;
					m = p;
				}
			}
			
			
		
		printf("%d", m);
	}
	
}

5.三天打鱼两天晒网

中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?

输入格式:

输入在一行中给出一个不超过1000的正整数N。

输出格式:

在一行中输出此人在第N天中是“Fishing”(即“打鱼”)还是“Drying”(即“晒网”),并且输出“in day N”。

#include<stdio.h>
int main()
{
	int N,m;
scanf("%d",&N);
m=N%5;
if(m==4||m==0)
{printf("Drying in day %d",N);}
if(m==1||m==2||m==3)
{printf("Fishing in day %d",N);}
    return 0;
}

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

binary~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值