| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1539 人关注过本帖
标题:一道简单的编程练习题,恳求赐教。
只看楼主 加入收藏
wylog
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-8-5
收藏
 问题点数:0 回复次数:13 
一道简单的编程练习题,恳求赐教。
编写一个要求用户输入两个整数的程序。该程序将计算并输出这两个整数之间(包括这两个整数)所有整数的和。假设先输入较小的整数。例如,如果用户输入的是2和9,则程序将指出2~9之间所有整数的和为44。

我编写的程序如下,编译通过,但运行答案有误。
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
void main()
{
cout<<"input the first number:";
int x;
cin>>x;
cout<<"input the last number:";
int y;
cin>>y;
int *s=new int[200];
s=&x;
for (int i=0;i<y-x;i++)
{
    s[i]=x+i;    
}
int num[200];
num[0]=s[0];
for (int b=1;b<=y-x;b++)
{num[b]=num[b-1]+s[b];
}

cout<<"the sum is :"<<num[b]<<endl;
}
搜索更多相关主题的帖子: 练习题 恳求 
2008-08-05 13:28
bamboowing
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-6-26
收藏
得分:0 
回复
你在第一个循环中for (int i=0;i<y-x;i++)少了个等号
应该是for (int i=0;i<=y-x;i++)
而且你第二个数组没有全部赋值,只是赋了第一个值,并不完全,
我个人认为第二个循环完全没有必要。
我个人认为下面的方法会好一些:
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
void main()
{
cout<<"input the first number:";
int x;
cin>>x;
cout<<"input the last number:";
int y;
cin>>y;
int *s=new int[200];
int a=0;
s=&x;
for (int i=0;i<=y-x;i++)
{
    s[i]=x+i;  
    a=a+s[i];  
}

cout<<"the sum is :"<<a<<endl;
}
2008-08-05 16:01
黎明静悄悄
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-8-3
收藏
得分:0 
这么麻烦干什么   直接编个等差数列求和公式不就行了
2008-08-05 16:18
jlz7230220
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-7-29
收藏
得分:0 
2楼的这个程序只能计算两个数之差不大于33的
2008-08-05 17:41
随风自由
Rank: 1
来 自:天津
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-8-5
收藏
得分:0 
回复
一定需要用数组吗?不用数组也能解决的
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main()
{
cout<<"input the first number:";
int x;
cin>>x;
cout<<"input the last number:";
int y;
cin>>y;
long int sum=0;
int i;
for (i=x;i<=y;i++)
{
    sum+=i;
}
cout<<"the sum is :"<<sum<<endl;
int t;
cin>>t;
return 0;
}

生活是自己过出来的
2008-08-05 18:35
wylog
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-8-5
收藏
得分:0 
首先,谢谢二楼的解答。不知道为什么,运行后,结果是对的,但编译器会弹出一个提示,XXXX内存出错;不知道何解,通常出现这种错误应该是代码有不完善的地方吧?是不是最后要加个delete []s,来释放指针占用的内存?
2008-08-05 21:06
wylog
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-8-5
收藏
得分:0 
5楼的解答,更好,谢了!
2008-08-05 21:09
jlz7230220
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-7-29
收藏
得分:0 
5楼的解答无错,不过感觉int t;cin>>t;是不是没有什么作用啊?
2008-08-05 23:52
名字不好取啊
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-8-7
收藏
得分:0 
5楼想表达的意思是 暂停下  其实用个system("pause");就可以了
2008-08-07 21:04
细雨斜飞
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2008-5-4
收藏
得分:0 
#include <iostream>
using namespace std;

template <class T>
T max(T a,T b)
{
    return a>b?a:b;
}

template <class T>
T min(T a,T b)
{
    return a<b?a:b;
}

void main()
{
    cout<<"Please input two intger"<<endl;
    int a,b;
    cin>>a>>b;
    int Max;
    Max=max(a,b);
    //cout<<"max intger"<<Max<<endl;
    int Min;
    Min=min(a,b);
    //cout<<"min intger"<<Min<<endl;
//-------------------------------------------------------------------------------
    int times;times=Max-Min+1;
    int sum;sum=0;
    for(int i=0;i<=times;i++)
    {
        sum+=Min;
        Min++;
    }

    cout<<"from a to b(or b to a) ,the result is :"<<sum<<endl;

}
2008-08-10 14:30
快速回复:一道简单的编程练习题,恳求赐教。
数据加载中...
 
   



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

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