PAT乙級 1008數組循環右移問題(C語言)

第一次提交測試點2沒通過。
試了半天,發現是當m > n的情況沒有考慮到。
所以代碼加了一行m = m % n。

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int n, m, i;
	int *a = NULL;
	scanf("%d %d",&n, &m);
	a = (int *)malloc(n * sizeof(int));
	m = m % n;    //當m >= n時
	for(i = m; i < n; i++)
	{
		scanf("%d", &a[i]);
	}
	for(i = 0; i < m; i++)
	{
		scanf("%d", &a[i]);
	}
	for(i = 0; i < n; i++)
	{
		if(i == n-1)
		{
			printf("%d\n", a[i]);
		}
		else
		{
			printf("%d ", a[i]);
		}
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章