返回值 函数名(参数列表)
{
函数体
}
1.功能代码不能写在main函数中.如何改? 只需要将main换个新名字(名字必须唯一)
2.工作当中(实际)的代码不通过scanf获取数据.数据从哪来? 通过参数列表传递数据
3.在功能函数中不能通过printf直接输出结果.需要通过返回值返回
void :没有,它可以修饰参数列表和返回值
注意:1.参数列表可以为空;2.返回值可以没有,如果没有前面写void;
3.返回值最多只能1个,如果需要返回多个暂时使用printf输出
局部变量:定义在函数内部的变量,默认值随机值(崩溃,编译出错)
全局变量:定义在函数外部的变量.不允许使用.不安全
数组: 解决相同类型的多个变量的问题
定义: 类型 数组名[数组长度];.例如 int arr[10];//定义一个整数数组arr,长度为10
注意:数组长度必须是常量.例如10,4+6.不能是变量
数组如果只初始化一部分则剩余部分为0
数组通过下标访问具体的单元,例如arr[3] = 100;.注意下标不要越界arr[表达式];(定义时为长度,表达式使用时为下标)
定义:前面有数据类型
使用:前面没有数据类型
#include <stdio.h>
#include <math.h>
*/
int Max(int a,int b)//a,b已经有值了,相当于下面的三行代码
{
/*int a;
int b;
scanf_s("%d%d", &a, &b);*/
if (a > b)
{
//printf("较大者=%d\n", a);
return a;
}
else
{
//printf("较大者=%d\n", b);
return b;
}
}
int Max3(int a, int b, int c)
{
int d = Max(a, b);//10,50
int e = Max(c,d);//0,30
return e;
}
//求两个数的最大值
int Max1()
{
int a;
int b;
scanf_s("%d%d",&a,&b);
if (a > b)
{
printf("较大者=%d\n",a);
}
else
{
printf("较大者=%d\n",b);
}
return 0;
}
int Min(int a, int b)//a,b形式参数,形参
{
if (a <= b)
{
printf("最小值=%d\n",a);
}
else
{
printf("最小值=%d\n", b);
}
return 0;
}
void Fun()
{
printf("Fun()\n");
}
int main(void)
{
int a = Max3(10,50,30);//测试
printf("%d\n",a);
/*Max(10,20);
Max(100, 20);
Max(200,200);*/
//Min(10,20);//实际参数,实参
//Min(100,100);
//Min(200,20);
//printf("hello\n");
//printf("%d\n",10);
//int a;
//scanf_s("%d",&a);
int b = sqrt(10);//定义变量a接收返回值
printf("%d\n",b);
int c = pow(10,3);
printf("%d\n",c);
//sqrt(100);
//sqrt(50);
return 0;
}
/*
//求n的平方根
int main()
{
int n;
int i;
scanf_s("%d",&n);
for (i = 0; i * i <= n; i++)
{
}
printf("%d\n",i-1);
return 0;
}
*/
#include<stdio.h>
int main()
{
int arr[] = {1,2,3,4,5,6,7,8,9,10};
//数组反转
int tmp;
for (int i = 0, j = 9; i < j; i++, j--)
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
for (int i = 0; i < 10; i++)
{
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
#if 0
int g_a;//全局变量,不允许使用
int main()
{
int a;
int b = 10;
double c = 12.3;
int arr[10];//定义一个整数数组arr,长度为10(10表示该数组有10个整型单元)
//printf("%d\n",a);
//a = 10;
//int brr[a];//error
int brr[10] = {1,2,3,4,5,6,7,8,9,10};
int crr[10] = {1,2,3,4,5};//如果只初始化一部分则剩余部分为0
//int drr[10] = {1,2,3,4,5,6,7,8,9,10,11};//error
brr[3] = 100;
a = 10;
//printf("%d\n",a);
//brr[10] = 20;//越界
//输出brr的所有值
//printf("%d\n",brr);//error
//printf("%d,%d,%d\n",brr[0],brr[1],brr[2]);
for (int i = 0; i < 10; i++)
{
printf("%d ",brr[i]);
}
return 0;
}
#endif
#if 0
//判断n是否为素数,是返回true,不是返回false
bool IsPrimer(int n) //true,false
{
if (n < 2)
return false;
//for (int i = 2; i < n; i++)
for (int i = 2; i <= sqrt(n); i++)
{
if (n % i == 0)
return false;
}
return true;
}
//1+2+...+n
int Sum(int n)
{//int n;scanf_s("%d",&n);
int sum = (1 + n) * n / 2;
return sum;
}
//判断year是否为闰年
bool IsLeapYear(int year)
{
return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
}
int main()
{
for (int i = 2000; i < 2100; i++)
{
if (IsLeapYear(i))
{
printf("%d\n",i);
}
}
/*
if (IsLeapYear(2000))
{
printf("%d是闰年\n",2000);
}
else
{
printf("%d不是闰年\n", 2000);
}
if (IsLeapYear(2001))
{
printf("%d是闰年\n", 2001);
}
else
{
printf("%d不是闰年\n", 2001);
}
if (IsLeapYear(2100))
{
printf("%d是闰年\n", 2100);
}
else
{
printf("%d不是闰年\n", 2100);
}
*/
//int c = Sum(10);//使用的最多
//printf("%d\n",c);
//printf("%d\n",Sum(100));
//printf("%d\n", Sum(1000));
/*for (int i = 1; i < 100; i++)
{
if (IsPrimer(i))
{
printf("%d\n",i);
}
}*/
/*int a = 100;
int b = (int)sqrt(a);
printf("%d\n",b);*/
return 0;
}
#endif