首页 > 其他分享 >实验三

实验三

时间:2024-10-27 12:42:40浏览次数:6  
标签:return int ans char 实验 printf include

任务一

源代码:

#include <stdio.h>

char score_to_grade(int score);

int main(){
    int score;
    char garde;
    
    while(scanf("%d",&score) != EOF){
        garde = score_to_grade(score);
        printf("分数:%d,等级:%c\n\n",score,garde);
    }
    
    return 0;
}


char score_to_grade(int score){
    char ans;
    
    switch(score/10){
        case 10:
        case 9: ans = 'A';break;
        case 8: ans = 'B';break;
        case 7: ans = 'C';break;
        case 6: ans = 'D';break;
        default: ans = 'E';
    }
    
    return ans;
}

运行结果:

问题1:将输入的分数进行等级划分,整型,字符型

问题2:缺少break终止语句导致case穿透,最终导致输出结果中含有后续情况的输出结果。且case6到10的输出结果不是字符型,导致程序运行错误。

任务二

源代码:

#include <stdio.h>

int main(){
    int n;
    int ans;
    
    while(printf("Enter n:") ,scanf("%d",&n) != EOF){
        ans = sum_digits(n);
        printf("n = %d, ans = %d\n\n", n, ans);
    }
    
    return 0;
}


int sum_digits(int n){
    int ans = 0;
    while(n != 0){
        ans += n %10;
        n/= 10;
    }
 
    
    return ans;
}

运行结果:

 

问题1:将输入的n各分位的数相加

问题2:可以实现同样的效果,第一个是将n/10放入while循环中,而第二个则是将n/10放入sum_digits函数中进行循环

任务三

源代码:

#include <stdio.h>

int power(int x, int n);

int main(){
    int x, n;
    int ans;
    
    while(printf("Enter x and n: "),scanf("%d%d", &x, &n)!=EOF){
        ans = power(x, n);
        printf("n = %d, ans = %d\n\n", n, ans);
    }
    
    return 0;
}


int power(int x, int n){
    int t;
    
    if(n == 0)
        return 1;
    else if(n % 2)
        return x*power(x,n-1);
    else{
        t = power(x, n/2);
        return t*t;
    }
}

运行结果:

问题1:输出x的n次方

问题2:是递归函数

数学公式模型:

 

任务四

源代码:

#include<stdio.h>
#include<math.h>
int is_prime(int x)
{
    int i, k;
    k = sqrt(x);
    for(i=2;i<=k;i++)
    if(x%i==0)
        return 0;
    if(i>k)
        return 1;
}
int main(){
    printf("100以内的孪生素数:\n");

    int n=100;
    int m=0;
    int j;
    for(j=2;j<=n;j++){
    if(is_prime(j)&&is_prime(j+2)){
    m++;
    printf("%d %d\n",j,j+2);
        }
    }
    printf("100以内的孪生素数共有%d个\n",m);
    
   
    
    return 0;
}

运行结果:

任务五

源代码:

#include<stdio.h>
#include<stdlib.h>
void hanoi(unsigned int n, char from,char temp, char to);
void moveplate(unsigned int n ,char from, char to);
int total=0;
int main()
{
    unsigned int n;
    while (scanf("%u",&n)!=EOF){
    total = 0;
    hanoi(n, 'A', 'B', 'C');
    printf("一共移动%d次",total);
    }
    
 return 0;
}

 void hanoi(unsigned int n, char from,char temp, char to)
{
 if(n==1)
{
    moveplate(n, from, to);
    total++;
}
    else
    {
    hanoi(n-1, from, to, temp);
    moveplate(n, from, to);
    hanoi(n-1,temp, from,to);
    total++;
    }
}
 void moveplate(unsigned int n,char from, char to)
 {

    
    printf("%u:%c-->%c\n",n, from, to);
}

运行结果;

任务六

迭代法:

#include <stdio.h>
int func(int n, int m);

int main(){
    int n, m;
    int ans;
    
    while(scanf("%d%d", &n, &m) !=EOF){
        ans = func(n, m);
        printf("n = %d, m = %d, ans = %d\n\n", n, m, ans);
    }
    
    return 0;
}
func(int n, int m)
{
    int i, j;
    int p=1, q=1;
    for(i=n-m+1;i<=n;i++){
    p*=i;}
    for(j=1;j<=m;j++){
    q*=j;}
    return p/q;
}

递归法:

#include <stdio.h>
int func(int n, int m);

int main(){
    int n, m;
    int ans;
    
    while(scanf("%d%d", &n, &m) !=EOF){
        ans = func(n, m);
        printf("n = %d, m = %d, ans = %d\n\n", n, m, ans);
    }
    
    return 0;
}
func(int n, int m)
{
    if(m>n)
    return 0;
    else if(m==n||m==0)
    return 1;
    else
    return func(n-1, m)+func(n-1,m-1);
    
}

