为什么我的C语言程序没有输出?哪错了?

 我来答
噘嘴鲢子朋友
2019-10-24
知道答主
回答量:16
采纳率:33%
帮助的人:1万
展开全部
  1. 首先指出你写的一处错误,fun函数没有返回值。你要么定义为void,既然定义成int,就要返回数据。

  2. 代码可能需要优化下....

    输入定义成字符串,不必用char数组,然后如果用while就用while,用for就用for,干嘛都一起用,大致可以这么写(自己定义下变量,另外没必要把变量定义到和main fun一个级别,这样不利于释放空间,就用局部变量,然后fun可以用传参的方式)

    int i=0;

    scanf('%s',&str)

    while(str[i]!=条件){

    switch()或者if 判断符合哪种统计方式

    i++;

    }

追问
加了return 0也不行啊
追答
你按照我给你的推荐只写一个while吗?你现在的代码不是死循环吗?当i=0的时候while条件一直非换行所以永远跳不出去!你把while判断删掉吧,基本就能得到最终答案
cdyzxy
2019-10-24 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3704万
展开全部

while ( a[i]!='\n' )

改成

while ( a[i]!=0 )

更多追问追答
追问
&为什么啊?
追答
因为scanf输入字符串是默认以换行作为结束的,并且换行符并不作为最后一个有效字符返回
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yzjxbin76
2019-10-24 · TA获得超过123个赞
知道小有建树答主
回答量:251
采纳率:67%
帮助的人:63.8万
展开全部
对字符串应该使用字符串结束标志进行检测,即测试fun函数while循环里的a[ⅰ]!=0判断到了字符串末尾,回车键在输入时不会输入到字符数组里面。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jtlywqb
2019-10-24 · TA获得超过615个赞
知道小有建树答主
回答量:1371
采纳率:80%
帮助的人:177万
展开全部
仔细看了你的题目要求和你编写C语言程序,单从程序看看不出有问题,我没有C语言编程工具,无法调试,只能给你一些建议,第一个建议使用编程工具通过的断点跟踪调试,找出问题。第二个建议,增加输出语句,打印中间变量,静态分析。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友70be5764b
2019-10-24 · 超过16用户采纳过TA的回答
知道答主
回答量:36
采纳率:66%
帮助的人:10.6万
展开全部
把while(a[i]!='\n')
改为if(a[i]!='\n')
事实上这句语句不写也行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式