看这段C语言程序错哪了?

来源:百度知道 编辑:UC知道 时间:2024/05/05 08:36:39
#include "stdio.h"
#include "string.h"
#define N 80
void fun(char a[],x,*p1,*p2)
{
p1=a;
for(i=o;i<N;i++,p1++)
if(*p1!=x)
p2++=p1;
*p2=/0;
}
main()
{
void fun(char a[],x,*p1,*p2)
char a[],x,*p1,*p2;
printf("please put in the string:\n");
gets(a[N]);
printf("pkease put in the del char:");
scanf("%c",x)
fun(a[],x,*p1,*p2);
printf("the final word is:%s",a[]);
}
编译时说void fun(char a[],x,*p1,*p2)这句说明语法错误,这段程序的目的是删除一个字符串中的指定字符。谢了
应该怎么改呢?
5楼这句中for (;a[i];i++),a[i]的位置不应该是限制条件吗?
对my7091818说:这个程序完全是我自己写的!

哦,没有大错误,关键是你用别人程序之前,最好先学会了,再用吧!!

里面o和0没有区分啊!我先调试一下再说了.
在函数fun中,怎么都没有定义参数的类型啊???两个指针型的,x和i都没定义
然后p1++=p2这句也过不去,我改为两句了,就可以了
最后一句*p2=/0是什么意思啊?不知道这句怎么改了,肯定是有问题了!!
昨天没仔细看了,发现确实是你自己的了,因为只有初学者会犯这些错误的了.还有就是最好把你的算法附带上了,别人的程序都是按照自己的算法思路做的了,如果你想让别人按照你的思路,找出这个程序的错误,就最好把算法的大致思路加上了.

void fun(char a[],x,char *p1,char *p2) //每个参数前面都要有类型说明
{
p1=a;
for(i=o;i<N;i++,p1++)
if(*p1!=x)
p2++=p1;
*p2=/0;
}
//只看了你这一句,其它语句有没有错误没看

void fun(char a[],char x)
{
int i = 0;
for(i = 0;a[i]&&(a[i] != x);i++)
;
if(a[i] == 0) return;
for (;a[i];i++)
a[i] = a[i+1];
}
main()
{
char a[N] = {0};
char x = 0;
printf("please put in the string:\n");
gets(a);
printf("pkease put in the del char:");
scanf("%c",&x);
fun(a,x);
printf("the final word is:%s\n",a);
}

都改了,你再好好看看书吧....

<