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

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

时间:2024-10-29 21:49:21浏览次数:5  
标签:return 函数 int 编程 C语言 while score ans printf



#include <stdio.h>

char score_to_grade(int score);

int main() {
    int score;
    char grade;
    while(scanf("%d", &score) != EOF) {
        grade = score_to_grade(score); 
        printf("分数: %d, 等级: %c\n\n", score, grade);
    }
    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:判断完之后不会终止,而是执行下一行,最终永远输出E

#include <stdio.h>

int sum_digits(int n);

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:将输入数的每一位数字相加

问题2:能,一种是迭代计算答案,一种是递归计算答案

#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>
int is_prime(int n){
    int i;
    for(i=2;n>=i;i++){
        if(n%i==0&&n>i)
            return 0;
        else if(n%i==0&&n==i)
            return 1;
        
    }
    
}
int main(){
    printf("100以内孪生素数:\n");
    int num=2,a=0;
    while(num<100){
        if(is_prime(num)==1&&is_prime(num+2)==1){
            printf("%d %d\n",num,num+2);
            a++;
            
        }
        num++;
    
    }
    printf("100以内孪生素数共%d个",a);    
        
    return 0;    
}

 

#include<stdio.h>
int m=0;
int hanoi(int n,char from,char by,char to){
    if (n==2){
        printf("1:%c-->%c\n",from,by);
        printf("2:%c-->%c\n",from,to);
        printf("1:%c-->%c\n",by,to);
        
        m+=3;
        return 0;
    }

    hanoi(n-1,from,to,by);
    printf("%d:%c-->%c\n",n,from,to);
    hanoi(n-1,by,from,to);
    
    m++;
    return 0;
}

int main(){
    int a;
    while(scanf("%d",&a)!=EOF){
        char from='A',to='C',by='B';
        hanoi(a,from,by,to);
        printf("一共移动了%d次\n",m);
        m=0;
    }
    return 0;
}

#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;
}

int func(int n, int m){
    int up=n,down=m,i=m,j=n,l=n-m;
    if(n<m)
        return 0;
    else if(l==0||m==0)
        return 1;
    while(i!=1){
        down=down*(i-1);
        i--;
    }
    while(j!=1){
        up=up*(j-1);
        j--;
    }
    while(l!=0){
        down=down*l;
        l--;
    }
    return up/down;
}

#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;
}

int func(int n, int m){
    if(n<m)
        return 0;
    else if(n==m||m==0)
        return 1;
    else if(m==1)
        return n;
    else
        return func(n-1,m)+func(n-1,m-1); 
    
}

#include <stdio.h>
#include <stdlib.h>

void print_1(int a,int b){
    int i=1,j=b;    
    while(j-1>0){
        printf("    ");
        --j;    
    }
    while(i<=(a*2-1-(b-1)*2)){
        i++;    
        printf(" O      ");
    }
    printf("\n");    
    
    i=1;j=b; 
    while(j-1>0){
        printf("    ");
        --j;    
    }
    while(i<=(a*2-1-(b-1)*2)){
        i++;
        printf("<H>     ");
    }
    printf("\n");
    
    i=1;j=b;
    while(j-1>0){
        printf("    ");
        --j;    
    }    
    while(i<=(a*2-1-(b-1)*2)){
        i++;
        printf("I I     ");
    }
    printf("\n");
    
    
    
}
void print_charman(int n){
    int i=1;
    while(i<=n){
        print_1(n,i);    
        i++;
        
    }
    
}


int main() {
    int n;
    
    printf("Enter n: ");
    scanf("%d", &n);
    print_charman(n); 
    
    return 0;
}

 

标签:return,函数,int,编程,C语言,while,score,ans,printf
From: https://www.cnblogs.com/jhyzhanchuan/p/18511845

相关文章

  • 实验2 类和对象_基础编程1
    任务1源代码t.h#pragmaonce#include<string>//类T:声明classT{//对象属性、方法public:T(intx=0,inty=0);//普通构造函数T(constT&t);//复制构造函数T(T&&t);//移动构造函数~T();//析构函数void......
  • 实验3_C语言函数应用编程
    任务一:#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",......
  • 并发编程(1)——线程
    目录一、day11.线程的建立1.1线程如何发起1.1.1普通函数1.1.2仿函数1.1.3lambda函数1.1.4类的成员函数1.1.5move1.2子线程需要被等待1.3detach1.4.异常处理1.5慎重使用隐式转换1.6如何在线程中使用引用2.thread参数传递和调用原理2.1数据成员2.......
  • 实验2 类和对象_基础编程1
    实验任务1代码t.h1#pragmaonce2#include<string>34classT{5public:6T(intx=0,inty=0);7T(constT&t);8T(T&&t);9~T();1011voidadjust(intratio);12voi......
  • 第六章 FreeRTOS 任务相关 API 函数
    6.1任务创建和删除API函数FreeRTOS的任务创建和删除API函数如表:函数xTaxkCreate()此函数用来创建一个任务,任务需要RAM来保存与任务有关的状态信息(任务控制块),任务也需要一定的RAM来作为任务堆栈。如果使用函数xTaskCreate()来创建任务的话那么这些所需的RAM......
  • 少儿编程学习中的家庭支持:家长角色如何从监督到参与?
    随着少儿编程教育的普及,越来越多的家庭开始意识到编程对孩子未来发展的重要性。编程不仅仅是一项技术技能,更是培养逻辑思维、解决问题能力和创新意识的有效途径。然而,如何在家庭中正确支持孩子的编程学习,对家长而言是一个新的挑战。从过去的“监督学习”到如今的“积极参与和......
  • 少儿编程进入义务教育课程:培养信息科技素养的新政策解读
    近年来,随着数字化进程的推进和人工智能技术的普及,编程教育逐渐走入中小学课堂。教育部在《义务教育课程方案和课程标准(2022年版)》中正式将编程与信息科技教育纳入小学和初中的课程体系中,强调培养学生的计算思维、编程能力和科技素养。这一政策的出台,标志着编程教育已成为义务......
  • JavaScript基本内容续集之函数和对象
    书接上篇,我们讲到了JavaScript的基本内容,这篇讲到JavaScript的函数和对象。目录一、函数(一)概述(二)函数的定义(三)函数的使用1、在程序中调用(分为有返回值和无返回值调用)①无返回值的调用②有返回值的调用2、常见事件①在超链接被点击时调用(监听点击事件)②在按钮被点击......
  • 函数调用寄存器及栈帧结构
    函数调用X86下,遵循被调用者使用规则,函数在调用子函数之前,保存相关寄存器的内容。函数调用时,参数先入栈,接着为返回地址入栈,BP寄存器入栈、再接着就是子函数的局部变量之类的了。常用寄存器栈帧结构函数调用时栈帧结构......
  • C语言中实现一个包含开卡、查询内容、存钱、取钱、转账和修改密码的银行服务系统
       大家好,我是带我去滑雪,每天教你一个小技巧!   本次在C语言中实现一个包含开卡、查询内容、存钱、取钱、转账和修改密码的银行服务系统,下面开始代码实战。目录一、功能模块设计(1)开卡功能(2)查询内容(3)存钱功能(4)取钱功能(5)转账功能(6)修改密码功能二、数据结构......