鱼C论坛

 找回密码
 立即注册
查看: 1444|回复: 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
  1. int sum( int n )
  2. {
  3.     int s=0;
  4.     if(n<=0) // 修改条件为n<=0
  5.     {
  6.         return 0;
  7.     }
  8.     else
  9.     {
  10.         for(int i=1;i<=n;i++) // 修改i的初始值为1
  11.         {
  12.             s+=i; // 修改s+=n为s+=i
  13.         }
  14.         return s;
  15.     }
  16. }
复制代码


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

使用道具 举报

发表于 2023-11-16 19:32:55 | 显示全部楼层    本楼为最佳答案   
  1. int sum( int n )
  2. {
  3.     int s=0;
  4.     if(n<=0) // 修改条件为n<=0
  5.     {
  6.         return 0;
  7.     }
  8.     else
  9.     {
  10.         for(int i=1;i<=n;i++) // 修改i的初始值为1
  11.         {
  12.             s+=i; // 修改s+=n为s+=i
  13.         }
  14.         return s;
  15.     }
  16. }
复制代码


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-22 01:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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