Code Bye

C语言函数调用

如下一段程序,为什么调用函数isTure判断,数组a中却得不到结果呢?当提示not all control paths return a value,该怎么改呢?
#include <stdio.h>
int a[100]={0},cnt=0;
double pjz1=0.0, pjz2=0.0;
int isTure(int m)
{
int x,b,c,d;
/*if(m>=1000&& m<10000)*/      加上这一语句,提示not all control paths return a value
{
x=m/1000;   b=m/100%10;
c=m/10%10;  d=m%10;      //千位数x   百位数b  十位数c 个位数d
if(x+b==c+d)  return 1;
else return 0;
}
}
void jsValue()
{
int m;
for (m=1000;m<=2000;m++)
if(isTure(m)) a[cnt++]=m;
}
main()
{
int i;
void jsValue();
for(i=0;i<100;i++)
printf(“a[%d]=%d\n”,i,a[i]);
}
解决方案

5

not all control paths return a value是说你的函数中有的分支没有返回值,你加了那个判断之后,假如流程走不进你的那个if中,函数就没有返回值了。应该在函数的末尾加上返回值的

70

数组没有值是原因是你main函数里把函数调用写成了声明
void main()
{
	int i;
	jsValue(); //void jsValue();是函数声明!11
	for(i=0;i<100;i++)
		printf("a[%d]=%d\n",i,a[i]);
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C语言函数调用