第二次作业
Posted zhaoxiZhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二次作业相关的知识,希望对你有一定的参考价值。
#include<stdio.h> int main() {void swap(int*n,int*m);//声明函数 int a,b; scanf("%d%d",&a,&b); swap (&a,&b); printf("%d,%d",a,b);//输出交换后的结果 } void swap (int*n,int*m)//函数名为swap 形参是mn的整形变量 { int k;//定义新变量k 其作用为交换变量 k=*n; *n=*m; *m=k; }
1456 2
2,1456
--------------------------------
Process exited after 20.13 seconds with return value 0
请按任意键继续. . .
总结
编译代码时要规范书写,不然会出现很多错误,很麻烦 例如取址符的添加
取变量时要注意为整形变量
swap的作用为交换变量的值
*n和*m的交换要注意不要弄返
以后要多加练习 运行代码 目前还不熟练
作业2:void swap(int *p,int *q){int *m;*m=*p;*p=*q;*q=*m;}为何无法实现交换?
如果想交换两数的地址,根据已经学过的知识我们可以尝试下面的方法:
int a,b,*p,*q,t; p=&a; q=&b; { t=p; p=q; q=t; }
而*m 代表m指针 而在c语言当中 指针变量同普通变量一样,使用之前不仅要定义说明,而且必须进行初始化,指针的 初始值必须是一个地址,决不允许赋予任何其他数据, 通常是一个数据的地址或地址 变量或空指针。 指针变量未被初始化,指针变量就不会被分配存储空间。在程序中如果使用了未被分配 空间的指针,就会出现难以查找的错误。因此 题目给出的例子是无法进行交换的。
void swap(int *p,int *q){int *m;m=p;p=q;q=m;}为何无法实现交换?
在上述程序中很明显 它只把放地址变量的单元交换了,这里也不叫交换了地址,变量的地址还是原来的,实参是没有发生变化的,因此无法进行交换。
作业3:构建comp函数,实现两个整数比较,比较大的值通过返回值返回给main。要求comp的参数和返回值都是指针类型数据。
#include<stdio.h> int main() { int comp(int *x,int *y); int a;int b; int *p1;int *p2; scanf("%d,%d",&a,&b); printf("%d\\n",comp(&a,&b)); } int comp(int *x,int *y) { if(*x>*y) return *x;else return *y; }
总结:以上程序实现了比较两个整数的大小,并且用到了指针类型数据。
在编写代码时 一定要注意格式的要求,例如标点,不然改起来很麻烦
在运行程序时 要先编译 后运行, 养成良好的习惯 便于检查错误
在c语言的学习中 要善于动脑 多敲代码 争取更加熟练
要多积累经验 例如 运行程序时 的 错误提示 要多积累 方便以后的学习
以上是关于第二次作业的主要内容,如果未能解决你的问题,请参考以下文章