首页 > 其他分享 >三道同学的oj遇到的问题,C语言

三道同学的oj遇到的问题,C语言

时间:2023-11-01 12:56:24浏览次数:34  
标签:输出 ld oj int 三道 float C语言 score printf

1.

请写一段程序来判断表达式是否相等。
输入格式:
只有一行,为三个用空格分隔的浮点数a,b,c(0<a,b,c<100)。
输出格式:
也只有一行,如果 a - b 等于c ,则输出yes,否则输出no。

 1 //原答案,未满分
 2 int main(void) {
 3     double a, b, c;
 4 
 5     scanf("%f %f %f", &a, &b, &c);
 6 
 7     if(fabs(a - b-c) <= 1.0E-100) {
 8         printf("yes");
 9     } else {
10         printf("no");
11     }
12     return 0;
13 }
//修正,参考了https://fishc.com.cn/thread-234152-1-1.html
#include <stdio.h>

int main() {
    float a, b, c;
    scanf("%f %f %f", &a, &b, &c);
    int x = a * 100 + 0.5;
    int y = b * 100 + 0.5;
    int z = c * 100 + 0.5;
    if (x - y == z) {
        printf("yes");
    } else {
        printf("no");
    }
    return 0;
}

 

2. 

 

写一程序,按要求输出。
输入格式:
为三行,第一行为整数a、第二行为字符c、第三行为整数b。(0<a,b<100000)。
输出格式:
共四行。

第一行依次输出a,b,c,三个值之间用一个空格分隔;

第二依次输出a+b,a-b,a*b,a/b,a%b的值,每个值之间用一个空格分隔;

第三行输出a和b的比率(浮点数,精确到小数点后两位);

第四行输出a和b的百分比率(浮点数,精确到小数点后两位)。具体格式见输出样例。

 1 //原答案
 2 #include <stdio.h>
 3 
 4 int main() {
 5     int a, b;
 6     char c;
 7     scanf("%d\n%c\n%d", &a, &c, &b);
 8     printf("%d %d %c\n", a, b, c);
 9     printf("%d %d %d %d %d\n", a + b, a - b, a * b, a / b, a % b);
10     printf("The ratio of %d versus %d is %.2f.\n", a, b, (float)a / (float)b);
11     printf("The ratio of %d / %d is %.2f%%.", a, b, (float)a * 100 / (float)b);
12     return 0;
13 }
 1 //修正后
 2 #include <stdio.h>
 3 int main()
 4 {
 5     long int a,b;
 6     char c;
 7     float ans;
 8     scanf("%ld %c %ld",&a,&c,&b);
 9     ans=(float)a/b; 
10     printf("%ld %ld %c\n",a,b,c);
11     printf("%ld %ld %ld %d %d\n",a+b,a-b,a*b,a/b,a%b);
12     printf("The ratio of %ld versus %ld is %.2f.\n",a,b,ans);    
13 
14     printf("The ratio of %ld / %ld is %.2f%%.\n",a,b,ans*100);
15     return 0;
16 }

gpt:原始代码中使用了int类型来存储输入的整数,并且使用了%d来格式化输出。修正后的代码中,将int改为了long int以增加数据范围,同时也修复了输入的格式问题(移除了多余的换行符)。在输出方面,修正后的代码使用了%ld来格式化长整数,并且计算并保存了浮点数结果,用于精确计算比例和百分比。

总之,修正后的代码更准确地处理输入和输出,并提供了更大范围的整数支持和精确的浮点数计算。

 

3.

某门课规定总成绩由两部分组成,即平时成绩和期末考试成绩,这两部分成绩的比例为a:b,假设a为3,b为7,则意味着在总成绩中平时成绩占30%,期末考试成绩占70%。

现在请你写一段程序来计算一下,某位同学是否及格。
输入格式:
为4个用空格分隔的整数,依次代表两种成绩所占比例a,b 以及平时成绩,期末考试成绩。注意:测试用例不保证a+b一定等于10。
输出格式:
为两行,第一行为该同学的总成绩(保留1位小数),

第二行,如果该同学总成绩及格(大于等于60),则输出pass,否则输出fail。

