| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1492 人关注过本帖
标题:交换函数,不知道这个程序错在哪里,并没有运行出想要的结果
只看楼主 加入收藏
我叫赫卡忒
Rank: 1
来 自:北京
等 级:新手上路
帖 子:19
专家分:0
注 册:2016-9-22
结帖率:50%
收藏
 问题点数:0 回复次数:5 
交换函数,不知道这个程序错在哪里,并没有运行出想要的结果
下面这个程序不知道错在哪里,老是运行错误
/*编写一个交换函数,可以实现对数组r中下标i和j的值进行交换*/
#include<iostream>
using namespace std;
void swap(int *i,int *j)
{
    int k;
    k = *i;
    *i = *j;
    *j = k;
}

int main()
{
    char buffer[80];
    cout<<"输入一个数组:"<<endl;
    cin.getline(buffer,80,'\n');
    int i,j;
    cout<<"输入要交换的数字位置i,j:"<<endl;
    cin>>i>>j;
    swap(buffer[i], buffer[j]);
    cout<<"输出交换位置后的数组"<<endl;
    cout<<buffer;
    return 0;
}
2017-03-06 09:10
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:0 
不知道这个程序在哪里
------ 你所谓的“错”是指什么?

void swap(int *i,int *j)
{
    int k;
    k = *i;
    *i = *j;
    *j = k;
}
swap(buffer[i], buffer[j]);
应该不算错吧,没人说不能写个无用的swap放在哪儿装饰一下。
2017-03-06 09:27
我叫赫卡忒
Rank: 1
来 自:北京
等 级:新手上路
帖 子:19
专家分:0
注 册:2016-9-22
收藏
得分:0 
我想让数组中的数交换位置输出,可是结果并没有交换,你说这个函数没用是因为我没有用上这个函数吗?应该怎么改?
2017-03-06 09:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:0 
以下是引用我叫赫卡忒在2017-3-6 09:40:30的发言:

我想让数组中的数交换位置输出,可是结果并没有交换,你说这个函数没用是因为我没有用上这个函数吗?应该怎么改?

听不懂
你说简单些,输入什么,输出什么,期待输出什么?
2017-03-06 10:13
yangwawa
Rank: 2
等 级:论坛游民
威 望:3
帖 子:15
专家分:67
注 册:2016-11-26
收藏
得分:0 
数组是char类型的,只能存放一个字符按照你的要求程序是可以进行交换的;
如果硬要说错的话,我觉得可能指针定义上可能不太好吧,因为你的数组是字符类型的。
2017-03-06 22:40
烟雨晨曦
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:150
专家分:599
注 册:2017-3-5
收藏
得分:0 
要交换值教你两种常用方法
1.直接交换(会溢出)
a = (a + b) - (b = a)

2.异或运算(安全前提是数据类型一致)
a = a^b^(b = a)
2017-03-08 22:10
快速回复:交换函数,不知道这个程序错在哪里,并没有运行出想要的结果
数据加载中...
 
   



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

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