永发信息网

一个C语言源代码的错误

答案:1  悬赏:50  手机版
解决时间 2021-04-29 22:54


#include "stdio.h"
#include "string.h"
void main()
{char a[80];
int i,j;
printf("Please input:");
gets(a);
for(i=0;i!='\0';i++)
if(a[i]>=48&&a[i]<=57)
{for(j=strlen(a)+2;j>i;j--)
a[j]=a[j-1];
a[i]='$';}
printf("result:");
puts(a);
}

执行这个程序,发现输出结果和输入内容是一样的,没人任何改变。谁能告诉我是错在哪里了?


#include "stdio.h"
void main()
{char a[80],b[80];
int i,j;
printf("Please input:");
gets(a);
for(i=0,j=0;i!='\0';i++,j++)
if(a[i]>=48&&a[i]<=57)
{b[j++]=a[i];a[i]='$';}
else
b[j]=a[i];
strcpy(a,b);
printf("result:");
puts(a);
}

这是另外一种算法,可是现在就干脆什么输出结果都没有,这种算法又错在哪里了呢?

最佳答案

#include "stdio.h"
#include "string.h"
void main()
{char a[80];
int i,j;
printf("Please input:");
gets(a);
for(i=0;a[i]!='\0';i++) //应该判断a[i]这个字符.而不是i是不是字符串结束符.
if(a[i]>=48 && a[i]<=57)
{
for(j=strlen(a)+2;j>i;j--)
a[j]=a[j-1];
a[i]='$';
i++; //将数字后移1位. 所以加上$后,i要加1. 否则下次循环判断if的时候,a[i]还是数字.
}
printf("result:");
puts(a);
}



第二种:


#include "stdio.h"
#include "string.h"
void main()
{
char a[80],b[80];
int i,j;
printf("Please input:");
gets(a);
for(i=0,j=0;a[i]!='\0';i++,j++) //同样.判断数组元素.
if(a[i]>=48 && a[i]<=57)
{
b[j++]='$'; //如果是数字.就先将$放到数组中.
b[j]=a[i]; //然后再将该数字放到数组中.
}
else
b[j]=a[i];
b[j]='\0'; //加上字符串结束符
strcpy(a,b);
printf("result:");
puts(a);
}


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
巴国田园地址有知道的么?有点事想过去
产品管理包括哪些方面,质量管理体系文件包括
錢,真的可以買到任何東西么
怎么修改空间名字(仔细看下面描述)
韩语我爱你,怎么说
来月经痛经
手机不能上网怎么办?
如何才可以在男生心中留下好印象?
如何测量甲醇中水的含量?
人的一生有多好
快乐家族牛排·海鲜自助逸都城店在哪里啊,我
谁看过盗梦?
哪里的厨师培训班比较好?
求塞班v5最好的微博客户端!
找最终幻想钢琴曲空间有效链接地址
推荐资讯
地下城里狂战怎么加点?要刷图快第一,详细些
求数码暴龙失落的进化。烟火那里黑屏
电脑装了avast 还用在装防火墙了吗?
QQ怎么设置密码不能让他进呢
路飞躲在女帝的衣服里是哪集?
QQ欢乐斗地主明明我赢了,为什么还要扣我的豆
怎样知道 自己讨厌一个人和喜欢一个人
爱为什么会有隔阂?
女朋友不是处女我还应该和她结婚吗?
Vae寻雾启示会出第3首歌吗?
如何做好一名柜员,如何做一名优秀的银行柜员
嗓子唱歌唱哑了,要怎样才可以在最快的时间内
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?