发布网友 发布时间:2022-04-24 13:56
共1个回答
热心网友 时间:2023-10-15 08:48
while(scanf("%d %d", &n, &m) != EOF) //ctrl + z 表示结束, acm题没说怎么结束用这个。
这道题你做的有点麻烦啊,
输出的时候这样就可以:
num = 0;
index = m;
whiel(num < n)
{
if(index != m)printf(" %d", a[index++]);
else printf("%d", a[index++]);
num++;
index = index %n;
}
printf("\n");追问主要是他的格式方面有要求 有每个数后有空格 但是最后一个不能有空格 我也觉得我那个很麻烦 但是你这个能给我解释下吗?在代码后面写伪代码我看看 可以吗?谢谢了
追答哦,那不好意思了。
题目没说M< N,所以要取mod,
index = m % n;
下面也改:if(index != (m%n))
num = 0;
index = m%n;
whiel(num < n) // 不管m为多少,我们最后总是要输出,n个数。while控制输出的个数
{
if(index != (m%n))printf(" %d", a[index++]); //第二个以后输出的后面加空格, index++
else printf("%d", a[index++]);//第一个输出的时候前面不加空格, index++
num++;
index = index %n;去余数
}
例如 输入: 3 100
1 2 3
a[0] = 1, a[1] = 2, a[2] = 3;
index = 100 % 3 = 1
就可以输出 2 3 1 了。