标题:1加到n,怎么做???
只看楼主
xfcyjhb
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-2-26
得分:0 
同意!

多C多智慧,将C进行到底.........
2008-03-08 17:09
michael_wp
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-3-1
得分:0 
方法大致上有3种!
方法一:  直接运算1+2+3+4……+n = ?

这是最直接,也最笨拙的办法。n<=20 还好说,如果n>100 程序员恐怕要敲键盘敲到手抽筋了!呵呵!

方法二: 用循环来处理。设置一个循环上限(直接等于n就行了),然后用累加器sum记录从1加到n。最后累加器中的数字就是所求的结果!这个方法比上一个聪明多了,但是还是有点傻!

方法三:数学大家都学过吧!应该都学过数列!呵呵~~后面不用我说了,如果不会,就去找一本高中(中专也行)的数学书。这是最简洁,最聪明的办法了。

好了,选好方法之后,动手写代码吧~~基础中的基础了。呵呵,我的代码写的烂,就不献丑了。如有不足,欢迎指教!欢迎恶搞,希望炒做!谢谢!

学海无涯,编程海洋比学海还大!
2008-03-09 11:19
yt414204458
Rank: 2
等 级:论坛游民
帖 子:260
专家分:55
注 册:2008-3-1
得分:0 
回复 2# 的帖子
这个能用WHILE语句编吗?应该怎么写啊?我这样写好象不对啊,能不能帮个忙啊?
#include<stdio.h>
void main()
{
 int a, b;
 printf("please input the number:");
 scanf("%d,%d",&a,&b);
 a=1;
 b=2;
 while(b<=100);
 {
  int c;
  b=b+1;
  c=a+b;
  }
 printf("the result is %d\n",c);
}
2008-03-09 11:34
火乍弓单
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-10-5
得分:0 
#include<iostream.h>
void main(void)
{
  int sum,i;
  cout<<"请输入一个整数N:";
  cin>>sum;
  for(i=1;i<=sum;i++);
  cout<<"1到"<<sum<<"的和是"<<i;
  getch();
  return 0;
}
2008-03-09 11:43
火乍弓单
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-10-5
得分:0 
新手,嘿嘿
2008-03-09 11:44
michael_wp
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-3-1
得分:0 
[bo]以下是引用 [un]yt414204458[/un] 在 2008-3-9 11:34 的发言:[/bo]

这个能用WHILE语句编吗?应该怎么写啊?我这样写好象不对啊,能不能帮个忙啊?
#include
void main()
{
 int a, b;
 printf("please input the number:");
 scanf("%d,%d",&a,&b);
 a=1;
 b=2;
 while(b ...



a=1;
b=2;
c=a+b; 我觉得是这几句不对!!

[[it] 本帖最后由 michael_wp 于 2008-3-9 18:30 编辑 [/it]]

学海无涯,编程海洋比学海还大!
2008-03-09 18:29
michael_wp
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-3-1
得分:0 
[bo]以下是引用 [un]yt414204458[/un] 在 2008-3-9 11:34 的发言:[/bo]

这个能用WHILE语句编吗?应该怎么写啊?我这样写好象不对啊,能不能帮个忙啊?
#include
void main()
{
 int a, b;
 printf("please input the number:");
 scanf("%d,%d",&a,&b);
 a=1;
 b=2;
 while(b ...


你用了 scanf("%d,%d",&a,&b);  之后,已经给a和b赋了值,然后又  a=1;b=2; 这样a、b的值就变成1和2了。c=a+b有问题。每次执行循环,都重新int c;所以c总是被重新声明,重新赋值,这样当然是有问题的。

学海无涯,编程海洋比学海还大!
2008-03-09 18:37
michael_wp
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-3-1
得分:0 
[bo]以下是引用 [un]yt414204458[/un] 在 2008-3-9 11:34 的发言:[/bo]

这个能用WHILE语句编吗?应该怎么写啊?我这样写好象不对啊,能不能帮个忙啊?
#include
void main()
{
 int a, b;
 printf("please input the number:");
 scanf("%d,%d",&a,&b);
 a=1;
 b=2;
 while(b ...



我给你修改一下,你运行试试!


#include<stdio.h>
void main()
{
    int a, b, c;
   
    printf("please input the number:");
   
    scanf("%d,%d",&a,&b);
   
    c = a;
   
    while( b<=100 );
    {
        b = b + 1;
        c = c + b;
     }
   
     printf("the result is %d\n",c);

}

学海无涯,编程海洋比学海还大!
2008-03-09 18:41
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
得分:0 
求和的问题还是用for 比较简单

------...-.-..-...-----........-------.......----.....------....||- - !
2008-03-09 20:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-202487-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.371837 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved