解题思路:
一个循环用于输入,一个循环用于输出
输出时对下标进行移动,公式是:(i - m + n) % n
令原本的下标 i 减去 m ,可能会小于0,所以加上 n ,但别的下标可能会大于 n ,所以再对 n 取余
缺点就是并没有对原数据进行处理
我本想在输入时对下标移动,将数组储存到移动后的下标内
可是 m 是在最后才输入的,输入数字时并不知道要移动几位,只好在输出时下手,算是取巧吧
参考代码:
#include <stdio.h> int main() { int n, m; //定义m和n scanf("%d", &n); //输入n int a[n]; for (int i = 0; i < n; i++) //循环输入数字 { scanf("%d", &a[i]); } scanf("%d", &m); //输入m for (int i = 0; i < n; i++) //循环输出 { printf("%d ", a[(i - m + n) % n]); //输出的下标为(i-m+n)%n } return 0; }
0.0分
0 人评分
简单的a+b (C语言代码)浏览:760 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:543 |
简单的a+b (C语言代码)浏览:599 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:535 |
IP判断 (C语言代码)浏览:763 |
1908题解浏览:640 |
陶陶摘苹果2 (C语言代码)浏览:601 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1270 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:607 |
很简单,,题解1041:C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:596 |