c语言编程题 望高手解答 在线等
发布网友
发布时间:2023-10-14 12:34
我来回答
共5个回答
热心网友
时间:2023-11-05 14:58
第一个问题我有点疑问,删除字符之后,用什么代替呢,用\0代替不太好
的样子会缩短字符串长度的哦
char f(char *a,int i)
{
int j;char q;
j=strlen(a);
if(i<o||i>=j)
return null;
else
{ q=a[i];
a[i]='\0';
return q;
}
}
2, void f(int i)
{
if(i==0)
return;
else
{f(i/2);
printf("%d",i%2);
}
}
3,void f(char *a)
{
int i,j;char temp;
for(i=1;i<strlen(a);i++)
for(j=1;j<=strlen(a)-i;j++)
{ if(a[j]>a[j-1])
{temp=a[j];a[j]=a[j-1];
a[j-1]=temp;}
}
}
4,int f(char *a)
{
char *q,*p;
q=a;p=a;
while(*q!='\0') q++;
q--;
while(p<q)
{ if(*q!=*p)
return 0;
else{q--;p++;}
}
return 1;
}
热心网友
时间:2023-11-05 14:59
1.用字符指针很容易.
2.把数一直除以2,
把余数压入一字符数组内,
循环用商除以2,等于1或0时返回上层函数.
3.利用冒泡排序,比较ASCII大小
4.设两字符指针,一指头,一指尾.比较就可.
5.因无分,从简回答了,哈哈.
热心网友
时间:2023-11-05 14:59
我先回答第4个吧,我c也不是太好:
status invort(string s,int len)
{ int i,j;
len=strlength(s);
j=1/2len;
for(i=1;i<=j;i++)
{ if(substr(s,i)==substr(s,len-i+1);
return(1);
else
return(o);
}
sub=1;
}
这个是算法,稍微改动或不改动应该就可以用了;
热心网友
时间:2023-11-05 15:00
太麻烦了,应该给悬赏的,1、2不太清楚,3利用冒泡排序,比较ASCII大小即可,4,回文那个反向存储字符串然后利用一个for循环判断就可以了
热心网友
时间:2023-11-05 15:01
挺麻烦的,应该给悬赏分!不然………………