回 帖 发 新 帖 刷新版面

主题:新手求助

我是初学者 很多不懂 不知道这个源代码有问题吗?   这个源代码的意思就是输入2个数  求显示中间的数,
#include <iostream>
using namespace std;
int main()
{
    cout<< "v1-v2"<<endl;
    int v1,v2,v3,v4,v5;
    cin>>v1>>v2;
    if(v1==v2){
              v5=v1;
              }
              else{
                   if(v1 < v2)
                   {
                         v3 = v1;
                         v4 = v2;
                         }
                         else{
                         v3 = v2;
                         v4 = v1;
                         }
                         }
    while (v3 < v4)
    v5 = ++v3;
    cout<< v5 <<endl;
    return 0;
    }

回复列表 (共2个回复)

沙发

当v1==v2 时,v3,v4 没有被初始化,其中将是一个不确定值(例如:可能是v3 = -788235,v4 = 56456 等随机值),
所以,对应于下边的循环:
    while (v3 < v4)
    v5 = ++v3;
该循环的循环次数将不确定。


板凳

这个程序设计思路有点混乱,而且输出的地方写错了,把输出写到循环外面了
思路良好的伪代码如下:
输入v1 v2
比较两个值的大小,如果v2>v1,交换这两个变量(用最简单的临时变量三步交换比较好)
从v1循环到v2
  输出循环变量

我来回复

您尚未登录,请登录后再回复。点此登录或注册