11.3
函式递回
#include<stdio.h>void countto10(int)int main(){countto3(1);return 0;}//函式递回输出一到三void countto3(int i){if(i <= 3) {printf("%d\n",i);countto(i+1);}}
#include<stdio.h>void countto1(int);int main(){countto1(3);return 0; //函式递回由三印到一}void countto1(int i){if(i<=3&&i>0){printf("%d\n",i);countto1(i-1);}}
#include<stdio.h>void countto1(int);int main(void){countto1(1)return 0;}//因为函式递回,印出的仍然是三到一void countto1(int i){if (i<=3){countto1(i+1)printf("%d\n",i)}}
#include<stdio.h>int sum(int);int main(){int n;printf("输入一个数:");scanf("%d",&n);printf("%d",sum(n));return 0;//用递回函式计算连续数字的和}int sum(int a){if (a==1){return 1;}return sum(a-1)+a;}
#include<stdio.h>int s(int);int main(){int n;printf("上的楼层数为:");scanf("%d",&n);printf("%d",s(n));return 0;} //用函式递回计算上楼梯方法int s(int a){if(a<=2){return a;}return s(a-1)+s(a-2);}
阵列变数
一群具有相同资料元素集合的资料形态
会用一段连续的记忆体来存储
元素资料形态 阵列变数名称[元素个数]
int var[3] 这个变数叫var,var是个阵列
#include<stdio.h>#include<stdlib.h>#include<time.h>int main(){srand(time(0));int c1=0,c2=0,c3=0,c4=0,c5=0,c6=0;int a;for(a =1;a<=6000;a++){int num =rand()%6+1;switch(num){case 1:c1++;break;case 2:c2++;break;case 3:c3++;break;case 4:c4++;break;case 5:c5++;break;case 6:c6++;break;} //计算掷6000次骰子个点被掷到的次数}printf("%d\n",c1);printf("%d\n",c2);printf("%d\n",c3);printf("%d\n",c4);printf("%d\n",c5);printf("%d\n",c6);return 0;}
==元素资料形态 阵列变数名称[元素个数]={第一个数的值,第二个数的值……,最后一个数的值}
int num[6]={0} 六个数会都被初始化为0
int num[]={0,1,2,3,4,5} 会被默认为六个数
int num[3]={3,5} 点个书会被默认初始化为0
#include<stdio.h>#include<stdlib.h>#include<time.h>int main(){srand(time(0));int c[6]=0;int a;for(a =1;a<=6000;a++){int num =rand()%6+1;switch(num){case 1:c[0]++;break;case 2:c[1]++;break;case 3:c[2]++;break;case 4:c[3]++;break;case 5:c[4]++;break;case 6:c[5]++;break;} //计算掷6000次骰子个点被掷到的次数}printf("%d\n",c[0]);printf("%d\n",c[1]);printf("%d\n",c[2]);printf("%d\n",c[3]);printf("%d\n",c[4]);printf("%d\n",c[5]);return 0;}
