首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言求帮忙找个异常

2012-11-06 
C语言求帮忙找个错误读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符

C语言求帮忙找个错误
读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然安装ZOJ的顺序输出。当读入的字符串为E时,结束。
Input:
ZZOOOJJJ
ZZZZOOOOOJJJ
E
Output:
ZOJZOJOJ
ZOJZOJZOJZOO

代码如下:#include <stdio.h>
#include <string.h>
#define N 100
int seekz(char a[])
{
int i=0,j=0;
while(a[i]!='\0')
{
if(a[i]='Z')
{
j=1;
a[i]='A';
break;
}
i++;
}
return j;
}
int seeko(char a[])
{
int i=0,j=0;
while(a[i]!='\0')
{
if(a[i]='O')
{
j=1;
a[i]='A';
break;
}
i++;
}
return j;
}
int seekj(char a[])
{
int i=0,j=0;
while(a[i]!='\0')
{
if(a[i]='J')
{
j=1;
a[i]='A';
break;
}
i++;
}
return j;
}
void main()
{
char str[N];
int len;
scanf("%s",str);
len=strlen(str);
while(len>0)
{
if(seekz(str)==1)
{
printf("Z");
len--;
}
if(seeko(str)==1)
{
printf("O");
len--;
}
if(seekj(str)==1)
{
printf("J");
len--;
}
}
printf("%s",str);
}
为什么我输出更改后的str之后,只有第一个改成了A,其他的都没有改呢?

[解决办法]
你粗心了。 
if(a[i]='Z')
if(a[i]='O')
if(a[i]='J')
应该是“==”而不是赋值符号“=”。

热点排行