当前位置:   article > 正文

学习C语言第12天(数组练习)

学习C语言第12天(数组练习)

1.走台阶问题

  1. 设一个函数fit(n)是求n阶台阶有几种走法
  2. 第一步迈1个台阶 那有fit(n-1)种走法
  3. 第一步迈连个台阶 有fit(n-2)种走法
  4. 所以n阶台阶一共有fit(n-1)+fit(n-2)种走法
  5. 斐波那契数列
  6. int fit(int n)
  7. {
  8. if (n <= 2)
  9. return n;
  10. else
  11. return fit(n - 1) + fit(n - 2);
  12. }
  13. int main()
  14. {
  15. int n = 0;
  16. scanf("%d",&n);
  17. int m = fit(n);
  18. printf("%d",m);
  19. return 0;
  20. }

2.序列中删除指定数字

  1. int main()
  2. {
  3. int n = 0;
  4. int i = 0;
  5. scanf("%d",&n);
  6. int arr[50] = {0};
  7. for (i = 0; i < n; i++)
  8. {
  9. scanf("%d",&arr[i]);
  10. }
  11. int del = 0;
  12. scanf("%d",&del);
  13. int j = 0;
  14. for (i = 0; i < n; i++)
  15. {
  16. if (arr[i] != del)
  17. {
  18. arr[j++] = arr[i];//先用后加加
  19. }
  20. }
  21. for (i = 0; i < j; i++)
  22. {
  23. printf("%d",arr[i]);
  24. }
  25. return 0;
  26. }

3.最高分最低分之差
 

  1. int main()
  2. {
  3. int n = 0;
  4. scanf("%d",&n);
  5. int arr[50] = { 0 };
  6. int i = 0;
  7. for (i = 0; i < n; i++)
  8. {
  9. scanf("%d",&arr[i]);
  10. }
  11. int max = arr[0];
  12. int min = arr[0];
  13. for (i = 1; i < n; i++)
  14. {
  15. if (arr[i] > max)
  16. {
  17. max = arr[i];
  18. }
  19. }
  20. for (i = 1; i < n; i++)
  21. {
  22. if (arr[i] < min)
  23. {
  24. min = arr[i];
  25. }
  26. }
  27. int a = max - min;
  28. printf("%d",a);
  29. return 0;
  30. }

4.字母大小写转换

  1. int main()
  2. {
  3. char ch = 0;
  4. //scanf读取成功返回读取数据的个数,读取失败返回EOF
  5. while (scanf("%c", &ch)==1)
  6. {
  7. if (ch >= 'a' && ch <= "z")
  8. {
  9. printf("%c\n", ch - 32);
  10. }
  11. else
  12. printf("%c\n", ch + 32);
  13. getchar();//把\n去掉
  14. }
  15. return 0;
  16. }

5.判断是不是字母

  1. int main()
  2. {
  3. char ch = 0;
  4. //%c前面加一个空格,跳过下一个字符之前的所有空白字符
  5. while (scanf(" %c", &ch) == 1)
  6. {
  7. if (ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z')
  8. {
  9. printf("%c 是\n",ch);
  10. }
  11. else
  12. printf("%c bushi\n",ch);
  13. getchar();
  14. }
  15. return 0;
  16. }

6.判断最高分

  1. //判断最高分
  2. int main()
  3. {
  4. int n = 0;
  5. int max = 0;
  6. int i = 0;
  7. for (i = 1; i < 4; i++)
  8. {
  9. scanf("%d",n);
  10. if (n > max)
  11. max = n;
  12. }
  13. printf("%d",max);
  14. return 0;
  15. }

7.变种水仙花

把任意数字从中间拆分拆分后的乘积之和等于自身,则是一个水仙花

例如:655=6*55+65*5

  1. int main()
  2. {
  3. int i = 0;
  4. for (i = 10000; i <= 99999; i++)
  5. {
  6. int sum = 0;
  7. int j = 0;
  8. for (j = 1; j <= 4; j++)
  9. {
  10. int k = (int)pow(10, j);//求次方
  11. sum += i / k + i % k;
  12. }
  13. if (sum == i)
  14. printf("%d",i);
  15. }
  16. return 0;
  17. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/918355
推荐阅读
相关标签
  

闽ICP备14008679号