a327904410 发表于 2021-10-26 22:59:42

代码哪里出错

问题描述
  初始数组A中为1,2,..,N,N个数字,现要进行M次操作,每次操作给定一个数字i,记其在数组中的位置为Bi,将A..A移到数组末尾。
输入格式
  输入的第一行包含两个整数N,M。接下来M行,每行一个正整数,表示给定的数字i。
输出格式
  一行,输出M次操作后的A数组。
样例输入
5 2
3
2
样例输出
3 4 5 1 2
样例说明
  第一次操作后变为 4 5 1 2 3

  第二次操作后变为 3 4 5 1 2

#include<stdio.h>
#define N 100

int s;
int main() {
        int n, m;
        scanf("%d%d", &n, &m);   // n表示1到n数,m表示要移动到尾端的数字
        int i = 0;
        while (i < n) {   // 将1到n存入数组
                s = i + 1;
                i++;
        }

        int j = 0;
        int l = i - 1;
        while (j < m) {
                int k;
                scanf("%d", &k);   // 输入需要排在尾部的数字
                while (s != k) {    // 若k不在队尾,数组右移,最后一位放前头
                        int t = s;
                        for (l; l - 1 >= 0; l--) {
                                s = s;
                        }
                        s = t;
                }
                j++;
        }

        int a;
        for (a = 0; s != '\0'; a++) {// 输出
                printf("%d ", s);
        }
        return 0;
}

a327904410 发表于 2021-10-26 23:51:38

错误问题已找出,暂时不用解决了,幸苦各位了。
页: [1]
查看完整版本: 代码哪里出错