11.3

函式递回

  1. #include<stdio.h>
  2. void countto10(int)
  3. int main(){
  4. countto3(1);
  5. return 0;
  6. }
  7. //函式递回输出一到三
  8. void countto3(int i){
  9. if(i <= 3) {
  10. printf("%d\n",i);
  11. countto(i+1);
  12. }
  13. }
  1. #include<stdio.h>
  2. void countto1(int);
  3. int main(){
  4. countto1(3);
  5. return 0; //函式递回由三印到一
  6. }
  7. void countto1(int i){
  8. if(i<=3&&i>0){
  9. printf("%d\n",i);
  10. countto1(i-1);
  11. }
  12. }
  1. #include<stdio.h>
  2. void countto1(int);
  3. int main(void){
  4. countto1(1)
  5. return 0;
  6. }
  7. //因为函式递回,印出的仍然是三到一
  8. void countto1(int i){
  9. if (i<=3){
  10. countto1(i+1)
  11. printf("%d\n",i)
  12. }
  13. }
  1. #include<stdio.h>
  2. int sum(int);
  3. int main(){
  4. int n;
  5. printf("输入一个数:");
  6. scanf("%d",&n);
  7. printf("%d",sum(n));
  8. return 0;
  9. //用递回函式计算连续数字的和
  10. }
  11. int sum(int a){
  12. if (a==1){
  13. return 1;
  14. }
  15. return sum(a-1)+a;
  16. }
  1. #include<stdio.h>
  2. int s(int);
  3. int main(){
  4. int n;
  5. printf("上的楼层数为:");
  6. scanf("%d",&n);
  7. printf("%d",s(n));
  8. return 0;
  9. } //用函式递回计算上楼梯方法
  10. int s(int a){
  11. if(a<=2){
  12. return a;
  13. }
  14. return s(a-1)+s(a-2);
  15. }

阵列变数

一群具有相同资料元素集合的资料形态

会用一段连续的记忆体来存储

元素资料形态 阵列变数名称[元素个数]

int var[3] 这个变数叫var,var是个阵列

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<time.h>
  4. int main(){
  5. srand(time(0));
  6. int c1=0,c2=0,c3=0,c4=0,c5=0,c6=0;
  7. int a;
  8. for(a =1;a<=6000;a++){
  9. int num =rand()%6+1;
  10. switch(num){
  11. case 1:c1++;break;
  12. case 2:c2++;break;
  13. case 3:c3++;break;
  14. case 4:c4++;break;
  15. case 5:c5++;break;
  16. case 6:c6++;break;
  17. } //计算掷6000次骰子个点被掷到的次数
  18. }
  19. printf("%d\n",c1);
  20. printf("%d\n",c2);
  21. printf("%d\n",c3);
  22. printf("%d\n",c4);
  23. printf("%d\n",c5);
  24. printf("%d\n",c6);
  25. return 0;
  26. }

==元素资料形态 阵列变数名称[元素个数]={第一个数的值,第二个数的值……,最后一个数的值}

int num[6]={0} 六个数会都被初始化为0

int num[]={0,1,2,3,4,5} 会被默认为六个数

int num[3]={3,5} 点个书会被默认初始化为0

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<time.h>
  4. int main(){
  5. srand(time(0));
  6. int c[6]=0;
  7. int a;
  8. for(a =1;a<=6000;a++){
  9. int num =rand()%6+1;
  10. switch(num){
  11. case 1:c[0]++;break;
  12. case 2:c[1]++;break;
  13. case 3:c[2]++;break;
  14. case 4:c[3]++;break;
  15. case 5:c[4]++;break;
  16. case 6:c[5]++;break;
  17. } //计算掷6000次骰子个点被掷到的次数
  18. }
  19. printf("%d\n",c[0]);
  20. printf("%d\n",c[1]);
  21. printf("%d\n",c[2]);
  22. printf("%d\n",c[3]);
  23. printf("%d\n",c[4]);
  24. printf("%d\n",c[5]);
  25. return 0;
  26. }