1、交换两个变量的值:
#include
void swap(int *a,int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
void main()
{
int x,y;
int *p_x,*p_y;
printf("请输入两个数:\n");
scanf("%d",&x);
scanf("%d",&y);
p_x=&x;
p_y=&y;
swap(p_x,p_y);
printf("x=%d\n",x);
printf("y=%d\n",y);
}
2、将输入的数值从小到大进行排列输出:
#include
void swap(int *p1, int *p2) /*自定义交换函数*/
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
void exchange(int *pt1, int *pt2, int *pt3) /*三个数由大到小排序*/
{
if (*pt1 < *pt2)
swap(pt1, pt2); /*调用swap函数*/
if (*pt1 < *pt3)
swap(pt1, pt3);
if (*pt2 < *pt3)
swap(pt2, pt3);
}
void main()
{
int a, b, c, *q1, *q2, *q3;
puts("Please input three key numbers you want to rank:");
scanf("%d,%d,%d", &a, &b, &c);
q1 = &a; /*将变量a地址赋给指针变量q1*/
q2 = &b;
q3 = &c;
exchange(q1, q2, q3); /*调用exchange函数*/
printf("\n%d,%d,%d\n", a, b, c);
}
3、将某银行一周的钱收纳汇总
#include /*包含头文件*/
void SUM(int *p,int n) /*自定义函数*/
{
int i,sum=0; /*定义变量*/
for(i=0;i
4、使用指针实现冒泡排序
#include
void order(int *p,int n)
{
int i,t,j;
for(i=0;i*(p+j+1)) /*判断相邻两个元素的大小*/
{
t=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=t; /*借助中间变量t进行值互换*/
}
printf("排序后的数组:");
for(i=0;i
5、按字母顺讯排序
#include
#include
sort(char *strings[], int n) /*自定义排序函数*/
{
char *temp;
int i, j;
for (i = 0; i < n; i++)
{
for (j = i + 1; j < n; j++)
{
if (strcmp(strings[i], strings[j]) > 0) /*比较两个字符串的大小*/
{
temp = strings[i];
strings[i] = strings[j];
strings[j] = temp; /*如果前面字符串比后面的大,则互换*/
}
}
}
}
void main()
{
int n = 12;
int i;
char **p; /*定义字符型指向指针的指针*/
char *month[] =
{
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
};
p = month;
sort(p, n); /*调用排序函数*/
printf("排序后的12月份如下:\n");
for (i = 0; i < n; i++)
printf("%s\n", month[i]); /*输出排序后的字符串*/
}
找出二维数组中每行最大的数值进行求和
#include
#define N 4
void max(int (*a)[N],int m) /*自定义min函数,求二维数组中每行最小元素*/
{
int value,i,j,sum=0;
for(i=0;ivalue) /*判断其他元素是否小于value的值*/
value=*(*(a+i)+j); /*把比value大的数重新赋给value*/
printf("第%d行:最大数是:%d\n",i,value);
sum=sum+value;
}
printf("\n");
printf("每行中最大数相加之和是:%d\n",sum);
}
void main()
{
int a[3][N],i,j;
int (*p)[N];
p=&a[0];
printf("please input:\n");
for(i=0;i<3;i++)
for(j=0;j
7、求新入学班级新生的总人数
#include
void SUM(int *p,int n)
{
int i,sum=0;
for(i=0;i
8、判断两个数值的大小
#include
void swap(int *x1,int *x2)
{
int t;
t=*x1;
*x1=*x2;
*x2=t;
}
void order(int *a,int *b)
{
if(*a>*b)
swap(a,b);
}
int main()
{
int x,y;
printf("输入值:\n");
scanf("%d,%d",&x,&y);
printf("x=%d,y=%d\n",x,y);
order(&x,&y);
printf("x=%d,y=%d\n",x,y);
return 0;
}