C语言中的一道题。。。

原问题:C语言中的一道题。。。
分类:编程开发 > 最后更新时间:【2017-07-26 01:32:51】
问题补充:

题目描述

输入一个正整数N(1≤N≤500),求S=1+2-3+4+5-6+7+8-9+……+N,并统计其中共有多少个减号。

输入输出格式

输入格式:

只有1行,一个正整数n。

输出格式:

也只有一行,二个整数,中间用空格隔开,分别表示S的值和减号的个数。

输入输出样例

输入样例#1: 15输出样例#1:30 5

我是这么写的,洛谷说答案错了,帮忙看看,O(∩_∩)O谢谢

#include<stdio.h>

main()

{

int a,b,c,x=0,n,s=0;

scanf("%d",&n);

for(a=1,b=2,c=3;a<=n-2,b<=n-1,c<=n;a+=3,b+=3,c+=3)

{s=s+a+b-c;

x++;}

printf("%d %d",s,x);

}

最佳答案

你程序算法完全不对,数据不是3个一组的,你的循环条件有问题.你的程序只有当n为3的倍数时成立

如n=4时 结果应该是4 1 你的却是 0 1

同样n=16时,结果应该为46 5 你的与15一样,是30 5

以下是我的程序参考:

#include<stdio.h>
int main()
{
int i,n,s=0,ct=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if (i%3==0)
{
s-=i;
ct++;
}
else
s+=i;
}
printf("%d %d\n",s,ct);
return 0;
}

最佳答案由网友  whoami1978  提供
公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
5

分享到:

其他回答

暂无其它回答!

    推荐
  • C语言中的一道题。。。