设计简单可读性强的代码

要求设计这个代码,尽量简单,太复杂的还没有学,数组,函数都可以用,但指针还没学,估计理解不了

img

回答如下:
第一题:

#include<iostream>
using namespace std;

int main()     //矩阵计算 
{
    int m1, m2, n1, n2;
    cout << "请输入矩阵a的行列数(eg:2  3):";
    cin >> m1 >> n1;
    cout << "请输入矩阵b的行列数(eg:2  3):";
    cin >> m2 >> n2;
    int a[m1][n1], b[m2][n2], c[m1][n1], d[m1][n2] = {};
    cout << "请选择加减法或乘法(1、加减法 2、乘法):";
    int x, i, j, k;
    cin >> x;
    switch (x)
    {
    case 1:
        if (m1 != m2 || n1 != n2) {
            cout << "矩阵不符合加减法计算规则" << endl;
        }
        else {
            cout << "请输入矩阵a:" << endl;
            for (i = 0; i < m1; i++) {
                for (j = 0; j < n1; j++) {
                    cin >> a[i][j];
                }
            }
            cout << "请输入矩阵b:" << endl;
            for (i = 0; i < m1; i++) {
                for (j = 0; j < n1; j++) {
                    cin >> b[i][j];
                }
            }
            cout << "请选择矩阵计算(1、加法  2、减法):";
            int n;
            cin >> n;
            switch (n) {
            case 1:
                for (i = 0; i < m1; i++) {
                    for (j = 0; j < n1; j++) {
                        c[i][j] = a[i][j] + b[i][j];
                        cout << c[i][j] << " ";
                    }
                    cout << endl;
                }
                break;
            case 2:
                for (i = 0; i < m1; i++) {
                    for (j = 0; j < n1; j++) {
                        c[i][j] = a[i][j] - b[i][j];
                        cout << c[i][j] << " ";
                    }
                    cout << endl;
                }
                break;
                break;
            default:
                cout << "输入有误,已退出" << endl;
                break;
            }
        }
        break;
    case 2:
        if (n1 != m2) {
            cout << "矩阵不符合乘法计算规则" << endl;
        }
        else {
            cout << "请输入矩阵a:" << endl;
            for (i = 0; i < m1; i++) {
                for (j = 0; j < n1; j++) {
                    cin >> a[i][j];
                }
            }
            cout << "请输入矩阵b:" << endl;
            for (i = 0; i < m2; i++) {
                for (j = 0; j < n2; j++) {
                    cin >> b[i][j];
                }
            }

            for (int i = 0; i < m1; i++) {                //m1,n1    m2,n2     eg:2  4   4   3  m1   n1=m2   n2
                for (int j = 0; j < n2; j++) {
                    for (int k = 0; k < n1; k++) {
                        d[i][j] += (a[i][k] * b[k][j]);
                    }
                    cout << d[i][j] << " ";
                }
                cout << endl;
            }
        }
        break;
    default:
        cout << "输入有误,已退出";
        break;
    }
}

第二题:

#include <stdio.h>
#include<math.h>
int main() {
    double a,b,n;
    printf("输入被开方数:");
    scanf("%lf",&n); //输入要就平方根的数
    b=n/2;           //b等于n的二分之一
    a=(b+n/b)/2.0;   //迭代公式
    while((b-a)>0.00001){  //进行迭代
        double temp=a;
        a=(a+n/a)/2.0;
        b=temp;
    }
    printf("%0.3lf",a);  //输出的格式保留三位小数
    return 0;
}
```本题来自于博主“玖玖!”

第三题:
```c++
#include<iostream>
using namespace std;

int kuataijie(int n){
    if(n==1){
        return 1;
    }
    else if(n==2){
        return 2;
    }
    else{
        return kuataijie(n-1)+kuataijie(n-2);
    }
}

int main(){
    int N;
    cout<<"请输入台阶数:";
    cin>>N;
    cout<<"总方法数为:"<<kuataijie(N)<<endl;
}