首页 > 其他分享 >实验3

实验3

时间:2024-10-30 12:59:35浏览次数:1  
标签:return int ans char score 实验 printf

任务1

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

 

 

 

 

 

 

问题1: 函数score_to_grade功能:按照分数范围给分数打上等级

问题2:若无break,则只能在成绩为90-100分时输出ABCDE,其他不输出

 

任务2

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

 

 

问题1:求数字所有位上的数字之和

问题2:能实现同等效果,原代码为循环结构,改后为判断结构

任务3

 1 #include <stdio.h>
 2 int power(int x, int n); // 函数声明
 3 int main() {
 4     int x, n;
 5     int ans;
 6     while (printf("Enter x and n: "), scanf_s("%d%d", &x, &n) != EOF) {
 7         ans = power(x, n); // 函数调用
 8         printf("n = %d, ans = %d\n\n", n, ans);
 9     }
10     return 0;
11 }
12 // 函数定义
13 int power(int x, int n) {
14     int t;
15     if (n == 0)
16         return 1;
17     else if (n % 2)
18         return x * power(x, n - 1);
19     else {
20         t = power(x, n / 2);
21         return t * t;
22     }
23 }

 问题1:函数power的作用为计算x的n次幂

问题2:是递归函数   n=0时x^n=0,n>0时x^n=x*x^(n-1)

任务4

 

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

任务5

 

 

 1 #include <stdio.h>
 2 int move(int n, char from, char to);
 3 int hanoi(int n, char A, char C, char B);
 4 int num=0;
 5 int main() {
 6     int n;
 7     
 8     while (scanf_s("%d", &n) != EOF) {
 9         hanoi(n, 'A', 'C', 'B');
10         printf("一共移动了%d次\n",num );
11     }
12     return 0;
13 }
14 int move(int n, char from, char to) {
15     printf("%d: %c --> %c\n", n, from, to); num++;
16 }
17 int hanoi(int n, char A, char C, char B) {
18     if (n == 1) {
19         move(1, A, C);
20        
21         return;
22     }
23     else {
24         hanoi(n - 1, A, B, C); 
25         move(n, A, C); 
26         hanoi(n - 1, B, C, A);
27     }
28 }

 任务6

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

 任务7

 

 

#include <stdio.h>
void print_charman(int n);
int main()
{
    int n;
    printf("Enter n: ");
    scanf_s("%d", &n);
    print_charman(n); 
    return 0;
}
void print_charman(int n)
{
    int i;
    int t = 0;
    for ( i = n; i >= 1; i--)
    {
        for (int j = 0; j < t; j++)
            printf("\t");
        for (int j = 0; j < 2 * i - 1; j++)
            printf(" O\t");
        printf("\n");
        for (int j = 0; j < t; j++)
            printf("\t");
        for (int j = 0; j < 2 * i - 1; j++)
            printf("<H>\t");
        printf("\n");
        for (int j = 0; j < t; j++)
            printf("\t");
        for (int j = 0; j < 2 * i - 1; j++)
            printf("I I\t");
        printf("\n");
        t++;
    }
}

 

标签:return,int,ans,char,score,实验,printf
From: https://www.cnblogs.com/liqihao/p/18497837

相关文章

  • 20222313 2024-2025-1 《网络与系统攻防技术》实验三报告
    实验内容1.1实践内容正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧通过组合应用各种技术实现恶意代码免杀用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本1.2回答问题杀软是如何检测出恶意代码的?(1)特征码......
  • 软件设计--实验七
    实验7:单例模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。 [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。 类图:```mermaidclassDiagram......
  • 实验6:原型模式(向量的原型)
    [实验任务一]:向量的原型用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。 1.类图   2. 源代码(1) 浅克隆代码和运行结果#include<bits/stdc++.h>usingnamespacestd;classVector......
  • 实验7:单例模式(学号的单一 )
    [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。1. 类图 1. 源代码//StudentID.javapackagetest7; publicclassStudentID{    privatestaticStudentIDinstance=null;    privateStringid;     privat......
  • 实验2
    任务一t.h#pragmaonce#include<string>//类T:声明classT{//对象属性、方法public:T(intx=0,inty=0);//普通构造函数T(constT&t);//复制构造函数T(T&&t);//移动构造函数~T();//析构函数voidad......
  • 实验2 类和对象
    实验任务1:t.h代码:1#pragmaonce2#include<string>3//类T:声明4classT{5//对象属性、方法6public:7T(intx=0,inty=0);//普通构造函数8T(constT&t);//复制构造函数9T(T&&t);//移动构造函数10~T();//析构函数11voidadjus......
  • 实验2 类和对象_基础编程1
    一、实验目的加深对OOP中类、对象的理解,能够解释类的封装、类的接口会使用C++语法规则正确定义、实现、测试类;会使用类创建对象,并基于对象编程针对具体问题场景,练习运用面向对象思维进行设计,合理利用C++语言特性(访问权限控制,static,friend,const),在数据共享和保护......
  • 实验3
    1:代码:#include<stdio.h>charscore_to_grade(intscore);intmain(){intscore;chargrade;while(scanf("%d",&score)!=EOF){grade=score_to_grade(score);printf("分数:%d,等级:%c\n\n",score,grade);}return0;}charscore_to_gra......
  • cpp实验二
     任务一://t.h#include"t.h"#include<iostream>#include<string>usingstd::cout;usingstd::endl;usingstd::string;conststd::stringT::doc{"asimpleclasssample"};constintT::max_cnt=999;intT::cnt=0;T::T(intx,int......
  • 20222428 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容1.1本周学习内容1.1.1后门实践中的基本概念netcat(瑞士军刀):用于监听、探测端口、正向连接、反向连接、文件传输。socat:netcat的加强版(多了SSL连接等功能)。Meterpreter工具:Metadploit框架中的扩展模块,是生成后门的工具。VeilEvasion:生成免杀的工具。1.1.2......