基础语法数组的练习

由 ssnhy13 发布

基础语法数组的练习

作者:xinyi

第一题数组替换

题目链接:https://www.acwing.com/problem/content/739/

#include <iostream>
#include <cstdio>
using namespace std;

int main(){

    int x[10];
    int n;
    for (int i=0;i<=9;i++){
        cin >>n;
        if(n<=0) x[i]=1;
        else x[i]=n;
        printf("X[%d] = %d\n",i,x[i]);
    }

    return 0;

}

第二题数组填充

题目链接:https://www.acwing.com/problem/content/740/

#include <cstdio>
#include <iostream>

using namespace std;

int main(){

    int v;
    int a[10];
    cin >>v;
    for(int i = 1;i<10;i++){
        a[0]=v;
        a[i]=a[i-1]*2;
    }
    for(int i=0;i<10;i++){
        printf("N[%d] = %d\n",i,a[i]);
    }

    return 0 ;
}

第三题数组选择

题目链接:https://www.acwing.com/problem/content/741/

#include <cstdio>
#include <iostream>

using namespace std;

int main(){

    double a[100];
    double n;
    for (int i=0;i<100;i++){
        cin>>n;
        a[i]=n;
    }
    for(int i=0;i<100;i++){

        if(a[i]<=10)printf("A[%d] = %.1lf\n",i,a[i]);
    }

    return 0;
}

第四题数组中的行

题目链接:https://www.acwing.com/problem/content/745/

#include <iostream>
#include <cstdio>

using namespace std;

int main(){

    int l;
    char input;
    double m[12][12];
    int n;
    cin>>l>>input;
    for(int i= 0 ;i<12;i++){
        for(int j=0;j<12;j++){
            cin>>m[i][j];
            //m[i][j]=n
        }
    }
    double sum=0;
    for(int i=0;i<12;i++){
        sum+=m[l][i];
    }
    if(input=='S')cout<<sum<<endl;
    else printf("%.1lf",sum/12);
    return 0;
}

第五题数组的右上半部分

题目链接:https://www.acwing.com/problem/content/747/

#include <iostream>
#include <cstdio>

using namespace std;

int main(){

    char n;
    cin>>n;
    double a[12][12];
    for(int i = 0;i<12;i++)
        for(int j=0;j<12;j++)
            cin>>a[i][j];

    double s=0;
    double sum=0;
    for(int i=0;i<12;i++){

        for (int j=i+1;j<12;j++){
            s++;
            sum+=a[i][j];
        }

    }
    if(n=='S')cout <<sum;
    else printf("%.1lf",sum/s);

    return 0;
}

第六题数组的左上半部分

题目链接:https://www.acwing.com/problem/content/749/

#include <iostream>
#include <cstdio>

using namespace std;

int main(){

    char n;
    cin>>n;
    double a[12][12];
    for(int i = 0;i<12;i++)
        for(int j=0;j<12;j++)
            cin>>a[i][j];

    double s=0;
    double sum=0;
    for(int i=0;i<12;i++){

        for (int j=0;j<12;j++){
            if(i+j<=10){
            s++;
            sum+=a[i][j];}
        }

    }
    if(n=='S')cout <<sum;
    else printf("%.1lf",sum/s);

    return 0;
}

第七题数组的上方区域

题目链接:https://www.acwing.com/problem/content/751/

#include <iostream>
#include <cstdio>

using namespace std;

int main(){

    char n;
    cin>>n;
    double a[12][12];
    for(int i = 0;i<12;i++)
        for(int j=0;j<12;j++)
            cin>>a[i][j];

    double s=0;
    double sum=0;
    for(int i=0;i<5;i++){

        for (int j=i+1;j+i<11;j++){
            s++;
            sum+=a[i][j];
        }

    }
    if(n=='S')cout <<sum;
    else printf("%.1lf",sum/s);

    return 0;
}

第八题数组的左方区域

题目链接:https://www.acwing.com/problem/content/753/

#include <iostream>
#include <cstdio>

using namespace std;

int main(){

    char n;
    cin>>n;
    double a[12][12];
    for(int i = 0;i<12;i++)
        for(int j=0;j<12;j++)
            cin>>a[i][j];

    double s=0;
    double sum=0;
    for(int i=1;i<=5;i++){

        for (int j=0;j<=i-1;j++){
            s+=1;
            sum+=a[i][j];
        }

    }
    for(int i=6;i<=10;i++){

        for (int j=0;j<=10-i;j++){
            s+=1;
            sum+=a[i][j];
        }
    }

    if(n=='S')cout <<sum;
    else printf("%.1lf",sum/s);

    return 0;
}

第九题平方矩阵

做出来但是不是特别懂
题目链接:https://www.acwing.com/problem/content/755/

#include <iostream>
#include <cmath>

using namespace std;

int main(){
    int n;

    while (cin >> n, n){

        for (int i = 0; i < n; i ++){
            for(int j = 0; j < n; j ++){
                cout << min(min(i + 1, j + 1), min(n - i, n - j)) << " ";
            }
            cout << endl ;
        }
        cout << endl;
    }

    return 0;
}

第十题数组变换

题目链接:https://www.acwing.com/problem/content/742/

#include <iostream>
#include <cstdio>

using namespace std;

int main(){

    int a[20],b[20];
    for(int i =0;i<20;i++)cin >>a[i];
    for(int i=19,j=0;i>=0;i--,j++) b[j]=a[i];//这里的j也可以换成19-i最后结果都是一样都可以AC
    for(int i=0;i<20;i++) printf("N[%d] = %d\n",i,b[i]);
    return 0;

}

第十一题斐波那契数列

题目链接:https://www.acwing.com/problem/content/743/
**这个题特别要注意数组不能用int,要用long long不然会数组越界。就AC不了

#include <iostream>
#include <cstdio>

using namespace std;

int main(){

    long long a[60];
    a[0]=0,a[1]=1;
    for(int i=2;i<60;i++)a[i]=a[i-1]+a[i-2];
    int n;
    cin >>n;
    while(n--){
    int x;
    cin >>x;
    printf("Fib(%d) = %lld\n",x,a[x]);}
    return 0;
}

第十二题最小数和它的位置

题目链接:https://www.acwing.com/problem/content/744/

#include <iostream>
#include <cstdio>

using namespace std;

int main(){

    int n;
    int a[1001];
    cin>>n;
    for(int i=0;i<n;i++) cin>>a[i];
    int p=0;
    for (int i=1;i<n;i++){
        if(a[i]<a[p]) p=i;

    }
    printf("Minimum value: %d\n",a[p]);
    printf("Position: %d",p);
    return 0;
}

0条评论

评论已关闭