求大佬解答萌新简单的c语言问题 为什么运行结果是2

榆万青 2018-07-01 08:23:38
#include<stdio.h>
int main()
{
char a[10]="gabdgyagh",b[10],c[10],i,j,m;
for(i=0;i<10;i++)
{
if(a[i]='a')
for(j=i,m=0;j>=1;j--,m++)
b[m]=a[j-1];
break;
}

puts(b);
return 0;
}
...全文
333 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Syriacus_z 2018-08-01
  • 打赏
  • 举报
回复
楼主我也是一个在学习的新手,想问一下
1.假如你的字符数组第一个就是'a'j=i=0数组里面不存在j-1会出现问题吗?
2.你的break是在哪里break的啊
3.想问问你想实现的是什么功能啊,没怎么看懂,在第一个for循环后你进入第二个for循环都赋值了m=0,这不是对b数组的前几项又进行了修改吗
threenewbee 2018-07-01
  • 打赏
  • 举报
回复
引用 2 楼 qq_42234271 的回复:
哈哈 谢谢大佬解答
但是好像还有另外一个问题
最后的b[m]='\0'才可以正常读取数组
否则好像就会出现2这种神奇的东西
大佬您怎么看

是的,字符串必须以\\0结尾,否则puts也好,printf也好,它不知道字符串到哪里结束。
榆万青 2018-07-01
  • 打赏
  • 举报
回复
哈哈 谢谢大佬解答
但是好像还有另外一个问题
最后的b[m]='\0'才可以正常读取数组
否则好像就会出现2这种神奇的东西
大佬您怎么看
threenewbee 2018-07-01
  • 打赏
  • 举报
回复
if(a[i]='a') -> if(a[i]=='a')

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