swap函数实现两个数交换 C++中 写一个swap函式 用来交换两个不同大小的阵列, 怎么用传入指标实现?
C++中 写一个swap函式 用来交换两个不同大小的阵列, 怎么用传入指标实现?
C++中 写一个swap函式 用来交换两个不同大小的阵列, 怎么用传入指标实现?
#include <stdio.h>
#include <stdlib.h>
void swap(void** a, void** b)
{
void* temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int* array1 = new int[10];
for(int i=0;i<10;i++)
array1[i] = i;
int* array2 = new int[20];
for(int i=0;i<20;i++)
array2[i] = i+10;
swap((void**)&array1,(void**)&array2);
for(int i=0;i<20;i++)
printf("%d ",array1[i]);
putchar(10);
for(int i=0;i<10;i++)
printf("%d ",array2[i]);
putchar(10);
system("pause");
}
用swap函式不用指标怎么样实现两个数的交换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
void swap(int* x, int* y)
{
int t = *x;
*x = *y;
*y = t;
return;
}
int main()
{
int a = 3, b = 4;
swap(&a,&b);
printf("%d %dn", a, b);
return 0;
}
编写一个程式,输入任意两个数后交换输出,用函式和指标实现。
希望对你有帮助!
指标和函式实现
#include<stdio.h>
int swap(int *p,int *q)
{ int t;
t=*p; *p=*q; *q=t;
}
main()
{ int a=5,b=4,*p,*q;
p=&a; q=&b;
swap(p,q);
printf("a=%d b=%d",a,b);
}
一般的方法:
#include<stdio.h>
int main(void)
{ int a,b,c; scanf("%d %d",&a,&b);
c=a;
a=b;
b=c;
printf("%d %d",a,b);
return 0;
}
用c++编写一个程式,用指向函式的指标实现求两个实数中的较大値和较小值
#include<iostream>
using namespace std;
float max(float x,float y)
{
return(x>y?x:y);
}
void main()
{
float (*ptr)(float, float);
float a,b,c;
ptr=max;
cin>>a>>b;
c=(*ptr)(a,b);
cout<<"a="<<a<<",b="<<b<<",max="<<c;
}

编写一个交换变数值的函式,利用该函式交换阵列a和阵列b中的对应元素值。要求尽量用指标的方法实现。阵列a
#include <stdio.h>
void Swap(int* &x, int* &y)
{
int* temp = x;
x = y;
y = temp;
}
void main()
{
int aa[10] = {0};
int bb[10] = {0};
int *a, *b;
a = aa;
b = bb;
int i, anum, bnum;
printf("阵列a的元素个数:");
scanf("%d", &anum);
printf("输入阵列a:n");
for (i = 0; i < anum; i++)
{
scanf("%d", &aa[i]);
}
printf("阵列b的元素个数:");
scanf("%d", &bnum);
for (i = 0; i < bnum; i++)
{
scanf("%d", &bb[i]);
}
Swap(a, b);
printf("输入阵列a:n");
for (i = 0; i < bnum; i++)
{
printf("%d ", a[i]);
}
printf("n输入阵列b:n");
for (i = 0; i < anum; i++)
{
printf("%d ", b[i]);
}
}
实现两个数交换void swap(int *x, int *y) 用指标
#include<stdio.h>
void swap(int *x, int *y)
{int t;
t=*x; *x=*y; *y=t;
}
int main()
{int a=123,b=456;
printf("First: a=%d b=%dn",a,b);
swap(&a,&b);
printf("Second: a=%d b=%dn",a,b);
return 0;
}
用matlab写一个比较两个数大小的函式?
将两个阵列成一个1X2矩阵a,则大的值为a_max=max(a),小的值a_min=min(a).
对于很多资料,除了想找出最大值,最小值,还可能想知道最大值是那一个位置,首先将这些资料赋值给一个单行或单列矩阵a,[a_max n]=max(a),[a_min n]=min(a). 楼上直接抹杀了MATLAB的优势,而MATLAB在编写MAX或MIN函式时,应该就是采用C语言,和楼上的那种编写方式。
c语言 编写一个使用指标的c函式,交换阵列a和阵列b中的对应元素
#include<stdio.h>
int main()
{
int Ii = 0, Itemp;
int array_a[5] = {1,2,3,4,5};
int array_b[5] = {6,7,8,9,0};
int *a,*b;
a=array_a;
b=array_b;
while( Ii < 5 )
{
Itemp = *(a + Ii);
*(a + Ii) = *(b + Ii);
*(b + Ii) = Itemp;
Ii ++;
} Ii=0;
while(Ii < 5) 交换后的a
{
printf("%dt",array_a[Ii]);
Ii ++; }
printf("n");
Ii = 0;
while(Ii < 5) 交换过的b
{
printf("%dt",array_b[Ii]);
Ii ++;
}
}
请高手用C语言中的指标函式帮我编写一个10个数的阵列排列大小的程式! 谢谢!
#include<stdio.h>
void main()
{
int i,num;
void sort(int a[],int n);
int *a=new int[num];动态分配阵列
sort(a,num);
}
void sort(int a[],int n)
{
int i,j,min,temp;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
{
min=i;
for(j=i+1;j<n;j++)
{
if(a[min]>a[j])
{
min=j;
}
}
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
for(i=0;i<n;i++)
{
printf("%3d",a[i]);
}
printf("n");
}
c语言怎样交换两个阵列 用swap函式
void swap_array(int *pa,int *pb);
main(){
int x[]={0,1,2,3,4};
int y[]={5,6,7,8,9};
swap_array(x,y);
int i;
for(i=0;i<5;i++)
printf("%d",x[i]);
printf("rn",x[i]);
for(i=0;i<5;i++)
printf("%d",y[i]);
scanf("%d",&i);
}
void swap_array(int *pa,int *pb){
int n;
n= sizeof(pa);
int c;
int i;
for(i=0;i<=n;i++){
c=*pa;
*pa=*pb;
*pb=c;
++pa;
++pb;}
}