透明塑料鞋盒:请c搞手看过来3

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 05:15:48
#include<stdio.h>
main()
{int t,i,j,n,m;
char a[3][23],b[3][23];
for (i=0;i<3;i++)
gets(a[i]);
printf("\n");
for (i=0;i<3;i++)
{ t=strlen(a[i]);
for (j=t;j>=0;j--)
if (a[i][j]=='o')
{for (n=0,m=j+1;a[i][n]!='\0';n++,m++)
{b[i][n]=a[i][m];
printf("%c",b[i][n]);
}
for (m=0;m<j;m++,n++)
{b[i][n]=a[i][m];
printf("%c",a[i][n]);
}
break;
}
}
printf("\n");
for (i=0;i<3;i++)
printf("%s\n",b[i]);
}
这一段是要把每行最后一个o后的字符提前,o前的字符放后,同时o删掉,for example
asdf sddapoasdd
asddasdf sddap
每次运行cmd.exe都回自动关掉,不知道哪里错了
语法错误为0,如果我自己能找出错误,就不用问各位了

#include<stdio.h>
#include<string.h>
void main()
{int t,i,j,m,num;
char a[3][23],b[3][23];
for (i=0;i<3;i++)
gets(a[i]);
printf("\n");
for (i=0;i<3;i++)
{
num=0;
t=strlen(a[i]);
for (j=t-1;j>=0;j--)
if (a[i][j]=='o')
break;
else
num++;
for(m=0;m<num;m++)
b[i][m]=a[i][t-num+m];
for(m=0;m<(t-num-1);m++)
b[i][m+num]=a[i][m];
b[i][m+num]='\0';

}
printf("\n");
for (i=0;i<3;i++)
printf("%s\n",b[i]);
}

这么简单
自己好好看看了

DEBUG一下,跟着程序走,哪儿出问题一下子就明白了

用c提供的字符串函数几句代码就好了。一时半会还是看不出来错在哪里了。