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;
}