输入一个整数n求n以内的奇数乘积(1<n<20)

c语言程序设计
输入一个整数n求n以内的奇数乘积(1<n<20)

#include <stdio.h>

int main() {
    int n;
    int mu= 1;
    
    printf("请输入一个整数(1<n<20): ");
    scanf("%d", &n);
    
    if (n <= 1 || n >= 20) {
        printf("输入的整数不在有效范围内。\n");
        return 0;
    }
    
    for (int i = 1; i <= n; i += 2) {
        mu*= i;
    }
    
    printf("%d以内的奇数乘积为: %d\n", n, mu);
    
    return 0;
}



#include <stdio.h>

int main() {
    int n;
    printf("请输入一个整数n:");
    scanf("%d", &n);

    int product = 1;
    for (int i = 1; i <= n; i += 2) {
        product *= i;
    }

    printf("%d以内的奇数乘积为:%d\n", n, product);

    return 0;
}

#include <stdio.h>
int main()
{
    int n,i=1,sum=1;
    printf("请输入一个整数:\n");
    scanf("%d", &n);

    while (i <= n)
    {
        sum *= i;
        i=i+2;
    }
  printf("%d以内的奇数乘积为:%d\n", n, sum );
    return 0;
}


  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7521424
  • 你也可以参考下这篇文章:实训:输入整数n并计算n的阶乘(C语言)
  • 除此之外, 这篇博客: C语言入门——求1到n阶乘之和(1≤n≤20)中的 C语言入门——求1到n阶乘之和(1≤n≤20) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 题目:求1到n的阶乘之和

    输入:输入一个正整数n(1≤n≤20)

    输出:输出一个阶乘和数

    样例

    输入:10

    输出:4037913

    既然是求阶乘之和的,那么可以得到

    核心突破点有:阶乘 求和

    关于阶乘部分

    大家可以看一下个人所写的这篇文章

    C语言入门—求n的阶乘

    再有就是求和部分

    借助循环进行实现,求和部分就是那前一项的阶乘加后一项阶乘,依次加直到循环结束。

    关于这道题还需要注意的是数据范围,数据类型的范围如果过小会出现溢出的情况。

    int,long(long int),long long(long long int)的数据范围如下:

    int -2147483648~2147483647
    long -2147483648~2147483647
    long long的最大值:9223372036854775807
    long long的最小值:-9223372036854775808

    在了解了上述部分之后,就可以用代码实现了,如果你觉得自己可以实现了,那么可以先尝试以下,再看下面代码进行检查,

    #include <stdio.h>
    
    int main(){
    	int n,i;
    	long long fact=1,sum=0;
    	scanf("%d",&n);     
    	for(i=1;i<=n;i++){
    		fact*=i;
    		sum+=fact;
     	}
        printf("%lld\n",sum);	
    	return 0;
    }
    

    关于1-20阶乘之和的问题先说的这里,希望这篇文章能对你有所帮助!

    作者:code_流苏

    喜欢的话,关注一下,点个赞吧!

    欢迎评论交流,如有错误,还请指正!

  • 以下回答由chatgpt基于相关博客总结生成:

    我会!代码如下:

    #include <stdio.h>
    
    int main() {
        int n;
        long long result = 1; // 要用long long类型防止数据溢出
        printf("请输入一个1到20之间的正整数:");
        scanf("%d", &n);
        for (int i = 1; i <= n; i++) {
            if (i % 2 == 1) { // n以内所有的奇数
                result *= i;
            }
        }
        printf("%d以内所有奇数的乘积为:%lld\n", n, result);
        return 0;
    }