超星高级语言程序设计实验作业
实验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 + bc+(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道题一道比一道难😱
分成了三部分发🙄