A+第三次作业除去最后四道

题目A 零基础学C/C++90——数组输出

要点

  • 认知数组的基本使用方法
#include

int main()
{
    int t;
    scanf("%d",&t);
    while (t--){
        int n;
        scanf("%d",&n);
        int a[20];
        for (int i=0;i

题目B 零基础学C/C++91——逆序输出

要点

  • 考察for循环如何从最后一个遍历到第一个
#include

int main()
{
    int t;
    scanf("%d",&t);
    while (t--){
        int n;
        scanf("%d",&n);
        int a[20];
        for (int i=0;i=0;i--) printf("%d ",a[i]);

        printf("\n");
    }
    return 0;
}

题目C 零基础学C/C++92——找出数组中最大元素的位置(下标值)

要点

  • 如何在遍历数组的时候储存最大值和下标
  • 最大值为什么要初始化
#include

int main()
{
    int n;
    while (~scanf("%d",&n)){
        int a[20];
        
        for (int i=0;i=0;i--){
            if (a[i]>maxa){
                maxa = a[i];
                id = i;
            }
        }

        printf("%d %d\n",maxa,id);
    }
    return 0;
}

题目D 零基础学C/C++93——Fibonacci数列

要点

  • 数组利用前面几项不停的往后求
#include

int main()
{
    int a[50];
    a[0] = 0,a[1] = 1;
    for (int i=2;i<=45;i++) a[i] = a[i-1] + a[i-2];
    int t;
    scanf("%d",&t);
    while (t--){
        int n;
        scanf("%d",&n);
        printf("%d\n",a[n]);
    }
    return 0;
}

题目E 零基础学C/C++94——数组中查找数

要点

  • 怎么判断找不到,初始化下标为-1
  • break的使用
#include

int main()
{
    int n,m,a[20];
    while (~scanf("%d",&n)){
        for (int i=0;i

题目F 零基础学C/C++95——数组中删数

要点

  • 这题承接上面这题,我们可以找到一个数的下标,那么怎么删除呢,其实只要输出的时候不输出这个下标就行了,这个时候顺便了解一下continue的作业——跳过这次循环
  • 讲解一下first的作用第一次输入数字前没有空格之后都有空格,保证最后一个数后面没有空格
#include

int main()
{
    int n,m,a[20];
    while (~scanf("%d",&n)){
        for (int i=0;i

题目G 零基础学C/C++96——数组中删数II

要点

  • 这一题和上一题相比就是删除很多个数,那么是不是可以同样的思路,不输出就行了,而且仔细想想是不是下标都不用找,更简单了?
#include

int main()
{
    int n,m,a[20];
    while (~scanf("%d",&n)){
        for (int i=0;i

题目H 零基础学C/C++97——数组中插入一个数

要点

  • 如何腾出这一个位置:把这个数需要存的下标到末尾的数全部往后移一个位置,要先移动右边的再移动左边的才不会覆盖
#include

int main()
{
    int n,m,k,a[20];
    while (~scanf("%d",&n)){
        for (int i=0;i=a[i]) idx = i+1;
        }

        for (int i=n-1;i>=idx;i--) a[i+1] = a[i];

        a[idx] = m;

        for (int i=0;i<=n;i++) printf("%d ",a[i]);
        printf("\n");
        printf("%d\n",a[k]);
    }
    return 0;
}

题目I 零基础学C/C++98——打印所有低于平均分的分数

要点

  • 如何求平均数以及注意点,平均数求出来可能不是整数,注意不要用整数的乘法去做,这里写double(之前long long a = (longlong)50000*50000的例子我们也说过)
#include

int main()
{
    int n,a[100];
    while (~scanf("%d",&n)){
        int sum = 0;
        for (int i=0;i

题目J 零基础学C/C++99——青年歌手大奖赛_评委会打分

要点

  • 终点是如何实现去掉一个最高最低分的过程,只要最后求出和减去最大最小值即可。
#include

int main()
{
    int n,a[100];
    while (~scanf("%d",&n)){

        int maxs = -1000,mins = 1000;
        int sum = 0;
        for (int i=0;imaxs) maxs = a[i];
            if (a[i]

题目K 零基础学C/C++100——开灯问题

要点

  • 如何模拟灯的开关?用正负1来表示
  • 电脑编号从1开始,数组要不要从0开始,不建议,从1开始更清楚
  • 讲清楚两层for循环的意义,第一层是第几回合
  • 说明多组输入的情况下某些数据要初始化,这里我们可以把初始化放到外面此时就不对了,然后现在正好可以用很生动形象的例子讲解:第一次结束出去,第二次电脑不是全关着的。
#include

int main()
{
    int n,a[100];

    while (~scanf("%d",&n)){

        for (int i=0;i

你可能感兴趣的:(CJSYZX相关)