找回密码
 立即注册
首页 业界区 安全 实验3
慷规扣 3 天前
实验任务1

代码
  1. #include <stdio.h>
  2. char score_to_grade(int score);  
  3. int main()
  4. {
  5.     int score;
  6.     char grade;
  7.     while(scanf("%d", &score) != EOF)
  8.         {
  9.         grade = score_to_grade(score);  
  10.         printf("分数: %d, 等级: %c\n\n", score, grade);
  11.     }
  12.     return 0;
  13. }
  14. char score_to_grade(int score)
  15. {
  16.     char ans;
  17.     switch(score/10)
  18.         {
  19.     case 10:
  20.     case 9:   ans = 'A'; break;
  21.     case 8:   ans = 'B'; break;
  22.     case 7:   ans = 'C'; break;
  23.     case 6:   ans = 'D'; break;
  24.     default:  ans = 'E';
  25.     }
  26.     return ans;
  27. }
复制代码
运行截图

1.png

问题

问题1

判断分数对应的等级;int;char
问题2

当输入大于60的一个数时,由于ans='';后面没有break,将继续往下执行,直至switch结束,最后ans='E',所以无论输入什么数输出的结果都是E
实验任务2

代码
  1. #include <stdio.h>
  2. int sum_digits(int n);  
  3. int main()
  4. {
  5.     int n;
  6.     int ans;
  7.     while(printf("Enter n: "), scanf("%d", &n) != EOF)
  8.         {
  9.         ans = sum_digits(n);
  10.         printf("n = %d, ans = %d\n\n", n, ans);
  11.     }
  12.     return 0;
  13. }
  14. int sum_digits(int n)
  15. {
  16.     int ans = 0;
  17.     while(n != 0)
  18.         {
  19.         ans += n % 10;
  20.         n /= 10;
  21.     }
  22.     return ans;
  23. }
复制代码
运行截图

2.png

问题

问题1

计算一个整数各个位数上的数之合
问题2

能;第一种是嵌套调用,第二种是递归调用
实验任务3

代码
  1. #include <stdio.h>
  2. int power(int x, int n);   
  3. int main()
  4. {
  5.     int x, n;
  6.     int ans;
  7.     while(printf("Enter x and n: "), scanf("%d%d", &x, &n) != EOF)
  8.         {
  9.         ans = power(x, n);  
  10.         printf("n = %d, ans = %d\n\n", n, ans);
  11.     }
  12.    
  13.     return 0;
  14. }
  15. int power(int x, int n)
  16. {
  17.     int t;
  18.     if(n == 0)
  19.         return 1;
  20.     else if(n % 2)
  21.         return x * power(x, n-1);
  22.     else
  23.         {
  24.         t = power(x, n/2);
  25.         return t*t;
  26.     }
  27. }
复制代码
运行截图

3.png

问题

问题1

计算x的n次方
问题2

是;
4.jpeg

实验任务4

代码
  1. #include<stdio.h>
  2. int is_prime(int n);
  3. int main()
  4. {
  5.         int n,j;
  6.         printf("100以内的孪生素数:\n");
  7.         for (n = 2,j=0; n <= 98; n++)
  8.         {
  9.                 if (is_prime(n) && is_prime(n + 2))
  10.                 {
  11.                         printf("%d %d\n", n, n + 2);
  12.                         j += 1;
  13.                 }
  14.         }
  15.         printf("100以内的孪生素数共有%d个.\n", j);
  16.         return 0;
  17. }
  18. int is_prime(int n)
  19. {
  20.         int i;
  21.         for (i = 2; i <= n / 2; i++)
  22.         {
  23.                 if (n % i == 0)
  24.                 {
  25.                         return 0;
  26.                 }
  27.         }
  28.         return 1;
  29. }
复制代码
运行截图

5.png

实验任务7

代码

[code]#include#include int print_charman(int n);int main() {        int n;        printf("Enter n: ");        scanf("%d", &n);        print_charman(n);         return 0;}int print_charman(int n){        int i,j,k,l,p=0;        j = 2 * n - 1;        for (i = 1; i

相关推荐

您需要登录后才可以回帖 登录 | 立即注册