测试用例保证合法,且整数可以用int存储,小数可以用float存储。

 1 //原答案
 2 #include <stdio.h>
 3 
 4 int main(void) {
 5     int a, b, regular_score, final_score;
 6     float total_score;
 7 
 8     scanf("%d %d %d %d", &a, &b, &regular_score, &final_score);
 9 
10     total_score = (a * regular_score + b * final_score) / 10.0;
11 
12     printf("%.1f\n", total_score);
13 
14     if (total_score >= 60) {
15         printf("pass");
16     } else {
17         printf("fail");
18     }
19 
20     return 0;
21 }
 1 //修正后
 2 #include <stdio.h>
 3 
 4 int main() {
 5     int a, b, score1, score2;
 6     float totalScore;
 7 
 8     // 输入两种成绩所占比例a和b,以及平时成绩和期末考试成绩
 9     scanf("%d %d %d %d", &a, &b, &score1, &score2);
10 
11     // 计算总成绩
12     totalScore = (float)(a * score1 + b * score2) / (a + b);
13 
14     // 输出总成绩
15     printf("%.1f\n", totalScore);
16 
17     // 判断是否及格并输出结果
18     if(totalScore >= 60) {
19         printf("pass\n");
20     } else {
21         printf("fail\n");
22     }
23 
24     return 0;
25 }

 

标签:输出,ld,oj,int,三道,float,C语言,score,printf
From: https://www.cnblogs.com/WCMS-XDU688/p/17802835.html

相关文章

  • C语言经典例题7加解析
    1、输入长方形的长和寬,编程求该长方形的周长和面积#include<stdio.h>intmain()(floatlength,width;floatperimeter,area;//输入长方形的长和宽printf(“请输入长方形的长:“);scant(“%r”,&length);printf(”请输入长方形的宽:“);scanf(“%r”,&width);//计算周长和面......
  • c语言学习(结构体初始化)42
    利用例题直接阐释:#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>structhobby//hobby:爱好{charcolor[10];charsports[10];};structstu{charname[10];intage;structhobbys2;doubleheight;};intmain(){structstu......
  • 实验3_c语言函数应用编程
    task1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(intn);voidprint_blank_lines(intn);intmain(){intline,col......
  • 《安富莱嵌入式周报》第320期:键盘敲击声解码, 军工级boot设计,开源CNC运动控制器,C语言
     视频版:https://www.bilibili.com/video/BV1Cr4y1d7Mp/1、键盘敲击声解码https://arxiv.org/abs/2308.01074键盘敲击声被解码的话,我们使用键盘输入密码将被方便的解码出来。这篇文章介绍了一种使用最先进的深度学习模型,以便使用手机麦克风对笔记本电脑敲击键盘分析。实际测试训练......
  • java 开发中VO、PO、DO、DTO、BO、QO、DAO、POJO各种傻傻分不清
    VO(ValueObject):值对象,主要用于业务层之间的数据传递,是方法返回类型。例如,一个方法需要返回用户的信息,可以创建一个UserVO,包含用户的姓名、年龄等信息。PO(PersistentObject):持久化对象,用于表示数据库中的一条记录,与数据库表一一对应。例如,数据库中有一个用户表,可以创建一个Use......
  • Project#2: Extendible Hash Index
    撰写本文的目的:记录本人在不参考其他任何形式的解决方法(思路/源码)、仅靠课程提供的资源(课本/参考资料)和Discord中highlevel的讨论的情况下,独立完成该课程的过程。欢迎大家和我讨论学习中所遇到的问题。ZiHao'sBlog由于gradescope中对non-cmustudents还未开放Project#2,本文方......
  • C语言-2.结构学习
    结构1.1顺序~2.1选择~3.1.1关系运算符类型类型优先级小于<小于等于<=优先级相同(高)大于>大于等于>=优先级相同(高)等于==不等于!=优先级相同(低)tips:将数值放前,可以判断该字符是否为前面已经运用的变量。如3=a,若前面a已经被赋值,则会出现语法错......
  • C语言笔记2
     程序的三种基本结构1.顺序结构:按照语句的顺序书写次序2.选择结构:通过特段特定条件,选择一个分支执行3.循环结构:在给定的条件下,反腐执行循环体,直到条件不满足为止 程序设计的步骤1.分析问题,建立数学模型2.确定数据结构3.确定算法,描述算法4.编制程序,调试程序5.运行结果......
  • Project#1: Buffer Pool
    撰写本文的目的:记录本人在不参考其他任何形式的解决方法(思路/源码)、仅靠课程提供的资源(课本/参考资料)和Discord中highlevel的讨论的情况下,独立完成该课程的过程。欢迎大家和我讨论学习中所遇到的问题。ZiHao'sBlog由于gradescope中对non-cmustudents仅开放了Project#0,本文方......
  • 实验3 c语言函数应用编程
    task11源代码1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN8067voidprint_text(intline,intcol,chartext[]);8voidprint_spaces(intn);9voidprint_blank_lines(intn)......