前言:
学习函数了,终于把循环学完了,
先就是写一个函数体(这是自建函数吧),比较两个值的大小,输出最大值
这里主要是三目运算符的运算,其他都还记得,
x > y ? x : y //就是x>y,返回x,如果x<y,返回y
#include <stdio.h>
int get_max(int x,int y)
{
return ((x > y) ? x : y); //如果x>y,返回x,不是的话,返回y
}
int main()
{
int a = 0;
int b = 0;
//输入两个函数
scanf("%d %d", &a, &b);
//使用一个变量接收函数返回的最大值
int m = get_max(a,b);
printf("%d", m);
return 0;
}
第二个题目,写一个函数,交换两个整型变量的内容
错误演示
这里不知道这是内置的函数还是什么,居然没有返回值,很奇怪
就是说,我好像知道了
就是说只是改了x,y的值,然后就是a,b的值不变
然后就是我试着就是将int x, int y改成int a, int b,然后还是不行
我好像知道了,就是虽然是一样的字母,但是两个变量不一样,就不一样
void Swap(int x, int y)
{
int z = 0;
z = x;
x = y;
y = z;
}
int main()
{
int a = 0;
int b = 0;
//交换
scanf("%d %d", &a, &b);
printf("交换前:a=%d,b=%d", a, b);
Swap(a, b);
printf("交换后:a=%d,b=%d", a, b);
return 0;
}
这里需要用到指针,然后就是直接改地址,然后他的值也就随着变了,
但是指针我好像忘了,得去复习了,晚上复习,然后就是先写题目吧
不晓得指针格式,我好像懂了
先写一下指针格式
#include <stdio.h>
{
int a = 10;
int* p = &a;
a = 20; //直接改
*p = 30; //通过地址,然后间接的改他的值
return 0;
}
然后就是这样写的,我晓得了
现在就是觉得这个指针的格式好奇怪,先看一下吧,
int* px = &a;
#include <stdio.h>
void Swap(int* px, int* py) //不晓得指针的格式了,我晓得了
{ //就是这里直接传入的参数,然后完整的格式是int* px = &a;
//int* py = &b;
int z = 0; //我知道这是地址,我看看
z = *px;
*px = *py;
*py = z;
}
int main()
{
int a = 0;
int b = 0;
//交换
scanf("%d %d", &a, &b);
printf("交换前:a=%d,b=%d", a, b);
Swap(&a, &b);
printf("交换后:a=%d,b=%d", a, b);
return 0;
}