请问c语言怎么输入可不可以覆盖输入的那行,假如我输入两个数,让他们相加,但是我想,输入的结果在输入的那行?

楼主试试在printf之前输出num很大概率昰等于0的。

(如果以下看不懂请移动至最下面对gets()函数的分析)
1、gets(s)每次返回一行而不是一次性返回EOF之前的全部字符!楼主可能是这一点想錯了,如果不是请看下面的分析
2、为什么num=0? gets(s)每次读一行,s是字符串楼主每次只判断了一个字符p,就继续下一次循环了输入的样例很可能会导致num=0的就是num++那句不会执行。应该再加一重循环while(p!='0')判断s里的每个字符
3、每次判断一行数字,p就应该从s的开头开始所以 char *p=s应该放在while(get(s))这个循環里面。

其他的方法我推荐用while((ch=getchar())!=EOF)这个你的思路挺符合的,一个字符一个字符判断你可以去搜这句,挺经典的

返回值为用户输入的ASCII码,讀到文件末尾返回EOFEOF的值是-1
从方法上说,可以用空格或换行判断单词数'n'判断行数。按照题目来说应该是没有句号或逗号的

抱歉,之前沒仔细看代码就看了一行while(gets(s)!=EOF) 。就直接写答案了刚刚想起其实好像也没什么问题,所以去看了你的代码

执行时,不断从stdin读取字符遇到換行符或EOF时停止,并将读取的结果存放在buffer中注意换行符会被转换为‘0’(空字符),加在buffer的后面

}

既然你要先输入所有的行计算後再多行一起输出,那就必须找到个地方把每一行的计算结果保存起来

用数组可以,但你不想用

按照你采纳的回答中那样利用递归,實际上是把每行计算的结果保存在了每一次递归迭代中但是单纯这样做无法满足你的要求:要么选择将结果倒序输出(就像他的代码)。要么选择将结果正序输出但输入和输出语句必然会交替执行——也就是把11和13行的语句一起放到12行之前或之后——这样就不满足你的要求了。

如果多利用一些技巧还是可以用递归做到你的要求的。

比如:如果你学了结构体和指针的话那么用结构体辅助保存每一行的计算结果,然后进行第二次递归来将结果正序输出:

这个方法实际上是利用递归来构造了结构体链表 仍然没有用到数组,但如果你也没学箌结构体和指针就没办法了

}

我要回帖

更多关于 c语言怎么输入 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信