注册 登录
编程论坛 新人交流区

简单编程求和

swehenry 发布于 2007-11-11 22:20, 1494 次点击
编写程序sum.c,求以下表达式结果并输出:
1+3+5+7+9+11

刚学C语言,只会这个的伪代码,编程总弄不好
40 回复
#2
swehenry2007-11-11 22:39
来人帮帮忙啊,那个for循环怎么写呀
#3
Taylor_zh2007-11-11 22:40
这个表达式是自己输的还是就在那固定让你求的???也要for循环!!???
#4
Taylor_zh2007-11-11 22:49
#include<stdio.h>

main()
{
int i, n, sum;
scanf("%d\n" , &n);
for(i = 0,i < n,i++)
{
i += 1;
sum += i;
}
printf("%d\n",sum);
}
不知道这段代码能不能用 LZ试试吧 要断电了只能帮到这了
#5
guti19842007-11-11 23:02
楼上的就可以!
你也可以用数组来做
#6
baijian7102007-11-11 23:02

不知道楼主是编一个通用的程序,还是就是制定这些数呢?
楼上的sum是不是应该先初始化为0啊 ?

#7
hclhso1232007-11-11 23:02
#8
swehenry2007-11-11 23:14
就是编一个程序,运行后显示的结果是1+3+5+7+9+11的和(即36)
我这样写,结果是834,不知道问题出在哪里
#include<stdio.h>
void main()
{
int i,sum;
for(i=1; i <12;i++)
 {
  i +=2;
  sum+= i;
 }
 printf(“%d\n”,sum);
}

4楼的方法运行后有一个错误,一个警告
#9
hclhso1232007-11-11 23:16
#10
guti19842007-11-11 23:25
#include<stdio.h>
void main()
{
int i, n[6], sum=0;
for(i=0;i<6;i++)
{
scanf("%d",&n[i]);
}
for(i=0;i<6;i++)
{
sum+=n[i];

}
printf("%d\n",sum);
}
#11
guti19842007-11-11 23:27
你为什么要循环12次.你明明就有6个数.你的思路不对.看我用数组给你做的.如果你不想用数组我再用别的给你做
#12
cq19881242007-11-12 00:06
有本事你们就别用循环语句!
#13
guti19842007-11-12 00:21
???
这个也用本事??
#include<stdio.h>
void main()
{
int a,b,c,d,e,f,sum;
scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f);
sum=a+b+c+d+e+f;
printf("%d",sum);
}

楼上的,你不觉得这样做很"逗"么?
#14
youken2007-11-12 01:29

是奇数求和吗?

int sum()
{
int res;
res = 0;
for (int i=0; i<6; i++)
res += 2*i+1;
return res;
}

#15
youken2007-11-12 01:32

只是提供一个函数,把它加到main()函数中就可以了。

#16
youken2007-11-12 01:39
以下是引用swehenry在2007-11-11 23:14:03的发言:
就是编一个程序,运行后显示的结果是1+3+5+7+9+11的和(即36)
我这样写,结果是834,不知道问题出在哪里
#include<stdio.h>
void main()
{
int i,sum;
for(i=1; i <12;i++)
 {
  i +=2;
  sum+= i;
 }
 printf(“%d\n”,sum);
}

4楼的方法运行后有一个错误,一个警告

1、sum没有初始化;
2、本来是六个数累加,你循环了11次;
3、i=i+2可以得到奇数,但,i必须也保持奇数变化,可是你的i用在循环里,是按照奇数-偶数-奇数变化的。其实只要学了数列,就知道数列2n+1,当n取非负整数时,就可以得到你所要的奇数数列。

所以,正确的方法见我在上面给你的sum()函数的实现。

#17
ambrose2007-11-12 08:46
int sum=0;
for(int i=1;i<n;i++){
sum+=i;
i++;
}
#18
ambrose2007-11-12 08:47

我只写算法,具体自己写完整

#19
chengfuwei2007-11-12 09:27
8楼的应该可以
#20
swehenry2007-11-12 11:20
guti1984的方法很好,但是数字是要自己出入,而我想让结果直接输出36(奇数求和),又不想写成sum=1+3+5+7+9+11
youken的程序差不多了,但运行后显示有错误.
#21
xjimm2007-11-12 11:39

有点糊涂咯。。。

#22
youken2007-11-12 12:07
以下是引用swehenry在2007-11-12 11:20:32的发言:
guti1984的方法很好,但是数字是要自己出入,而我想让结果直接输出36(奇数求和),又不想写成sum=1+3+5+7+9+11
youken的程序差不多了,但运行后显示有错误.

有什么错误?把错误提示贴出来我看看。
我给的只是一个函数,你要自己添加到main()函数中,我在VC上运行没有问题。

#23
Taylor_zh2007-11-12 13:00

我昨天晚上写的比较仓促,产生错误不好意思了 那个sum初始化0就OK了 LZ你要循环的次数是6次哈 那个n表示你有多少个数相加的意思

#24
zjl1382007-11-12 13:29
我要成为正式会员.
#25
swehenry2007-11-12 13:41

真是麻烦各位了!

youken给的程序运行的图:
[IMG]http://img.photo.163.com/av1qtwqepDiusf7_yhK3EQ==/743938363446981499.jpg[/IMG]
[IMG]http://img.photo.163.com/thoFYtQGTBG9rxyUkhQUsA==/737745913959348610.jpg[/IMG]

另外,Taylor_zh的程序修改后还是不能运行,如图:
[IMG]http://img.photo.163.com/D-7sq_Tjf7_5qgt0M9jbIg==/752664087725009878.jpg[/IMG]
[IMG]http://img.photo.163.com/1TkDxQvjTZ8nj46FS4GHGg==/743938363446981502.jpg[/IMG]

