重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先要捋顺一下,先看第一段程序。这段程序的目的就是为了将两个变量的数值进行交换。此时要明白指针的使用方法,这里的交换函数是void swap(int x, int y),即无返回值的函数,函数传递的参数是int x和int y,这两个东西是什么呢?这两个东西是定义的引用,而这个我们就可以理解为是两个用来存储传递进来的参数的地址的变量(这么说可能有点乱,其实就是将调用该函数是时传递进来的变量的地址给这两个参数),所以如果在这个swap函数中对这两个参数操作时,实际上就是对传递进来的那两个变量进行操作。至于你问的关于整型的问题,这个也很好理解,在c语言里地址就是整型的,而这两个变量定义的时候也是int整型的,所以无论是地址还是值都是整型的,而又因为*a和*b是一个指针指向的值,所以*a、*b是整型,而a、b是指针的地址,所以也是整型。
创新互联专注于峰峰矿企业网站建设,成都响应式网站建设公司,商城网站开发。峰峰矿网站建设公司,为峰峰矿等地区提供建站服务。全流程按需策划设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
接下来看你第二段程序(你自己写的这个):
看程序前请仔细查看关于函数方面的资料,至于你这个return为什么是错的这个问题其实很简单,首先要了解一个函数的定义,定义函数简单的可以分为有返回值和无返回值的,有返回值的定义类似这样
int abc();
float bcd();
如上所示,函数名什么的都好理解,函数名前面的"int"和"float"是指函数返回的类型,即你这个函数在执行完之后需要用return语句返回一个值,而这个返回类型就是指这个返回值的类型。
还有一种是不需要返回值的,即
void abc();
void cde();
这类函数在执行完成后不需在最后添加return语句来返回值,如果添加了也用不了。
而你写的这个函数定义的是
int swap(int x,inty)
这里声明的是一个需要返回整型变量的函数,而这个函数里你的返回值语句return后没有跟任何变量或值,程序不知道你返回的是什么东西,所以会报错,这里一般都会填写return 0;表示程序执行完成。当然这个0也可以换成整型的变量。
最后说一下你这个程序,你这个程序在执行完成后是不会将需要交换的变量a和b的值进行交换的。这个关系到形参和实参的概念,请仔细查看书籍或看一些例子,你这个只是将形参的值交换了,真正的需要交换的值不会改变,也就是说你只是将a和b的两个值复制了一份,然后将复制了的那个交换了,当swap函数完成后又将复制了的那份删除掉了,所以说,不管怎样最初的a和b都没有受到任何影响。
#include stdio.h
void swap(int *p, int *q);//用传地址的方法交换
void main()
{
int i, j;
scanf("%d%d", i, j);//从键盘输入两个交换的数
swap(i, j);//传入i,j的地址
printf("i = %d, j = %d\n", i, j);//输出交换后的两个值
}
void swap(int *p, int *q)
{
int temp;//定义临时变量 存放中间值
temp = *p;
*p = *q;
*q = temp;
}
注意:不能直接写void swap(int i, int j);
因为那只是临时变量,函数调用完后,便释放空间,两个值并没有交换。
求一个C语言程式题:编写一个函式SWAP()实现交换两个数位置的功能 #include stdio.h
void swap(int *p, int *q);用传地址的方法交换
void main()
{
int i, j;
scanf("%d%d", i, j);从键盘输入两个交换的数
swap(i, j);传入i,j的地址
printf("i = %d, j = %d\n", i, j);输出交换后的两个值
}
void swap(int *p, int *q)
{
int temp;定义临时变数 存放中间值
temp = *p;
*p = *q;
*q = temp;
}
注意:不能直接写void swap(int i, int j);
因为那只是临时变数,函式呼叫完后,便释放空间,两个值并没有交换。
编写一个C语言程式,求两数之积
#include stdio.h
int main(){
int a=67, b=82;
printf("sum=%d\r\n", a+b);
return 0;
}
用C语言 编写一个函式求两个数的和
#includestdio.h
int add(int a,int b)
{
return a+b;
}
main()
{
int a,b;
scanf("%d %d",a,b);
printf("a+b=%s",add(a,b));
}
c语言程式设计题:写一个函式,功能是交换两个实数变数的值。
void f(double *a,double *b){ double t=*a; *a=*b; *b=t;}
编写一个C语言程式,其功能是A
关键是条件判断
if((n%7==0 || n%11==0) !(n%7==0 n%11==0))
#include stdio.h
#include conio.h
int main()
{
int n;
for(n=1;n=1000;n++)
{
if((n%7==0 || n%11==0) !(n%7==0 n%11==0))
printf("%d ",n);
}
getch();
return 0;
}
用swap交换两个阵列的c语言程式
亲测有效,形式引数必须为指标,实际引数为两个阵列首地址(阵列名即首地址)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;i5;i++)printf("%d",x[i]);printf("\r\n",x[i]);for(i=0;i5;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;}}
c语言程式编写函式实现两个数中的较小者.
#includestdio.h int min(int a, int b) { return a b ? a : b;}void main() { int x,y,z; printf("请输入两个数:\n"); scanf("%d%d",x,y); z = min(x, y); printf("min = %d\n", z);}
C语言程式 写一个函式,将字串反序
char* reverse(char *str)
{
char tmp;
int i,n;
if (str == NULL)
{
return 0;
}
n=strlen(str);
for(i=0;in/2;i++)
{
tmp = str[i];
str[i] = str[n-i-1];
str[n] = tmp;
}
return str;
}
c语言考试。问编写一个函式,求两个数的和?
#includestdio.h
main()
{
int a,b,sum;
printf("请输入两个数字:");
scanf("%d %d",a,b);
sum=a+b;
printf("%d",sum);
}
希望对你有帮助~~
麻烦写下C语言程式。题目:编写一个求三个数的平均值函式。
float func(int a,int b,int c)
{
return (a+b+c)/3.0;
}
#includestdio.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 %d\n", a, b);
return 0;
}
swap函数一般是一个程序员自定义函数。通常是实现两个变量数值的交换。
1.swap1(x,y);
printf("swap1: x:%d,y:%d\n",x,y);//形参传值,不能交换,实际传过去是拷贝的一份,没改变主函数中x,y。
2.swap2(x,y);
printf("swap2: x:%d,y:%d\n",x,y);//不能交换,函数中只是地址交换了下,地址指向的内容没有交换。
3.swap3(x,y);
printf("swap3: x:%d,y:%d\n",x,y);//能交换,地址指向的内容进行了交换。
扩展资料
C语言是一门通用计算机编程语言,广泛应用于底层开发。
C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
参考资料C语言_百度百科