为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用C语言实现一个函数,并将数组整体升序排列?

如何使用C语言实现一个函数,并将数组整体升序排列?

C PHP
aluckdog 2022-04-14 17:07:24
函数原型为:void inplace_merge(int* start, int* middle, unsigned int n)参数start为数组首地址,middle为数组后半部首地址,n为数组元素个数要求有主函数,便于我测试程序正确性重复了,此题改为:实现一个函数,将某字符串中最后一次出现的指定子串替换为另一个字符串函数原型为:void rp_last(char* s, char* sub1, char* sub2)参数s为待处理的字符串,sub1为指定的子串,使用sub2替换最后一次出现的sub1要求有主函数,便于我测试程序正确性
查看完整描述

2 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

我亲手写的。
#include<stdio.h>
#include<stdlib.h>
int get_len(char *);
void rp_last(char* , char* , char* );
int get_len(char* str)
{
if(str == NULL) return -1;
int i;
for(i=0;str[i];i++);
return i;
}
void rp_last(char *s,char *sub1,char *sub2){
int i,j;
int k;
int sLen;
int sub1Len;
int sub2Len;
sLen=get_len(s);
sub1Len=get_len(sub1);
sub2Len=get_len(sub2);
for(i=sLen-1;i>=0;i--)
{
for(j=sub1Len-1,k=i;j>=0&&k>=0;j--,k--)
if(s[k]!=sub1[j]) break;
if(j<0) break;
}
//printf("%d\n",i);
if(j>=0)
printf("not found!\n");
else if(sub1Len>sub2Len)
{
k=sub1Len-sub2Len;
for(j=i+1;s[j-k]=s[j];j++);
for(j=sub2Len-1;j>=0;j--,i--)
s[i-k]=sub2[j];
}
else{
k=sub1Len-sub2Len;
s[k+sLen]='\0';
for(j=sLen-1;j>i;j--)
s[j+k]=s[j];
for(j=sub2Len-1;j>=0;j--,i--)
s[i+k]=sub2[j];
}
printf("result:%s\n",s);
return ;
}
void main()
{
char s[256];
char sub1[100];
char sub2[100];
printf("s :");gets(s);
printf("sub1:");gets(sub1);
printf("sub2:");gets(sub2);
rp_last(s,sub1,sub2);
return ;
}



查看完整回答
反对 回复 2022-04-19
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

#include<iostream.h>
void sort(int a[],int n) //升序
{
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
{
if(a[i]<a[j])
{
int temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
void main()
{
int a[10];
for(int i=0;i<10;i++)
cin>>a[i];
sort(a,10);
cout<<"after sorted,the array is:"<<endl;
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;

}



查看完整回答
反对 回复 2022-04-19
  • 2 回答
  • 0 关注
  • 175 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信