吉林大学C语言学习通 实验02 分支与循环的答案

吉林大学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");

 

 }

 

 

 

 

 

}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值