当前位置: 首页 > news >正文

实验3 C语言函数应用编程

实验1

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

批注 2025-10-24 083430

批注 2025-10-24 083430

 

批注 2025-10-24 083713

功能:将分数转化为等级

形参类型:int

返回值类型:字符串

修改后 不会退出程序 会继续运行下面的 并且字符串外应该用''单引号

 

 

实验2

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

 

2

功能:计算n的各数字之和

能 第一种是循环迭代 第二种是递归

 

实验3

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

3

 功能:计算x的n次方

1

 

实验4

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

屏幕截图 2025-10-26 205615

 

实验5

 1 #include <stdio.h>
 2 int func(int n, int m); 
 3 int main() {
 4     int n, m;
 5     int ans;
 6 
 7     while(scanf("%d%d", &n, &m) != EOF) {
 8         ans = func(n, m);  
 9         printf("n = %d, m = %d, ans = %d\n\n", n, m, ans);
10     }
11         
12     return 0;
13 }
14 int func(int n, int m) {
15     if (m < 0 || m > n) return 0;      
16     if (m == 0 || m == n) return 1;      
17     return func(n - 1, m) + func(n - 1, m - 1);  
18 }

屏幕截图 2025-10-26 210225

 1 #include <stdio.h>
 2 int func(int n, int m); 
 3 int main() {
 4     int n, m;
 5     int ans;
 6 
 7     while(scanf("%d%d", &n, &m) != EOF) {
 8         ans = func(n, m);  
 9         printf("n = %d, m = %d, ans = %d\n\n", n, m, ans);
10     }
11         
12     return 0;
13 }
14 int func(int n, int m) {
15     if (m < 0 || m > n) return 0;        
16     if (m == 0 || m == n) return 1;      
17     if (m > n - m) m = n - m;
18     
19     long long result = 1;
20     for (int i = 1; i <= m; i++) {
21         result = result * (n - i + 1) / i;
22     }
23     return (int)result;
24 }

 

实验6

 1 #include <stdio.h>
 2 int gcd(int a, int b, int c);
 3 
 4 int main() {
 5     int a, b, c;
 6     int ans;
 7 
 8     while(scanf("%d%d%d", &a, &b, &c) != EOF) {
 9         ans = gcd(a, b, c);    
10         printf("最大公约数: %d\n\n", ans);
11     }
12     return 0;
13 }
14 
15 int gcd(int a, int b, int c) {
16     int min = a;
17     if (b < min) min = b;
18     if (c < min) min = c;
19     int i;
20     for (i = min; i >= 1; i--) {
21         if (a % i == 0 && b % i == 0 && c % i == 0) {
22             return i;  
23         }
24     }
25     
26     return 1;  
27 }

屏幕截图 2025-10-26 211135

 

实验7

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 void print_charman(int n);
 4 
 5 int main() {
 6     int n;
 7     
 8     printf("Input n: ");
 9     scanf("%d", &n);
10     print_charman(n); 
11     
12     return 0;
13 }
14 
15 void print_charman(int n) {
16     int i;
17     for (i = 0; i < n; i++) {
18         printf(" O    ");
19     }
20     printf("\n");
21     for (i = 0; i < n; i++) {
22         printf("<h>   ");
23     }
24     printf("\n");
25     for (i = 0; i < n; i++) {
26         printf("I I   ");
27     }
28     printf("\n");
29 }

屏幕截图 2025-10-26 212012

 

http://www.hskmm.com/?act=detail&tid=39628

相关文章:

  • 人工智能之编程基础 Python 入门:第一章 Python 的简介和安装
  • P5405 [CTS2019] 氪金手游 题解
  • 杂记选做 #1
  • 20232319 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 2025.10.26 闲话-单位根反演
  • 题解:B4205 [常州市赛 2021] 特殊字符
  • 郭念海 - coder
  • 数据采集与融合技术实践第一次作业
  • ECC 学习笔记
  • 转化漏斗(随笔)
  • Halcon算法——区域生长
  • Windows11文件夹右键-删除多余选项-加快打开速度
  • 20231326《密码系统设计》第五周预习报告
  • 2025年实木家具厂家权威推荐榜:原木/全实木/北美黑胡桃/樱桃木/榫卯工艺/高端定制/全屋整装,烘干/白胚/木蜡油保养工艺深度解析
  • 2025年摘星搜荐怎么样:全面评测摘星AI的功能与优势
  • 实验 2
  • 2025 年 10 月系统门窗十大品牌榜单揭晓,技术研发实力与市场口碑深度解读
  • 【安卓】
  • 2025年TPU厂家权威推荐榜单:TPU加纤,TPU改性生产,专业定制与技术创新实力解析
  • 2025 年 10 月系统门窗十大品牌榜单揭晓,技术核心实力与市场口碑深度解读
  • 【万元奖金】第二届CCF算法能力大赛开始啦!名校云集、名企汇聚,免费参赛!
  • 切空间、切丛与收缩算子
  • 2025年仿石漆厂家推荐排行榜,外墙仿石漆,内墙仿石漆,防霉仿石漆,水包水仿石漆,水包砂仿石漆,耐污仿石漆,自洁仿石漆公司推荐
  • 2025年中央空调主机保养/维修/清洗/维保/维护公司推荐排行榜,水处理维保,物业公司/医院/写字楼/商场中央空调主机维保厂家精选
  • 变盲从为探索:专注听课,深耕实干
  • 2025年新风系统厂家权威推荐榜:电竞酒店/商场别墅/极寒地区全热交换新风系统专业解决方案
  • 2025 年 10 月系统门窗十大品牌榜单揭晓,技术研发实力与市场口碑全景剖析
  • 乱学点东西#1 :二进制警报器
  • 变盲从为探索:专注听课,深耕实操
  • 认真听讲,重新看见课堂价值