帮忙检查下错误,或者试验下为什么?
本帖最后由 siberian_wolf 于 2014-12-21 18:00 编辑看小甲鱼老师的视频,函数最后一讲,分文件编写函数时的一个作业,我的运行结果与小甲鱼老师的不一样。但是代码基本上是一样的。自己找了好几遍没找出来,编译链接都正常。先上图
单步调试是发现是del_string()出问题了,刚开始运行i的值就是5,明明应该是0才对,赋的初值就是0,j的值是对的,就郁闷了,如下图:
搞不懂是为什么了,请大家帮忙解答!!各函数代码如下:/*main.c*/
#include<stdio.h>
void main()
{
extern void enter_string(char str[]);
extern void del_string(char str[], char ch);
extern void print_string(char str[]);
char ch;
char str;
enter_string(str);
scanf("%c", &ch);
del_string(str, ch);
print_string(str);
}/*del.c*/
void del_string(char str[], char ch)
{
int i, j;
for(i=j=0; str != '\0'; i++);
{
if(str != ch)
{
str=str;
}
}
str='\0';
}
/*enter.c*/
#include<stdio.h>
void enter_string(char str)
{
gets(str);
}
/*print.c*/
#include<stdio.h>
void print_string(char str[])
{
printf("%s\n", str);
}
晕,不知道是什么原因,我在另一台电脑上也是这个毛病。然后就把i的初值改为了1,结果就可以运行了。然后又把i的初值改回0,结果就一切正常了。这……………………TMD在玩我啊!!!!:huffy::huffy::huffy::huffy: 错误的原因在于del.c里面的for循环后面多了个分号
我调了老长时间才发现:cry Victory_6226 发表于 2014-12-21 18:43
错误的原因在于del.c里面的for循环后面多了个分号
我调了老长时间才发现
:handshake,souga,原来如此,我说呢,哎,都是粗心惹的祸,编译器没提示!:sweat::sweat:
页:
[1]