任务七

源代码:

#include <stdio.h>
#include <stdlib.h>
 
void print_charman(int n);

int main() {
    int n;

    printf("Enter n: ");
    scanf("%d", &n);
        print_charman(n); 
    return 0;
 }
 
void print_charman(int n){
    int i,j,k;
    for(i=n;i>0;i--){
        for(k=1;k<=n-i;k++){
            printf("   \t");
        }
            j=2*i-1;
            for(j;j>0;j--){
                printf(" O \t");
            }
            printf("\n");
        
        for(k=1;k<=n-i;k++){
            printf("   \t");
        }
            j=2*i-1;
            for(j;j>0;j--){
                printf("<H>\t");
            }
            printf("\n");
        for(k=1;k<=n-i;k++){
            printf("   \t");
        }
            j=2*i-1;
            for(j;j>0;j--){
                printf("I I\t");
            }printf("\n");
    }
}

运行结果:

输入3:

 

 输入4:

 

标签:return,int,ans,char,实验,printf,include
From: https://www.cnblogs.com/lzl060415/p/18497825

相关文章

  • 【机器学习】任务九:卷积神经网络(基于 Cifar-10 数据集的彩色图像识别分类、基于 CNN
    1.卷积神经网络        卷积神经网络(ConvolutionalNeuralNetwork,CNN)是一种专门用于处理数据网格结构(如图像、视频等)的深度学习模型,在计算机视觉任务中被广泛应用,如图像分类、目标检测、图像分割等。以下是卷积神经网络的详细介绍:1.1 卷积神经网络(CNN)结构及......
  • 1024程序员节快乐——华为静态路由实现路由负载分担实验案例
    目录静态路由实现路由负载分担静态路由简介配置注意事项组网需求配置思路操作步骤配置文件静态路由实现路由负载分担实验组网图形图1 配置静态路由实现路由负载分担组网图 静态路由简介配置注意事项组网需求配置思路操作步骤配置文件静态路由简介静态路......
  • 基于微信小程序的实验室管理系统的设计与实现-计算机毕业设计源码+LW文档
    摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了实验室管理微信小程序的开发全过程。通过分析实验室管理微信小程序管理的不足,创建了一个计算机管理实验室管理微信小程序的方案。文章介绍了实验室管理微信小程序的系统分析......
  • 实验2 类和对象——基础编程1
    一、实验目的 加深对类,对象的理解,能够解释类的封装,类的接口会使用C++语法规则正确定义,实现,测试类,会使用类创建对象,并基于对象编程针对具体问题场景,练习运用面向对象思维进行设计,合理利用C++语言特性(访问权限控制,static,friend,const),在数据共享和保护之间达到平衡会用多文件......
  • 实验3
    实验任务1:源代码:1#include<stdio.h>23charscore_to_grade(intscore);45intmain(){6intscore;7chargrade;89while(scanf("%d",&score)!=EOF){10grade=score_to_grade(score);11p......
  • 实验3
    任务1:源代码1#include<stdio.h>23charscore_to_grade(intscore);45intmain(){6intscore;7chargrade;89while(scanf("%d",&score)!=EOF){10grade=score_to_grade(score);11printf(&......
  • 20222408 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    1.实验内容1.1回答问题(1)杀软是如何检测出恶意代码的?①基于特征码的检测:AV软件厂商搜集最全最新的特征码库,并以此来尝试匹配文件中的一个或几个片段②启发式恶意软件检测:根据片面特征推断,包括行为(如连接恶意网站、开放端口、修改系统文件等),外观(文件签名、结构、厂商等)。③基于行......
  • 实验2
    任务1:T.h1#pragmaonce23#include<string>45//类T:声明6classT{7//对象属性、方法8public:9T(intx=0,inty=0);//普通构造函数10T(constT&t);//复制构造函数11T(T&&t);//移动构造函数12~T();......
  • 实验3
    task1:Q1:将分数转为等第;整型;字符型Q2:没有break,输出等第后将自动向下运行;字符型变量用单引号task2:Q1:将输入中各个数字之和算出Q2:这种算法使用迭代思想,原算法使用自然语言task3:Q1:计算x的n次方Q2:是; if(n==0)    return1;  elseif(n%2)    returnx*p......
  • 程序设计实验2
    运行结果1问题1:不能运行,因为func函数未声明问题2:普通构造函数可以初始化,复制构造函数是对同类对象的引用,移动构造函数是对参数右值的引用,编译周期结束时,自动调用析构函数问题3:不能运行实验任务21//Complex.h2#pragmaonce3#include<string>4#include<io......