函数
一个简单的函数
#include<stdio.h>
void star(void);
int main(void)
{
star();
printf("\nthese are 80 star\n");
star();
return 0;
}
void star(void){
int i=1;
while(i<41){
putchar('*');
i++;
}
}
----------------------------------------
****************************************
these are 80 star
****************************************
返回两个数中比较小的那一个
#include<stdio.h>
int min(x,y);
int main()
{
int a=9,b=8,m;
m=min(a,b);
printf("%d",m);
return 0;
}
int min(x,y){
if(x>y)return y;
else return x;
}
----------------------------------------
8
声明函数类型
#include<stdio.h>
float fun1(float x,float y);
int fun2(int m,int n);
int main(){
float a=7.5,b=8.5;
int c=5,d=6;
printf("%f\n",fun1(a,b));
printf("%d",fun2(c,d));
return 0;
}
float fun1(float x,float y){
return x+y;
}
int fun2(m,n){
return m+n;
}
----------------------------------------
16.000000
11
#include<stdio.h>
double fun(int a,int b);
int main(){
int x,y;
printf("please enter two number:\n");
scanf("%d %d",&x,&y);
printf("%lf",fun(x,y));
return 0;
}
double fun(int a,int b){
return a+b;
}
---------------------------------------
please enter two number:
5 3
8.000000
递归
求一个数的阶乘
#include<stdio.h>
int fun(int a);
int main(){
int x,y;
printf("please enter a number:\n");
scanf("%d",&x);
y=fun(x);
printf("%d!=%d",x,y);
return 0;
}
int fun(int a){
if(a==0||a==1)
return 1;
else
return fun(a-1)*a;
}
---------------------------------------
please enter a number:
5
5!=120
递归既有优点也有缺点。优点是递归为某些编程问题提供了最简单的解 决方案。缺点是一些递归算法会快速消耗计算机的内存资源。另外,递归不 方便阅读和维护。
将一个数倒序输出
#include<stdio.h>
int fun(int a);
int main(){
int x,y,i;
for(i=0;i<2;i++){
printf("please enter a number<1000:\n");
scanf("%d",&x);
y=fun(x);
printf("%d\n",y);
}
return 0;
}
int fun(int a){
int g,s,b;
g=a%10;//个位
s=a/10%10;//十位
b=a/100;//百位
if(a<10)return a;
else if(a<100)return g*10+s;
else if(a<1000) return g*100+s*10+b;
}
------------------------------------
please enter a number<1000:
52
25
please enter a number<1000:
462
264
数组
一维数组
向数组存放10个数并输出
#include<stdio.h>
int main(){
int a[10],i;
for(i=0;i<10;i++){
a[i]=i;
}
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}
----------------------------------------
0 1 2 3 4 5 6 7 8 9
二维数组
3x3数组
#include<stdio.h>
int main(){
int a[3][3],i,j;
printf("3x3array:\n");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
scanf("%d",&a[i][j]);
}
}
printf("--------------\n");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
---------------------------------------
3x3array:
1 1 1
2 2 2
3 3 3
--------------
1 1 1
2 2 2
3 3 3
给数组赋值
一维
#include<stdio.h>
int main(){
int a[10]={1,2,3,8,9,44,52,78,65,66},i;
printf("array:\n");
printf("--------------\n");
for(i=0;i<10;i++){
printf("%d ",a[i]);}
return 0;
}
---------------------------------------
array:
--------------
1 2 3 8 9 44 52 78 65 66
二维
#include<stdio.h>
int main(){
int a[2][3]={{1,2,3},{8,9,44}},i,j;
printf("3x3array:\n");
printf("--------------\n");
for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
---------------------------------------
3x3array:
--------------
1 2 3
8 9 44