m0_63366309 2022-05-29 03:12 采纳率: 56.3%
浏览 68
已结题

数组元素循环右移moodle

问题:在moodle上显示调用了受限函数应该怎么修改
原题:若有n个数的数组arr,循环右移一位指每个数移到相邻的右边一个位置,最右边的数移到最左边。如数组1,2,3,4,5;循环右移1位的结果为5,1,2,3,4;右移3位的结果为3,4,5,1,2。

使用指针方法,编写数组右移k位的函数。

编写主函数输入若干元素和右移位数,调用函数右移,在主函数中输出结果。元素个数不超过100。

输入:两行,第1行为若干用空格分隔的整数,以9999表示结束;第2行一个整数,表示右移的位数。

输出:一行,移位的结果,各个数值用一个空格隔开,末尾无空格。

【输入输出样例】
输入:
1 2 3 4 5 9999
3

输出:
3 4 5 1 2


#include <stdio.h>


int main()
{
    int a[20], n=0, m;
    int i;
    
    while ( a[i-1]!=9999 ){ scanf("%d", &a[i]);i++;}  //i = 0; i < n; i++
    n=i-1;
    scanf("%d",&m);
    ArrayShift(a, n, m);

    for ( i = 0; i < n; i++ ) {
        if (i != 0) printf(" ");
        printf("%d", a[i]);
    }
    printf("\n");

    return 0;
}
int ArrayShift( int a[], int n, int m )
{
  int i;
  int k;
  for(k=1;k<=m;k++)
  {
    int temp=a[n-1];
    for(i=n-1;i>0;i--)
     {
        a[i]=a[i-1];
     }
     a[0]=temp;
  }
}

  • 写回答

2条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    #include <stdio.h>
    
    int ArrayShift(int a[], int n, int m)
    {
        int i;
        int k;
        if (m >= n)
            m = m % n;
        for (k = 1; k <= m; k++)
        {
            int temp = a[n - 1];
            for (i = n - 1; i > 0; i--)
            {
                a[i] = a[i - 1];
            }
            a[0] = temp;
        }
    }
    
    int main()
    {
        int a[101], n = 0, m;
        int i = 0;
        while (1)
        {
            scanf("%d", &a[i]);
            if (a[i] == 9999)
                break;
            i++;
        }
        n = i;
        scanf("%d", &m);
        ArrayShift(a, n, m);
        for (i = 0; i < n; i++)
        {
            if (i != 0)
                printf(" ");
            printf("%d", a[i]);
        }
        printf("\n");
    
        return 0;
    }
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月6日
  • 已采纳回答 5月29日
  • 创建了问题 5月29日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