| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2558 人关注过本帖
标题:这道题目该怎么做啊。。。不会弄。。。
只看楼主 加入收藏
vic风铃
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-5-23
结帖率:0
收藏
已结贴  问题点数:10 回复次数:5 
这道题目该怎么做啊。。。不会弄。。。
编写两个自定义函数,第一个求1+2+3+...+n,第二个求1*2*3*...*n,要求在主函数中输入n的值,并分别调用两个自定义函数,输出相应累加和累乘的结果。
搜索更多相关主题的帖子: 自定义 函数 输出 累加 结果 
2017-05-23 16:30
ZSPM
Rank: 1
来 自:家乡
等 级:新手上路
帖 子:75
专家分:3
注 册:2017-5-22
收藏
得分:3 
#include <stdio.h>
#include <stdlib.h>

/**自加函数*/
void fun(int n);
/**自乘函数*/
void fun1(int m);
int main()
{
    int n = 0;
    printf("请输入n得值:");
    scanf("%d",&n);
    fun(n);
    fun1(n);
    system("pause");//目的是让程序卡住,有的编译器可以不写。
    return 0;
}

void fun(int n)
{
    int i = 0;
    int a = 0;
    for (i = 1; i <= n; i++)
    {
        a += i;
    }
    printf("1+2+3+4+..+n的值为:");
    printf("%d\n",a);
}10

void fun1(int m)
{
    int i = 0;
    long int a = 1;
    for (i = 1; i <= m; i++)
    {
        a *= i;
    }
    printf("1*2*3*4*..*n的值为:");
    printf("%d\n", a);
}

/**时间会收获最真的情感,风雨会考验最暖的陪伴*/
2017-05-23 17:26
ZSPM
Rank: 1
来 自:家乡
等 级:新手上路
帖 子:75
专家分:3
注 册:2017-5-22
收藏
得分:0 
自乘的数字太大  用的long int

/**时间会收获最真的情感,风雨会考验最暖的陪伴*/
2017-05-23 17:26
累成一条狗
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2017-5-12
收藏
得分:3 
#include<stdio.h>
int add(int n)
{
    if(n==1)
        return 1;
    else
        return n+add(n-1);
}
int multiply(int n)
{
    if(n==1)
        return 1;
    else
        return n*multiply(n-1);
}
int main()
{
    int n;
    scanf("%d",&n);
    printf("1+2+...+n=%d\n",add(n));        //输出累加和
    printf("1*2*...*n=%d\n",multiply(n));   //输出累乘和
    return 0;
}

谋定而后动,知止而有得!
2017-05-23 20:42
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:3 
对于自加,要图快的话最好(1+n)*n/2. 可以常数时间内搞完。自乘只好迭代或递归了
2017-05-24 10:36
丧钟
Rank: 2
来 自:哥谭市
等 级:论坛游民
帖 子:10
专家分:10
注 册:2017-5-9
收藏
得分:3 
#include<stdio.h>

int main(void)
{
    int a, b, n, i, j;

    printf("please enter n: ");

    scanf("%d",&n);

    for(a=0,i=1; i<=n; i++)//做1+2+3+...+n的循环
    {
        a+=i;
    }

    for(b=1,j=1; j<=n; j++)//做1*2*3...*n的循环
    {
        b*=j;
    }

    printf("1+2+3+...+n=%d\n",a);
    printf("1*2*3...*n=%d\n",b);

    return 0;
}
新手写的,请多指教!!!

今天的菜鸟,明天的高手!!!
2017-05-24 13:26
快速回复:这道题目该怎么做啊。。。不会弄。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017557 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved