A. c语言无法输出结果
//你这个程序是准备判断一个子串在一个字符串中出现了多少次?
//帮你修改了一个错误!
#include<stdio.h>
#include<string.h>
#defineN80
intfun(char*s,char*t)
{
intn;
char*p,*r;n=0;
while(*s)
{
p=s;r=t;
while(*r)
{
if(*r==*p)
{
r++;p++;
}
else
break;
}
if(*r==0)//这里应该是*r==0
n++;
s++;
}
returnn;
}
voidmain()
{
chara[N],b[N];
intm;
printf(" Pleaseenterstringa:");
gets(a);
printf(" Pleaseentersubstringb:");
gets(b);
m=fun(a,b);
printf(" Theresultis:m=%d ",m);
}
B. C语言字符串函数无法返回值是怎么回事
首先函数:char
strcat
(char
x[],char
y[])返回值是char型
你在函数中却返回char型指针。
其次for语句:for
(i
=
m;i
<=
m
+
n;i
++)
m+n要大于x,y字符串的长度,可能会越界。
C. C语言编程后无法输出结果
因为
fun(char
*c,int
d)第一个参数是以指针形式传入的,那么在fun函数中对c的修改就是对其本身值的修改,而参数d传入时系统自动创建一个副本,所以在fun函数中对d的修改只是对它副本的修改该在运行完fun后副本自动删除,所以会有这个结果
D. c语言里面的无返回值到底是怎么回事,谢谢了,大神帮忙啊
无返回值就是函数只执行数据处理,不返回值。函数定义时一般用void关键字表示无返回值。
如调用string类库中的int
i
=
strcmp("abc",
"abc")函数判断两个参数是不是相等,两个都"abc"
则i
=
0,这是有返回值的
E. 简单c语言函数调用无返回值问题
递归函数myPower的定义有逻辑错误,改成:
double myPower(int a,int b)
{
if(0==b) return 1;
return a*myPower(a,b-1);
}
如果改成这样,会更高效:
double myPower(int a,int b)
{
if(0==b) return 1;
if(1==b) return a;
return myPower(a,b%2)*myPower(a*a,b/2);
}
例子1
#include <stdio.h>
double myPower(int a,int b)
{
if(0==b) return 1;
return a*myPower(a,b-1);
}
int main()
{
int a=2,b;
for(b=0;b<11;b++)
printf("%lf ",myPower(a,b));
return 0;
}
F. 为什么我的C语言程序没有输出哪错了
首先指出你写的一处错误,fun函数没有返回值。你要么定义为void,既然定义成int,就要返回数据。
代码可能需要优化下....
输入定义成字符串,不必用char数组,然后如果用while就用while,用for就用for,干嘛都一起用,大致可以这么写(自己定义下变量,另外没必要把变量定义到和main fun一个级别,这样不利于释放空间,就用局部变量,然后fun可以用传参的方式)
int i=0;
scanf('%s',&str)
while(str[i]!=条件){
switch()或者if 判断符合哪种统计方式
i++;
}
G. c语言运行程序为什么没有输出数
C语言运行程序为什么没有输出数字,产生的原原因如下:
1、输入的格式不对
要输入“浮点数”并用 “逗号” 分隔输入三个数两个逗号后还要额外多加一回车才开始后面的流程,
如果把
scanf("%f,%f,%f\n",&a,&b,&c);
改为
scanf("%f%f%f",&a,&b,&c);
就可以用空白符做分隔了。
2、没有输出
不知道计算的结果那算法就没有意义了。输出不一定是要打印到屏幕上的,可以是下一个程序的输入,可以是一个文件、一段语音、一张图像,甚至是机器人的步行动作等等。
H. C语言为什么无法输出结果
楼主注意啦!
首先你的scanf中不需要\n,这个东西,这是错误的写法。只要写:
scanf("%d",n);
而你下面的是一个while循环,所以当然会循环的输出的,知道你的n--为0,也就是while()循环中的条件为假时,就停止循环。
所以结果不但是八,而是算出来的五个值。和、呵呵
I. C语言问题,这个程序为什么能运行,但是无法输出
这应该是一个求500000内每个数的约数之和。
程序有这样两个问题:
(1)main函数不能设置成int类型的,应该说void无返回值的;
(2)main不存在return
0;
至于为什么没有结果,你将上两条修改后,再将MAX改为小一点的值,比如50,再行验证代码的正确性,看看是否有结果输出。因为你的循环次数太多,系统可能会运行很长时间而没有反应。