大家帮忙看一下这一道c++的题目
本帖最后由 ttyule1 于 2020-3-4 16:09 编辑大家帮忙看一下这一道c++的题目
1.从键盘上输入两个整数,编程进行交换二者的值,要求定义chang函数,函数形参使用引用类型。
2.从键盘上输入5个整数,并将5个数按照从小到大输出。要求定义排序函数sort,用sort调用chang函数实现排序,形参使用引用类型。
以下是我写的change函数,怎么用我写的change函数来解决第二题呢?
void change(int &num1, int &num2){
int temp;
temp = num1;
num1 = num2;
num2 = temp;
}
本帖最后由 Cool_Breeze 于 2020-3-4 16:16 编辑
int i,m;
for (i=1;i<100-1;i++)
for (m=i+1;m<100;m++)
{
if (a>a)
{
change(&a,&a )
}
}
传入的是地址(指针);
int temp不是同类型 Cool_Breeze 发表于 2020-3-4 16:12
可不可以把完整的代码写一下呢{:5_109:} 本帖最后由 Cool_Breeze 于 2020-3-4 16:34 编辑
#include <stdio.h>
void sort(int *);
void change(int *,int *);
int main(void)
{
int arr;
int *p=arr;
int i,j;
for (i=0;i<5;i++,p++)
{
printf("请输入第%d个数:\n",i+1);
scanf("%d",p);
}
for (i=0;i<5;i++) printf("%8d",arr);
p=arr;
sort(p);
printf("\nsort\n");
for (i=0;i<5;i++) printf("%8d",arr);
return 0;
}
void change(int *num1,int *num2)
{
int temp;
temp = *num1;
*num1 = *num2;
*num2 = temp;
}
void sort(int *p)
{
int i,j;
for (i=0;i<5-1;i++)
for (j=i+1;j<5;j++)
{
if (*(p+j)<*(p+i))
change(p+j,p+i);
}
}
Cool_Breeze 发表于 2020-3-4 16:31
太感谢您了 Cool_Breeze 发表于 2020-3-4 16:31
抱歉,我刚刚没仔细看,您是用的指针,但题目中是要引用,您能不能修改一下您的代码呢{:5_109:} ttyule1 发表于 2020-3-4 16:41
抱歉,我刚刚没仔细看,您是用的指针,但题目中是要引用,您能不能修改一下您的代码呢
C++我不懂哦! Cool_Breeze 发表于 2020-3-4 17:27
C++我不懂哦!
好吧
页:
[1]