c语言变量获取返回值,有printf()语句的函数,怎么获取它的返回值

/************************************************************

*Copyright (C), 2012, RedCity.

*Project: 17st.函数[素数项目重写].vcxproj

*FileName: 17st.函数[素数项目重写].c

*Author:AmyCc

*Description: 函数调用练习

*Version:1.0

*Function List: ErgodicAndPrint(); IsPrime()

*History:

* AmyCc 2012/11/05 22:07 v1.0 创建项目

* 关于素数:

* 如果M不是素数(除1和本身)外:

* 1. 一定存在两个相等的数乘积等于它,这两个数就是根号M;

* 2. 如果两个数都在根号M以下,乘起来小于M;

* 3. 如果两个数都在根号M以上,乘起来一定大于M;

* 综上,两个数分布于根号M两边,那么只要找到其中一半即可。

************************************************************/

# include

# include

# include

# include /*第一处修改:这句要加上,不然system(“puse”);会出错*/

int IsPrime(int val);

int ErgodicAndPrint(int Val);

int main(void)

{

int EndVal,result;

//int t = ErgodicAndPrint(EndVal);//并不能获取返回值,需要怎么才能获取到这个函数里 return SuShuCnt;的值?

printf("\n请输入您需要查找的范围内末尾整数:");

scanf("%d", &EndVal);

result=ErgodicAndPrint(EndVal); //函数调用(内含输出格式); printf("\n共计%d个素数,列表完毕!\n\n\7", result);/*修改第二处:得到函数结果了*/

system("pause");

return 213;

}

int IsPrime(int val)

{

int i;

int t = (int)sqrt((float)(val)) + 1; /*修改第三处:进行显示类型转换,不然又警告*///筛选素数只判断根号val左边的整数即可,+1防止精确度可能存在误差,(开方:sqrt(x); 幂:pow(x,y);)//if (val == -858993460) return -1;//判断非法字符以整数类型传递到函数内(VS2012中,scanf接受到不匹配类型会置变量为该值

for (i=2; i

{

if (val%i == 0) //余数为0,则表示val有其他因数 {

return 0;

}

}

return 1;

}

int ErgodicAndPrint(int Val)

{

int i, SuShuCnt; //SuShuCnt计数素数的个数

printf("\n经遍历计算,在1至%d范围内的素数(含首尾)列表如下:\n\n", Val);

for (i=1,SuShuCnt=0; i<=Val; i++)

{

if (IsPrime(i) == 1)

{

printf("%d;\n",i);

SuShuCnt++;

}

}

return SuShuCnt;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值