封装函数的数据交换
#include <stdio.h>
#include <stdlib.h>
void ChangeData(int *data1,int *data2)
{
int tmp;
tmp = *data1;
*data1 = *data2;
*data2 = tmp;
}
int main()
{
int data1 = 1;
int data2 = 2;
ChangeData(&data1,&data2);
printf("data1:%d data2:%d\n",data1,data2);
system("pause");
return 0;
}
输入三个数abc,要求不管怎么输入,在输出的时候,abc就是由大到小顺序输出,用函数封装实现
#include <stdio.h>
#include <stdlib.h>
void ChangeData(int *a,int *b,int *c)
{
int Max;
int tmp;
Max = *a;
if(Max < *b){
tmp = Max;
Max = *b;
*b = tmp;
}
if(Max < *c){
tmp = Max;
Max = *c;
*c = tmp;
}
*a = Max;
if(*b < *c){
tmp = *b;
*b = *c;
*c = tmp;
}
}
int main()
{
int a;
int b;
int c;
while(1){
scanf("%d %d %d",&a,&b,&c);
printf("交换前:%d %d %d\n",a,b,c);
ChangeData(&a,&b,&c);
printf("交换后:%d %d %d \n",a,b,c);
}
system("pause");
return 0;
}
通过指针访问数组
#include <stdio.h>
#include <stdlib.h>
void InitArray(int *parray,int size)
{
int i;
for(i=0;i<size;i++){
printf("输入第%d个元素\n",i+1);
scanf("%d",parray);
parray++;
}
}
void Printf_2_Array(int array[],int size)
{
int i;
for(i=0;i<size;i++){
printf("\n Array:%d ",array[i]);
}
}
void PrintfArray(int *parray,int size)
{
int i;
for(i=0;i<size;i++){
printf("输出第%d个元素:%d\n",i+1,*parray);
parray++;
}
}
int main()
{
int array[5];
int size = sizeof(array)/sizeof(array[0]);
InitArray(&array[0],size);
Printf_2_Array(array,size);//数组下标访问
PrintfArray(&array[0],size);//通过指针访问数组
system("pause");
return 0;
}