ttyule1 发表于 2020-3-4 16:05:36

大家帮忙看一下这一道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:12:31

本帖最后由 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不是同类型

ttyule1 发表于 2020-3-4 16:16:02

Cool_Breeze 发表于 2020-3-4 16:12


可不可以把完整的代码写一下呢{:5_109:}

Cool_Breeze 发表于 2020-3-4 16:31:43

本帖最后由 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);
        }
}

ttyule1 发表于 2020-3-4 16:37:18

Cool_Breeze 发表于 2020-3-4 16:31


太感谢您了

ttyule1 发表于 2020-3-4 16:41:47

Cool_Breeze 发表于 2020-3-4 16:31


抱歉,我刚刚没仔细看,您是用的指针,但题目中是要引用,您能不能修改一下您的代码呢{:5_109:}

Cool_Breeze 发表于 2020-3-4 17:27:12

ttyule1 发表于 2020-3-4 16:41
抱歉,我刚刚没仔细看,您是用的指针,但题目中是要引用,您能不能修改一下您的代码呢

C++我不懂哦!

ttyule1 发表于 2020-3-4 17:27:59

Cool_Breeze 发表于 2020-3-4 17:27
C++我不懂哦!

好吧
页: [1]
查看完整版本: 大家帮忙看一下这一道c++的题目