永发信息网

C语言反序输出

答案:5  悬赏:0  手机版
解决时间 2021-01-31 08:04
高手帮看下面程序有错吗,我感觉怪怪的
输入一行字符存入数组,然后把他们反序存入到同一数组中。
#include stdio.h
main()
{
char c,stmp,array[80];
int i=0,j;
while((c=getchar())!='\n')
array[i++]=c;
array[i]='\0';
for(j=i-1;j>=i/2;j--)
{
stmp=array[j];
array[j]=array[i-1-j];
array[i-1-j]=stmp;
}
for(i=0;array[i]!='\0';i++) printf(%c,array[i]);
printf(\n);
}
最佳答案
除了第一行没加尖括号之外没什么错误啊。
while((c=getchar())!='\n') :从键盘上取一个字符赋值给c,当c时回车是结束。
那个反斜杠零不可以省,因为字符串应该以它为结束标志,这里不会自动赋,赋初值的时候才自动赋\0。
个人观点,有疑问咱讨论讨论,我也是刚学过。呵呵
全部回答
从逻辑上没有错,只要注意自己的书写习惯和书写规范就好了 至于第六行,就是用一个字符变量c来接收一个输入字符,只要他不是回车,循环继续。也就是你这个字符串可以包含空格。 第八行的'\0'是认为给这串字符加零结束标志,这是一个字符串必备的,要不只能是一个字符数组。 可以用gets()函数获取字符串输入,strlen()函数获取字符串长度
突然感觉我学的好水...
你是说*rev与rev[]吧, 在c语言里,当定义char *rev的时候,rev是放在了常量区,值不能修改,因此会出错; 而定义char rev[]的时候,rev数组是放在了栈区,值可以修改,因此用数组不会报错。
第一个先把有键盘输入的值赋给c,然后再判断是不是回车符,为真执行while循环 第二个就是表示在输入完N个字符后添加一个结束符,设置结束条件,因为后面的 for(i=0;array[i]!='\0';i++) printf(%c,array[i]);//遇到结束符就停止执行printf(); 如果在本程序中用puts(); 输出字符串,就应该在数组最后一个设置结束条件'\0' 不然就肯定会出现乱码的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大兴居委会地址好找么,我有些事要过去
(10分)Ⅰ.某人利用小球藻为实验材料做了下
红木手链15颗纯黑色价格?纯黑色无印字,远看
新河村地址好找么,我有些事要过去
手游大厂是那个公司?是不是很垃圾的公司?
刚装修好的房子适合养点什么植物?
甲方:一对8一对9一对10 三个Q 三个K 一个小
不锈钢餐具上的不干胶标贴怎样去除?
来电铃声怎么改成自己的音乐
已知α,β都为锐角,cos(α+β)=5/13,cosβ=4/
我男朋友最近两三个月都找不到人,偶尔给我打
魔兽世界什么怪爆重皮
初这个姓氏的由来
冰柜热保护怎么换
联旺村地址在什么地方,想过去办事
推荐资讯
新扣扣怎么开通微信
明途A+A地址在哪,我要去那里办事
中国邮政储蓄银行(宋门乡东宋门村)地址有知道
诊断早期肺心病的主要依据A.长期肺及支气管病
钱排三华李可以快递外省吗?
读“印度略图”,回答下列各题:(1)关于印
长宏旅店(解放西路)地址在什么地方,想过去办
QQ游戏家族管理密码忘记怎么办
如何写教科研课题 幼儿园
三国杀 1血魏延火攻自己怎么结算?
女士背心短裙套装的网球服可以跑步穿吗?跑步
推荐一些经典的GAL游戏,好的加分~
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?