/*为什么输入的n超过20之后就出现了负数,甚至还有0的出现?望解答*/
#include
int sum(int n)
{
long long unsigned int b;
if(n==1||n==0) {b=1;}
else {b=n*sum(n-1);}
return b;
}
main()
{ int n;
while(1)
{
printf("\n请输入N的值:");
scanf("%d",&n);
printf("\nN!=%d\n",sum(n));
}
}/*这是用递归方式求N!*/
1条回答 默认 最新
- 猫夏i 2021-04-21 10:35关注
b是long long unsigned int
函数sum返回值又是int
输出又是整型%d....
都溢出了
#include<stdio.h> long long unsigned int sum(int n) { long long unsigned int b; if (n == 1 || n == 0) { b = 1; } else { b = n * sum(n - 1); } return b; } int main() { int n; while (1) { printf("\n请输入N的值:"); scanf_s("%d", &n); printf("\nN! = %lld\n ", sum(n)); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 抖音咸鱼付款链接转码支付宝
- ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
- ¥15 求螺旋焊缝的图像处理
- ¥15 blast算法(相关搜索:数据库)
- ¥15 请问有人会紧聚焦相关的matlab知识嘛?
- ¥15 网络通信安全解决方案
- ¥50 yalmip+Gurobi
- ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
- ¥15 itunes恢复数据最后一步发生错误
- ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了