搜索
本题要求实现一个计算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;
}
}
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。
页:
[1]