oj---pat---b1008

用char接收输入似乎会很麻烦.

 scanf("% d",&num[(i+m)%n]);

 scanf(" %d",&num[(i+m)%n]);

注意以上两者的区别,scanf占位符后面才有效。

printf(" %d",num[i]);printf("% d",num[i]);

注意以上两者的区别,输出时似乎效果一样.

#include<cstdio>
int num[105];
int main(){

    int n=0;
    int m=0;
    while(scanf("%d %d",&n,&m)!=EOF){
        for(int i =0;i<n;i++){
            scanf("%d",&num[(i+m)%n]);
        }
        for(int i=0;i<n;i++) {
            if (i==0) printf("%d",num[i]);
            else printf(" %d",num[i]);
        }
    }
    return 0;
}
时间: 2024-12-21 19:46:45

oj---pat---b1008的相关文章

PAT B1008 数组元素循环右移问题 (20 分)

一个数组A中存有N(>)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥)个位置,即将A中的数据由(A?0??A?1???A?N?1??)变换为(A?N?M???A?N?1??A?0??A?1???A?N?M?1??)(最后M个数循环移至最前面的M个位置).如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 输入格式: 每个输入包含一个测试用例,第1行输入N(1)和M(≥):第2行输入N个整数,之间用空格分隔. 输出格式: 在一行中输出循环右移M位以后的整数序列,之间用

【PAT】B1008 数组元素循环右移问题(20 分)

#include<cstdio> #include<malloc.h> #include<algorithm> int arr[101]; void Priarr(int a,int b){ if(a<=b) for(int i=a;i<=b;i++){ if(i!=a)printf(" "); printf("%d",arr[i]); } } int main(){ int N,M; scanf("%d%d

【PAT】B1008 数组元素循环右移问题

猥琐方法 直接分成两部分输出数组元素,注意空格的问题 #include<stdio.h> int arr[101]; void Priarr(int a,int b){ if(a<=b) for(int i=a;i<=b;i++){ if(i!=a)printf(" "); printf("%d",arr[i]); } } int main(){ int N,M; scanf("%d%d",&N,&M);

PAT/简单模拟习题集(一)

B1001.害死人不偿命的(3n+1)猜想 (15) Description: 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展-- 我们今天

PAT 1035

PAT的题有些很无聊的... (多数) 1 #include <vector> 2 #include <string> 3 #include <iostream> 4 #include <fstream> 5 6 using namespace std; 7 8 #define OJ 9 10 #ifdef OJ 11 #define fin cin 12 #endif 13 14 struct Student{ 15 string name; 16 boo

PAT 07-2 A+B和C

有两个值得注意的地方:1.变长数组(VLA)的使用,没想到PAT上的OJ竟然支持C99,一开始不知道就没用,看了看别人的,既然,还是用吧, 它有一点我不太喜欢,它不能像一般数组那样在声明时通过赋一个0让全部元素初始化为零,等等,有点理解了.2.long long长整型的格式化输入输出,都要在"%d"中间插入"ll",所以,算了吧,还是定义一个临时变量更方便.题设要求及代码实现如下 /* Name: Copyright: Author: Date: 01/04/15

PAT——甲级1046S:shortest Distance

这道题,折磨了我一个多小时,前前后后写了三个算法. 1046 Shortest Distance (20 point(s)) The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed to tell the shortest distance between any pair of exits. Input Specification: Each input

PAT 1048数字加密

本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10.Q 代表 11.K 代表 12:对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10.这里令个位为第 1 位. 输入格式: 输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔. 输出格式: 在一行中输出加密后的结果. 输入样例: 1234567 3

PAT 1009 说反话 C语言

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格. 输出格式:每个测试用例的输出占一行,输出倒序后的句子. 输入样例: Hello World Here I Come 输出样例: Come I Here World Hello 1 #include<stdio.h> 2 #

PAT 1006 换个格式输出 C语言

让我们用字母B来表示"百".字母S表示"十",用"12...n"来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数.例如234应该被输出为BBSSS1234,因为它有2个"百".3个"十".以及个位的4. 输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000). 输出格式:每个测试用例的输出占一行,用规定的格式输出n. 输入样例1: 234 输出样例1: BBSSS1