鱼C论坛

 找回密码
 立即注册
查看: 1089|回复: 1

[已解决]搜索

[复制链接]
发表于 2023-11-16 19:32:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本题要求实现一个计算1+2+3+…+n的和的简单函数。

函数接口定义:
int sum( int n );
该函数对于传入的正整数n返回1+2+3+…+n的和;若n不是正整数则返回0。题目保证输入输出在长整型范围内。

裁判测试程序样例:
#include <stdio.h>

int sum( int n );

int main()
{
    int n;

    scanf("%d", &n);
    printf ("%d\n", sum(n));

    return 0;
}

/* 你的代码将被嵌在这里 */
输入样例1:
10
输出样例1:
55
输入样例2:
0
输出样例2:
0


我这样写代码哪里错了
int sum( int n )
{
int s=0;
if(n<0)
{
return 0;
}
else
{
for(int i=0;i<=n;i++)
{
s+=n;
}
return s;
}

}
最佳答案
2023-11-16 19:32:55
int sum( int n )
{
    int s=0;
    if(n<=0) // 修改条件为n<=0
    {
        return 0;
    }
    else
    {
        for(int i=1;i<=n;i++) // 修改i的初始值为1
        {
            s+=i; // 修改s+=n为s+=i
        }
        return s;
    }
}

在你的代码中,有两个地方需要修改。首先,条件判断应该是n<=0,而不是n<0,因为题目要求对于非正整数都返回0。其次,在for循环中,你应该将i的初始值设为1,而不是0,同时在累加的地方应该是s+=i,而不是s+=n。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-16 19:32:55 | 显示全部楼层    本楼为最佳答案   
int sum( int n )
{
    int s=0;
    if(n<=0) // 修改条件为n<=0
    {
        return 0;
    }
    else
    {
        for(int i=1;i<=n;i++) // 修改i的初始值为1
        {
            s+=i; // 修改s+=n为s+=i
        }
        return s;
    }
}

在你的代码中,有两个地方需要修改。首先,条件判断应该是n<=0,而不是n<0,因为题目要求对于非正整数都返回0。其次,在for循环中,你应该将i的初始值设为1,而不是0,同时在累加的地方应该是s+=i,而不是s+=n。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 16:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表