C语言编程中如何在已经排好序的数组删除头尾的部分元素

C语言编程中如何在已经排好序的数组删除头尾的部分元素,第1张

#include"stdio.h"void del(int *a,int x,int n)//删除数组a中第x个数,n是数组大小{int i for(i=0i<ni++){if((i+1)==x){for(int j=ij<n-1j++)a[j]=a[j+1] break }}}void main(){int a[10]={0,1,2,3,4,5,6,7,8,9} int i for(i=0i<10i++)printf("%d ",a[i]) printf("\n") del(a,4,10) for(i=0i<9i++)printf("%d ",a[i]) printf("\n")}

#include <stdio.h>

int main(int argc, char *argv[])

{

char s[30]

gets(s)

for(int i=0s[i]i++)

s[i]=122-(s[i]-97)

puts(s)

return 0

}

/*要完成头尾互换很简单,只要找出当前字母和a之间的距离x,再找出距离z为x的另一个字母,这个字母就是要找的。a的ascii值为97,z的ascii值为122,所以用上面的减法就可以很容易完成。我这里只写了小写字母的算法,大写的或者大小写混合的你自己写写看吧*/

#include<stdio.h>

main()

{

void change(int *p, int m)

int i,n

int *a

i = 0

printf("please input how many the numbers are :")

scanf("%d",&n)

a = (int *)malloc(sizeof(int)*n)

printf("please input these numbers :")

for(i=0i<ni++)scanf("%d",a+i)

change(a, n)

printf("the numbers after change are like belowing :")

for(i=0i<ni++)printf("%3d",*(a+i))

getch()

}

void change(int *p, int m)

{

int i

int *pp

i = 0

pp = (int *)malloc(sizeof(int)*m)

for(i=0i<mi++)*(pp+i) = *(p+(m-1)-i)

for(i=0i<mi++)*(p+i) = *(pp+i)

}

测试运行结果:输入个数为10,然后输入10个数分别为1 6 9 12 15 23 36 41 56 78 ,之后输出为78 56 41 36 23 15 12 9 6 1


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12068218.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存