| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 440 人关注过本帖
标题:问两个问题!
只看楼主 加入收藏
大剑
Rank: 2
等 级:论坛游民
帖 子:30
专家分:25
注 册:2011-11-16
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:1 
问两个问题!
1.为啥a和b没交换掉!
程序代码:
#include "stdafx.h"
#include <iostream>
using namespace std;
void swap(int x,int y)
{
    int t;
    t=x,x=y,y=t;
    cout<<"&x:"<<&x<<",&y:"<<&y<<",&t;"<<&t<<endl;
}
void main()
{
    int a=3,b=4;
    cout<<"&a:"<<&a<<",&b"<<&b<<endl;
    cout<<"a="<<a<<",b="<<b<<endl;
    swap(a,b);
    cout<<"a="<<a<<",b="<<b<<endl;
}


图片附件: 游客没有浏览图片的权限,请 登录注册


2这里的t=*m;m=n;n=t;不理解。n=t是不是t为指针无法赋给整型?
程序代码:
#include "stdafx.h"
#include <iostream>
using namespace std;
void f(int *m,int n)
{
    int t;
    t=*m;*m=n;n=t;
}
void main()
{
    int a=5,b=10;
    f(&a,b);
    cout<<a<<" "<<b<<endl;
}

图片附件: 游客没有浏览图片的权限,请 登录注册


3.假设有五个学生的姓名和分数采用以下存储,如下
char *name[]={"Smith","John","Mary","Havard","Kai"}
int score[]={80,72,89,66,96}
编写一个程序,根据用户输入的姓名查找相应的分数。









[ 本帖最后由 大剑 于 2012-2-10 13:31 编辑 ]
2012-02-10 13:03
xingzhian
Rank: 2
等 级:论坛游民
帖 子:14
专家分:54
注 册:2011-3-22
收藏
得分:10 
第1和2是同一个问题,就是参数是局部变量,不能在它的域以外被使用。
第1个,int x和int y只能在函数内交换,却不能被外使用。
第2个,int *m可以交换为n的值,但是int n不能,所以两个的值都是n的值。
第3个嘛,用笨一点的办法,遍历一下(也可以用Map,将name作为key)。
2012-02-10 13:47
快速回复:问两个问题!
数据加载中...
 
   



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

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