1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c语言用指针变量输入数组的长度 C语言之数组的基础练习题(指针变量做函数参数)...

c语言用指针变量输入数组的长度 C语言之数组的基础练习题(指针变量做函数参数)...

时间:2019-03-24 07:05:50

相关推荐

c语言用指针变量输入数组的长度 C语言之数组的基础练习题(指针变量做函数参数)...

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、将输入的数值从小到大进行排列输出:

#includevoid 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、使用指针实现冒泡排序

#includevoid 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、求新入学班级新生的总人数

#includevoid 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;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。