//返回值类型
类型标识符 函数名(形式参数) //函数头 head
{
//函数体 -- body
声明部分
语句部分
}
类型标识符 --- 写数据类型的 --- 表示的函数处理完之后,要带出的结果的类型 ---
体现函数功能 --- 命名规则 符合标识符命名规则
形式参数 --- 用来接受 传递给函数中的数据的
就是完成函数对应功能的代码
语法:
函数名(实际参数)
add(a,b); //1.函数调用 语句
result = add(a,b) + 3; //2.函数调用表达式
printf("ret = %d\n",add(1,2)); //3.充当别的函数的参数
1.形参 和 实参
一一对应
个数相同
类型匹配
顺序一致
2.函数不需要输入数据,此时形参可以设计为void 表示不需要参数
3.返回值类型
如果函数不需要带出什么结果,此时返回值类型 设计为 void
4.返回值类型
没写
此时 默认为 int类型
5.返回值类型 与 要带出的结果值的类型 可以不一致
但是 最终,以 返回值类型 为准
6. main函数
程序的入口函数
7. 从调用关系上
main 函数 -- 主调函数
其它函数 -- 被调函数
8. 函数定义 可以放到 main函数后面
但是
需要在使用之前,做 函数声明
函数声明写法 --- 将函数头复制 + 分号
#include
void printArray(int a[],int len)
{
int i = 0;
for(i = 0;i < len;i++)
{
printf("%d ",a[i]);
}
putchar('\n');
}
int main(void)
{
int a[] = {1,2,3,4,5,6,7,8,9,10};
int len = sizeof(a) / sizeof(a[0]);
printArray(a,len);
int b[] = {1,2,3,4};
len = sizeof(b) / sizeof(b[0]);
printArray(b,len);
return 0;
}
#include
int bisection(int a[],int len,int n)
{
int c = 0;
int be = 0;
int en = len - 1;
int mid = 0;
while(en > be)
{
mid = (en + be)/2;
if(a[mid] > n)
{
en = mid-1;
}else if(a[mid] < n)
{
be = mid + 1;
}else
{
return 1;
}
}
return 0;
}
int main(void)
{
int a[] = {1,2,3,4,5,6,7,8,9,10};
int len = sizeof(a) / sizeof(a[0]);
int n = 0;
scanf("%d",&n);
if(bisection(a,len,n))
{
printf("find\n");
}else
{
printf("not find\n");
}
return 0;
}
#include
void bubbling(int a[],int len)
{
int i = 0;
int j = 0;
int n;
for(i = len -1;i > 0;i--)
{
for(j = 0;j < i;j++) //每排出一个,减少一次比较的次数
{
if(a[j] > a[j+1])
{
n = a[j];
a[j] = a[j+1];
a[j+1] = n;
}
}
}
}
void printArray(int a[],int len)
{
int i = 0;
for(i = 0;i < len;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
int main(void)
{
int a[] = {2,4,6,8,1,3,5,7,9,10};
int len = sizeof(a) / sizeof(a[0]);
bubbling(a,len);
printArray(a,len);
return 0;
}
#include
void choiceSort(int a[],int len)
{
int i = 0;
int j = 0;
int n;
for(i = 0;i a[j])
{
n = a[i];
a[i] = a[j];
a[j] = n;
}
}
}
}
void printArray(int a[],int len)
{
int i = 0;
for(i = 0;i < len;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
int main(void)
{
int a[] = {2,4,6,8,1,3,5,7,9,10};
int len = sizeof(a) / sizeof(a[0]);
choiceSort(a,len);
printArray(a,len);
return 0;
}
#include
void insert(int a[],int len)
{
int i = 0;
int j = 0;
int n;
for(i = 1;i < len;i++)
{
n = a[i];
j = i;
while(j > 0 && n < a[j-1])
{
a[j] = a[j-1];
j--;
}
a[j] = n;
}
}
void printArray(int a[],int len)
{
int i = 0;
for(i = 0;i < len;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
int main(void)
{
int a[] = {2,4,6,8,1,3,5,7,9,10};
int len = sizeof(a) / sizeof(a[0]);
insert(a,len);
printArray(a,len);
return 0;
}
#include
int maxOfArray(int a[],int len)
{
int max = 0;
int i;
for(i = 0;i < len;i++)
{
if(max < a[i]);
max = a[i];
}
return max;
}
int main(void)
{
int a[] = {1,2,3,4,5,6,7,8,9};
int len = sizeof(a) / sizeof(a[0]);
printf("%d\n",maxOfArray(a,len));
return 0;
}
#include
int prime(int a)
{
int n1 = 0;
int i = 0;
for(i = 2;i < a;i++)
{
if(a % i == 0)
{
break;
}
}
if(i < a)
{
n1 = a;
}
return n1;
}
int main(void)
{
int a;
int i = 0;
int prime_num;
#if 1
printf("ALL prime is:\n");
for(i = 1;i < 100;i++)
{
prime_num = prime(i);
if(prime_num == 0)
{
printf("%d\n",i);
}
}
#endif
#if 0
scanf("%d",&a);
int n1;
prime_num = prime(a);
if(prime_num == 0)
{
printf("is prime\n");
}else
{
printf("not prime\n");
}
#endif
return 0;
}
#include
void reverseArray(int a[],int len)
{
int i = 0;
int j = len -1;
while(i < j )
{
int t = a[j];
a[j] = a[i];
a[i] = t;
i++;
j--;
}
}
void printArray(int a[],int len)
{
int i = 0;
for(i = 0;i < len;++i)
{
printf("%d ",a[i]);
}
putchar('\n');
}
int main(void)
{
int a[] = {1,2,3,4,5,6,7,8,9,10};
int len = sizeof(a) / sizeof(a[0]);
reverseArray(a,len);
printArray(a,len);
return 0;
}
#include
int leapyear(int y)
{
return y%100!=0&&y%4==0 || y%400==0;
}
int getdays(int y,int m)
{
int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
return m == 2? month[m-1] + leapyear(y):month[m-1];
}
int main(void)
{
int y,m;
scanf("%d%d",&y,&m);
printf("month days = %d\n",getdays(y,m));
return 0;
}
#if 0
int day(int y,int m)
{
int n = 0;
if(m < 1 || m >12)
{
return -1;
}
if(m == 2)
{
if(y%100 != 0 && y%4 == 0 || y%400 == 0)
{
n = 2;
}else
{
n = 3;
}
}else if(m == 4 ||m == 6 || m == 9 || m == 11)
{
n = 4;
}else
{
n = 5;
}
return n;
}
int main(void)
{
int days;
int y,m;
int p;
scanf("%d%d",&y,&m);
days = day(y,m);
if(days == -1)
{
printf("error\n");
}else if(days == 2)
{
p = 28;
printf("days = %d\n",p);
}else if(days == 3)
{
p = 29;
printf("days = %d\n",p);
}else if(days == 4)
{
p = 30;
printf("days = %d\n",p);
}else
{
p = 31;
printf("days = %d\n",p);
}
return 0;
}
#