吉林大学C语言学习通 实验02 分支与循环的答案
1.排序
#include <cstdio>
#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
int main(){
double a[10];
for(int i = 0;i < 3;i++){
cin >> a[i];
}
sort(a,a+3);
for(int i = 0;i < 3;i++){
printf("%.1lf ",a[i]);
}
}
2.括号统计
#include <cstdio>
#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
int main(){
char s1[100000];
int count = 0;
for(int i = 0;i < 100000;i++){
cin >> s1[i];
count++;
if(s1[i] == '@'){
break;
}
}
int a1,b1,c1,a2,b2,c2;
a1 = b1 = c1 = b2 = a2 = c2 = 0;
for(int i = 0;i < count;i++){
if(s1[i] == '{'){
a1++;
}
if(s1[i] == '}'){
a2++;
}
if(s1[i] == '['){
b1++;
}
if(s1[i] == ']'){
b2++;
}
if(s1[i] == '('){
c1++;
}
if(s1[i] == ')'){
c2++;
}
}
if(a1!=a2){
cout << "{}";
}
if(b1!=b2){
cout << "[]";
}
if(c1!=c2){
cout << "()";
}
if(a1 == a2&&b1 == b2&&c1 == c2){
cout << "NULL";
}
}
3.数字求和
#include <cstdio>
#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
int main(){
int n,a,b,c,d,e;
cin >> n >> a >> b >> c >> d >> e;
int count = 0;
if(b%n == 0){
count += b;
}
if(c%n == 0){
count += c;
}
if(d%n == 0){
count += d;
}
if(e%n == 0){
count += e;
}
if(a%n == 0){
count += a;
}
cout << count;
}
4.养老金
#include <cstdio>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
int sex;
int money;
cin >> sex >> money;
if(sex == 1){
if(money > 70){
cout << 70;
}
if(money <= 65){
cout << "NULL";
}else{
cout << 50;
}
}
if(sex == 2){
if(money <= 60){
cout << "NULL";
}else if(money > 65){
cout << 70;
}else{
cout << 45;
}
}
}
5.
#include <cstdio>
#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
double fun(double x){
double solution = x;
for(int i = 0;i < 5;i++){
solution = 1.0+1.0/solution;
}
return solution;
}
int main(){
double x;
cin >> x;
printf("%.3lf",fun(x));
}
6.符合条件自然数
#include <cstdio>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
int n;
cin >> n;
for(int i = 0;i < n;i++){
if(i%11 == 0){
cout << i << " ";
}
}
}
7.倍数
#include<stdio.h>
int main() {
int n;
scanf("%d", &n);
if (n % 3 == 0)printf("3,");
if (n % 5 == 0 && n % 7 == 0)printf("5,7");
if (n % 5 == 0 && n % 7 != 0)printf("5");
if (n % 3 != 0 && n % 5 != 0 && n % 7 != 0)printf("NULL");
}
8.三位 数
#include<stdio.h>
int main() {
int g, s, b;
for (int i = 100; i <= 999; i++) {
g = i % 10;
s = (i % 100) / 10;
b = i / 100;
if (g * g * g + s * s * s + b * b * b == i) { printf("%d ", i); }
}
}
9.斐波那契数列
#include<stdio.h>
int main() {
long long a[92];
a[0] = 1;
a[1] = 1;
for (int i = 2; i <= 91; i++) { a[i] = a[i - 1] + a[i - 2]; }
int n;
scanf("%d", &n);
printf("%lld", a[n]);
}
10.爱因斯坦阶梯
#include<stdio.h>
int main() {
int i = 1;
while (1) {
if (i % 2 == 1 && i % 3 == 2 && i % 5 == 4 && i % 7 == 0) {
printf("%d", i);
break;
}
i++;
}
11.勒让德多项式
# include<stdio.h>
double Pn(double x, int n);
int main()
{
double x;
double result;
int n;
scanf("%lf%d", &x, &n);
result = Pn(x, n);
printf("%.2lf", result);
return 0;
}
double Pn(double x, int n)
{
double res;
if (n == 0)
return 1.0;
else if (n == 1)
return x;
else if (n > 1)
{
res = ((2 * n - 1) * x * Pn(x, n - 1) / n - (n - 1) * Pn(x, n - 2) / n);
return res;
}
}
12.数字金字塔
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
for (int s = 1; s <= 2 * (n - i); s++) { printf(" "); }
for (int m = 1; m <= i; m++) { printf(" %d", m % 10); }
for (int h = i - 1; h >= 1; h--) { printf(" %d", h); }
printf("\n");
}
}
13.计算
#include<stdio.h>
int main() {
float x;
double sum = 1.0, num = 1.00;
scanf("%f", &x);
for (int i = 1; i < 99; i++) {
num = num * x / i;
sum = sum + num;}
printf("%.2lf", sum);
}
14.公式累加
#include<stdio.h>
#include<math.h>
double pro(double x, double n);
int main() {
double a = 0, b, x;
scanf("%lf", &x);
b = x;
for (int i = 1; fabs(b) >= 1e-5; i++) {
a += b;
b = pro(x, i);
}
printf("%.6lf", a);
}
double pro(double x, double n) {
double sum = 1;
for (int i = 1; i <= 2 * n + 1; i++) {
sum *= x / i;
}
return sum;
}
15.字母矩阵
#include<stdio.h>
int main() {
char a[] = { 'A','B','C','D','E','F','G','H','I' };
for (int i = 0; i <= 5; i++) {
for (int s = i; s <= i + 8; s++) {
printf(" %c", a[s % 9]);
}
printf("\n");
}
for (int m = 4; m >= 0; m--) {
for (int p = m; p <= m + 8; p++) {
printf(" %c", a[p % 9]);
}
printf("\n");
}
}