C语言中的一道题。。。
题目描述
输入一个正整数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;
}
其他回答
暂无其它回答!