超星高级语言程序设计实验作业 (实验02 分支与循环程序设计)(一)

超星高级语言程序设计实验作业

实验02 分支与循环程序设计(一)

注:以下内容仅供交流,代码都是本人自己写的,还请同学们先自己编写再进行交流。
另:本人写代码用的是Visual Studio 2019,有些地方可能在其他编译器上无法运行。

1.递增排序

题目描述:任意三个实数a、b、c,按照从小到大的顺序输出。
输入:输入三个实数(测试数据均只有一位小数)。
输出:按照从小到大顺序输出之前输入的三个实数,以一个西文空格间隔,且每个实数小数点后保留1位。
样例:
输入:2.3 5.6 1.2
输出:1.2 2.3 5.6

#include<stdio.h>

int main() {

	float a, b, c, t;

	scanf_s("%f%f%f", &a, &b, &c);

	if (a > b) { t = a; a = b; b = t; }

	if (a > c) { t = a; a = c; c = t; }

	if (b > c) { t = b; b = c; c = t; }

	printf("%.1f %.1f %.1f", a, b, c);
	return 0;

}

2.括号统计

题目描述:编程序,判断给定以字符‘@’结束的字符序列中‘(’与‘)’、‘[’与‘]’、‘{’与‘}’的个数是否相等。
输入:输入一串以字符‘@’结束的字符序列,其间可能含有若干空白字符。
输出:个数不相等的括号(按花括号、方括号、圆括号的顺序),如果没有不等则输出NULL。
样例1:
输入:{a+bc+(d/e-f]}}@
输出:{}
样例2:
输入:{a + b
c+(d/e-f]}@
输出:

#include<stdio.h>

int main() {
	char x=0;	
	int a=0, b=0, c=0, d=0, e=0, f=0;	
	for (;x!='@';)	{
		 scanf_s("%c", &x);
		 switch (x){
			case'(':a++; break;
			case')':b++; break;
			case'[':c++; break;
			case']':d++; break;
			case'{':e++; break;
			case'}':f++; break;
			default:break;
		}
	}
	
	if (e != f) printf("{}"); 
	
	if (c != d) printf("[]");
	
	if (a != b) printf("()");
	
	if (a==b&&c==d&&e==f){
		printf("NULL");
	}
	return 0;
}

注意:要求输出顺序是花括号(“{}”)方括号(“[]”)圆括号(“()”)

代码挺复杂的,应该还可以优化🙄
请大佬指点😁

3.数字求和

题目描述:给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,可以被a整除的整数和是多少?
输入:输入一行只包括6个小于100的正整数,其中第一个正整数是a,输入保证a不为零。
输出:输出一行,给出一个正整数,是5个数中可以被a整除的所有整数的和。
样例1:
输入:10 10 20 30 40 11
输出:100
样例2:
输入:11 10 20 30 40 12
输出:0

#include<stdio.h>

int main() {

int a, s[5],i;

int sum=0;

scanf_s("%d", &a);

for ( i = 0; i < 5; i++)

{

scanf_s("%d", &s[i]);

}

for ( i = 0; i < 5; i++)

{

if (s[i] % a == 0) sum = sum + s[i];

}

printf("%d", sum);

return 0;

}

4.养老金

题目描述:某一国家养老金发放的原则是:
(1)男人(假设用数字1表示)超过65岁每周给50元钱,如果超过70岁每周再加20元钱。
(2)女人(假设用数字2表示)超过60岁每周给45元钱,如果超过65岁每周再加25元钱。
编程序,读入一个人的性别和年龄,输出他每周可领养老金数额。如果一个人还没到拿取养老金的年龄,那么就输出一个适合的信息。
输入:输入一行包括2个整数,分别对应性别和年龄,输入保证性别年龄输入都为合理整数。
输出:如果达到领取养老金年龄,就请输出每周应得养老金数额;否则输出NULL。
样例1:
输入:1 75
输出:70
样例2:
输入:2 63
输出:45

#include<stdio.h>

int main() {

int wm, age,money;

scanf_s("%d%d", &wm, &age);

if (wm==1)

{

	if (age>65)money = 50;
	
	if (age>70)money = money + 20;
	
	if (age <= 65)    printf("NULL");
	
	else printf("%d", money);

}

if (wm == 2)

{

	if (age > 60)money = 45;
	
	if (age > 65)money = money + 25;
	
	if (age <= 60)printf("NULL");
	
	else printf("%d", money);

}

return 0;

}

自己写的😅算法不太好,有没有大佬指点一下

5.嵌套函数

题目描述:编写程序,当x=1.0、2.0、…、20.0时,计算如下函数到5层嵌套。F(x)=1+1/(1+1/(1+1/(1+1/(1+1/x))))
输入:一个浮点数表示x的值,输入保证x不为零。
输出:一个浮点数F(x)的值,保留小数点后3位。
样例:
1
1.625

#include<stdio.h>

int main() {

int i;

float x, sum;

scanf_s("%f", &x);

sum = x;

for ( i = 1; i <= 5; i++)

{

sum = (1 + 1 / sum);

}

printf("%.3f", sum);

return 0;

}

第二次作业一共有15道题一道比一道难😱
分成了三部分发🙄

  • 25
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值