#26
sc3242007-11-12 16:22
#include<stdio.h>
void main()
{
int i,sum,j;
sum=0;
for(i=1; i <6;i++)
 {
j=2*i-1;
  sum+= j;
 }
 printf(“%d\n”,sum);
}
#27
k3162279492007-11-12 16:27
都是大虾阿,我学了这么长时间什么也不会
#28
youken2007-11-12 16:43
以下是引用swehenry在2007-11-12 13:41:07的发言:

真是麻烦各位了!

youken给的程序运行的图:
[IMG]http://img.photo.163.com/av1qtwqepDiusf7_yhK3EQ==/743938363446981499.jpg[/IMG]
[IMG]http://img.photo.163.com/thoFYtQGTBG9rxyUkhQUsA==/737745913959348610.jpg[/IMG]

另外,Taylor_zh的程序修改后还是不能运行,如图:
[IMG]http://img.photo.163.com/D-7sq_Tjf7_5qgt0M9jbIg==/752664087725009878.jpg[/IMG]
[IMG]http://img.photo.163.com/1TkDxQvjTZ8nj46FS4GHGg==/743938363446981502.jpg[/IMG]

看不到,这个论坛不能贴图吗?不行的话就把错误提示复制吧。

#29
fanhuaxing2007-11-12 16:55
最后一篇灌水贴
可以去技术区了
#30
swehenry2007-11-12 19:11
youken给的程序运行结果图:
[IMG]http://images13.51.com/42/a/80/31/henry2008beijing/1194845504_0.00327400.jpg[/IMG]
[IMG]http://images13.51.com/51/a/80/31/henry2008beijing/1194844732_0.32590900.jpg[/IMG]
#31
swehenry2007-11-12 19:15
Taylor_zh的程序运行图:
[IMG]http://images13.51.com/21/a/80/31/henry2008beijing/1194845875_0.00382300.jpg[/IMG]
[IMG]http://images13.51.com/56/e/80/31/henry2008beijing/1194865912_0.79374800.jpg[/IMG]
#32
Taylor_zh2007-11-12 19:19
请用VC编译器~~我想我那个应该可以用的
#33
lyixh2007-11-12 19:23
int i,sum=0;
for(i=1;i<=11;i+=2)
sum+=i;
#34
swehenry2007-11-12 19:51
我把sc324的程序改了一处(原来红色的地方为6),结果运行正常,得到了36(1+3+5+7+9+11)。
#include<stdio.h>
void main()
{
int i,sum,j;
sum=0;
for(i=1; i <7;i++)
 {
j=2*i-1;
  sum+= j;
 }
 printf(“%d\n”,sum);
}
[IMG]http://images13.51.com/26/a/80/31/henry2008beijing/1194867980_0.31154400.jpg[/IMG]
[IMG]http://images13.51.com/63/d/80/31/henry2008beijing/1194866929_0.27231100.jpg[/IMG]
#35
youken2007-11-12 19:51
以下是引用swehenry在2007-11-12 19:11:40的发言:
youken给的程序运行结果图:
[IMG]http://images13.51.com/42/a/80/31/henry2008beijing/1194845504_0.00327400.jpg[/IMG]
[IMG]http://images13.51.com/51/a/80/31/henry2008beijing/1194844732_0.32590900.jpg[/IMG]

我晕,要打PP了。基本的语法错误啊。函数要在主函数外声明并实现,主函数调用函数,而且sum是函数名,不能作为返回变量使用。

完整代码应该是这样的:

#include <stdio.h>
int sum()
{
int res;
res = 0;
for (int i=0; i<6; i++)
res += 2*i+1;
return res;
}

void main()
{
printf("%d\n", sum());
}

你再试试。

#36
swehenry2007-11-12 19:52
感谢楼上的几位的热心帮助,是你们让我在刚进入论坛时,就感受到了论坛里的热情,大家的责任心和认真的态度让我感动,再次感谢你们! youken、Taylor_zh、guti1984、sc324……
#37
youken2007-11-12 19:55
以下是引用swehenry在2007-11-12 19:15:46的发言:
Taylor_zh的程序运行图:
[IMG]http://images13.51.com/21/a/80/31/henry2008beijing/1194845875_0.00382300.jpg[/IMG]
[IMG]http://images13.51.com/56/e/80/31/henry2008beijing/1194865912_0.79374800.jpg[/IMG]

说的是第六行有问题,就是那个for循环,中间用分号隔开不是逗号。

#38
Taylor_zh2007-11-12 19:59

呵呵那不好意思了,好久没编过程序了 都生疏了

#39
swehenry2007-11-12 20:11
Taylor_zh的程序按youken的方法修改后,没有错误了,但是运行结果为“1”

youken的完整代码输入后有3处不妥:
[IMG]http://images13.51.com/56/e/80/31/henry2008beijing/1194868674_0.62837200.jpg[/IMG]
[IMG]http://images13.51.com/30/b/80/31/henry2008beijing/1194868897_0.98048300.jpg[/IMG]
#40
Taylor_zh2007-11-12 20:22
[CODE]

#include<stdio.h>

int main()
{
int n;
while(scanf("%d",&n) != EOF && n != 0)
{
int sum = 0,i;
for(i=0;i<n;i++)
{
int j;
j = 2 * i + 1;
sum+=j;
}
printf("%d\n",sum);
}
return 0;
}

[/CODE]
实在是抱歉了 LZ 这次的是对的
#41
mizhu2007-11-12 20:44

import java.io.*;
public class sum{
public static void main(String args[]){
int s=1,sum=1;
for(int i=1;i<=5;i++)
{
s=s+2;
sum=sum+s;
}
System.out.print(+sum);
}
}
哈哈这是第一篇贴呢

1