PTA数组练习答案 21-23

7-21 指定位置插入元素(数组)

题目:

在一个数组中存入1~100间的偶数。输入一个整数x,以及插入的位置k,把x插入数组中,输出结果数组。

输入格式:

x k

位置k从0算起。

输出格式:

如果位置k不合理,超出有效值,输出error.

其它情况输出结果数组,数与数间用一个空格隔开。

输入样例1:

-77 4

输出样例1:

2 4 6 8 -77 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 

输入样例2:

-77 60

输出样例2:

error.
#include<stdio.h>
int main(){
    int a[51]={2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,0};
    int x,k;
    scanf("%d %d",&x,&k);
    int i;
    if(k<0||k>50) printf("error.");
    else{
        for(i=50;i>k;i--){
        a[i]=a[i-1];
        }
        a[k]=x;
    for(i=0;i<51;i++){
        printf("%d ",a[i]);
        }
    }
    return 0;
}

7-22 删除指定位置的元素(数组)

题目:

在一个数组中存入1~10的整数。输入一个位置k,把数组中第k个元素删除,输出原数组和结果数组。

输入格式:

k

位置k从0算起。

输出格式:

如果位置k不合理,超出有效值,输出error.

其它情况先输出原数组,再输出结果数组。

输入样例1:

4

输出样例1:

1 2 3 4 5 6 7 8 9 10 
1 2 3 4 6 7 8 9 10 

输入样例2:

10

输出样例2:

error.
#include<stdio.h>
int main(){
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    int k;
    scanf("%d",&k);
    int i,point=0;
    if(k>=0&&k<10){
        for(i=0;i<10;i++){
            printf("%d ",a[i]);
        }
        printf("\n");
        for(i=0;i<10;i++){
        if(i==k);
        else{
            printf("%d ",a[i]);
            }
        }
    }
    else printf("error.");
    return 0;
}

7-23 向右移动字符串

题目:

对于字符串“abcd”:

向右移动1个单位变为“dabc”。

向右移动2个单位变为“cdab”。

向右移动3个单位变为“bcda”。

输入格式:

输入包含两行。第一行:一个非负整数N(在32 位整数范围内)代表向右移动次数。第二行:一个不包含空格的非空字符串(长度小于1001)。

输出格式:

输出在移动N个单位长度后的字符串。

输入样例:

4
abcdef

输出样例:

cdefab
#include<stdio.h>
#include<string.h>
int main(){
	int n;
	scanf("%d",&n);
	getchar();
	char ch[1002];
	gets(ch);
	int len=strlen(ch),i;
	char a[len];
	for(i=0;i<len;i++){
		a[(i+n)%len]=ch[i];
	}
	for(i=0;i<len;i++){
		ch[i]=a[i];
	}
	printf("%s",ch);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值