标题:引用問題,拜託大大們救命啦!
只看楼主
hduhjj
Rank: 2
等 级:论坛游民
帖 子:37
专家分:58
注 册:2010-3-6
结帖率:100%
已结贴  问题点数:10 回复次数:6 
引用問題,拜託大大們救命啦!
#include<iostream>
using namespace std;
void main()
{
    int a,b,i;
    cin>>a>>b;//輸入待處理的兩個數
    if(a<b)
    {
        int& x=a;int& d=b;//大數為a,小數為b
    }
    else
    {
        int& d=a;int x=b;    //大數為b,小數為a
    }
    for(i=x;b%i!=0||a%i!=0;i--)//從小數開始篩選公約數
        ;
    cout<<"公約數:"<<i<<endl;
    for(i=d;i%b!=0||i%a!=0;i++)//從大數開始篩選公倍數
        ;
    cout<<"公倍數:"<<i<<endl;
}
調試結果:
D:\c\一個函數求公倍約數.cpp(15) : error C2065: 'x' : undeclared identifier
D:\c\一個函數求公倍約數.cpp(18) : error C2065: 'd' : undeclared identifier

在這裡,if語句中的引用是無效的么?應該怎麼使用呢?

題目要求是以一個函數求公約數和公倍數,以引用方式,拜託大大們救命啦!


搜索更多相关主题的帖子: 救命 
2010-03-06 14:02
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:0 
x,d只在它们的定义的{ ... }中在效!

★★★★★为人民服务★★★★★
2010-03-06 18:15
hduhjj
Rank: 2
等 级:论坛游民
帖 子:37
专家分:58
注 册:2010-3-6
得分:0 
關鍵是:怎麼解決呢?
2010-03-06 21:33
quietstar
Rank: 2
来 自:虚无缥缈处
等 级:论坛游民
帖 子:28
专家分:98
注 册:2009-4-13
得分:4 
回复 楼主 hduhjj
#include<iostream>

using namespace std;

int main()
{
    int a,b,i,t;
    int& x=a;int& d=b;
    cin>>a>>b;   
    if(a<b)
    {
        t=a;
        a=b;
        b=t;
    }
    for(i=x;b%i!=0||a%i!=0;i--)
    {
        ;
    }
    cout<<"公约数:"<<i<<endl;
    for(i=d;i%b!=0||i%a!=0;i++)
    {
        ;
    }
    cout<<"公倍数"<<i<<endl;
    return 0;
}

流光穆然去,美梦随佳人。薄雾似成雨,芳樽清茶冷。郁郁清风外,悠然不复生。
2010-03-06 21:43
quietstar
Rank: 2
来 自:虚无缥缈处
等 级:论坛游民
帖 子:28
专家分:98
注 册:2009-4-13
得分:6 
回复 楼主 hduhjj
另外请注意两点:
1、没有void main()这种写法,这是标准c++不允许的,应该是int main(),在程序的最后返回0,表示程序正确执行(返回非0值表示有错误发生);
2、for语句的语句体即使只有一个空语句,也请加上{},这是个好习惯。

你原来程序的错误在于,在if语句里面定于的引用,是个局部变量,在if语句外面当然无法访问。另外,for语句也是,以前的c++标准是可以的,现在已经明确for语句定义的变量无法在语句体外使用。
 

流光穆然去,美梦随佳人。薄雾似成雨,芳樽清茶冷。郁郁清风外,悠然不复生。
2010-03-06 21:50
hduhjj
Rank: 2
等 级:论坛游民
帖 子:37
专家分:58
注 册:2010-3-6
得分:0 
大大我崇敬你!

2010-03-06 22:34
hblikun
Rank: 2
来 自:武汉
等 级:论坛游民
帖 子:11
专家分:20
注 册:2009-1-8
得分:0 
作用域问题,看看书上面的这一小节吧。
2010-04-11 21:09



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




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

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