《实验与习题指导》编程题|021-030

实验2-3-5 整数算术运算 – 浙大版《C语言程序设计实验与习题指导(第4版)》题目集

#include <stdio.h>

int main(){
    // 输入
    int a,b;
    scanf("%d %d",&a,&b);
    // 输出
    printf("%d + %d = %d\n",a,b,a+b);
    printf("%d - %d = %d\n",a,b,a-b);
    printf("%d * %d = %d\n",a,b,a*b);
    printf("%d / %d = %d\n",a,b,a/b);
    printf("%d %% %d = %d\n",a,b,a%b);
    
    return 0;
}

实验2-3-6 计算分段函数[3] – 浙大版《C语言程序设计实验与习题指导(第4版)》题目集

#include <stdio.h>

// 返回:分段函数的值
double func(double x){
    if(x==10) return 0.1;
    return x;
}

int main(){
    // 输入
    double x;
    scanf("%lf",&x);
    // 输出
    printf("f(%.1f) = %.1f\n",x,func(x));
        
    return 0;
}

实验2-3-7 阶梯电价 – 浙大版《C语言程序设计实验与习题指导(第4版)》题目集

#include <stdio.h>
#define PRICE_BASIC 0.53
#define PRICE_EXTRA 0.05

// 返回:阶梯电费
double price(double elec){
    double result=0;
    // 阶梯收费
    result+=PRICE_BASIC*elec;
    if(elec>50) result+=PRICE_EXTRA*(elec-50);
    return result;
}

int main(){
    // 输入
    double elec;
    scanf("%lf",&elec);
    // 边界
    if(elec<0){
        printf("Invalid Value!\n");
        return 0;
    }
    // 输出
    printf("cost = %.2f\n",price(elec));
    
    return 0;
}

实验2-3-8 计算火车运行时间 – 浙大版《C语言程序设计实验与习题指导(第4版)》题目集

#include <stdio.h>

int main(){
    // 输入
    int start,end;
    scanf("%d %d",&start,&end);
    // 处理:
    // 分离小时和分钟
    int timeStart[2];
    timeStart[0]=start/100;
    timeStart[1]=start%100;
    int timeEnd[2];
    timeEnd[0]=end/100;
    timeEnd[1]=end%100;
    // 借位
    if(timeEnd[1]<timeStart[1]){
        --timeEnd[0];
        timeEnd[1]+=60;
    }
    // 求运行时间
    int hour=timeEnd[0]-timeStart[0];
    int min=timeEnd[1]-timeStart[1];
    // 输出
    printf("%02d:%02d\n",hour,min);
    
    return 0;
}

实验2-3-9 判断一个三位数是否为水仙花数 – 浙大版《C语言程序设计实验与习题指导(第4版)》题目集

#include <stdio.h>
#include <math.h>
#include <stdbool.h>

// 返回:自幂数->true 否则->false
bool isnarcissistic(int number){
    if(number<100) return false;
    int result=false;
    // 求位数
    int n=0;
    int tmp=number;
    while(tmp>0){
        ++n;
        tmp/=10;
    }
    // 求各位置上的数的幂和
    int sum=0;
    tmp=number;
    while(tmp>0){
        sum+=pow(tmp%10,n);
        tmp/=10;
    }
    return sum==number;
}

int main(){
    // 输入
    int n;
    scanf("%d",&n);
    // 边界
    if(n<100 || n>=1000){
        printf("Invalid Value.\n");
        return 0;
    }
    // 输出
    if(isnarcissistic(n)){
        printf("Yes\n");
    }else{
        printf("No\n");
    }
    
    return 0;
}

实验2-4-1 求1到N的和 – 浙大版《C语言程序设计实验与习题指导(第4版)》题目集

#include <stdio.h>

int main(){
    // 输入
    int n;
    scanf("%d",&n);
    // 处理:求和
    int sum=n*(n+1)/2;
    // 输出
    printf("sum = %d\n",sum);
    
    return 0;
}

实验2-4-2 求N分之一序列前N项和 – 浙大版《C语言程序设计实验与习题指导(第4版)》题目集

#include <stdio.h>

int main(){
    // 输入
    int n;
    scanf("%d",&n);
    // 处理:计算n分之一序列前n项和
    double sum=0;
    for(int i=1;i<=n;++i){
        sum+=1/(double)i;
    }
    // 输出
    printf("sum = %.6f\n",sum);
    
    return 0;
}

实验2-4-3 求奇数分之一序列前N项和 – 浙大版《C语言程序设计实验与习题指导(第4版)》题目集

#include <stdio.h>

int main(){
    // 输入
    int n;
    scanf("%d",&n);
    // 处理
    double sum=0;
    for(int i=1;i<=n;++i){
        sum+=1/(double)(2*i-1);
    }
    // 输出
    printf("sum = %.6f\n",sum);
    
    return 0;
}

实验2-4-4 求简单交错序列前N项和 – 浙大版《C语言程序设计实验与习题指导(第4版)》题目集

#include <stdio.h>

int main(){
    // 输入
    int n;
    scanf("%d",&n);
    // 处理
    double sum=0;
    int flag=1;
    for(int i=1;i<=n;++i){
        sum+=1/(double)(3*i-2)*flag;
        flag*=-1;
    }
    // 输出
    printf("sum = %.3f\n",sum);
    
    return 0;
}

实验2-4-5 输出华氏-摄氏温度转换表 – 浙大版《C语言程序设计实验与习题指导(第4版)》题目集

#include <stdio.h>

int main(){
    // 输入
    int lower,upper;
    scanf("%d %d",&lower,&upper);
    // 边界处理
    if(lower>upper || upper>100){
        printf("Invalid.");
        return 0;
    }
    // 输出:
    // 表头
    printf("fahr celsius\n");
    // 表体
    for(int fahr=lower;fahr<=upper;fahr+=2){
        double celsius=5*((double)fahr-32)/9;
        printf("%d%6.1f\n",fahr,celsius);
    }
    
    return 0;
}

发表评论