PTA 编程题(C语言)-- 出勤率几何

题目作者:龚雄兴 湖北文理学院

本题目要求读入2个整数A和B,其中A是应到人数,B是实到人数,请编程输出其出勤率(百分比形式,保留一位小数)。

输入格式:

在一行中给出2个不超过1000的非负整数A和B,以空格分隔,你可以假定这两个数据都是合理数据。

输出格式:

在一行中以\出勤率=B/A=百分比%\的形式输出出勤率(保留一位小数,除汉字外均为西文字符)。

输入样例:

76 71

输出样例:

\出勤率=71/76=93.4%\

思路1:因为要得到浮点数,所以直接声明浮点数A,B进行读入和计算

注意:题目主要的难点时输出格式问题,(1)要输出'\',需要用转移字符'\\';(2)要输出'%',需要些两个和%,即'%%';(3)保留n位浮点数,用%.nf。

代码1:
#include <stdio.h>
int main () {
    float A,B;
    scanf("%f%f", &A,&B);
    printf("\\出勤率=%.0f/%.0f=%.1f%%\\",B,A,B/A*100);
    return 0;
}

思路2:如果非要用整数读入A,B,也不是不可以,但是要注意在计算B/A时,要把B强制转化为浮点数或者给B前面乘以1.0,否则B/A中的除就是整除,只能得到整数。

代码2:
#include <stdio.h>
int main () {
    int A,B;
    scanf("%d%d", &A,&B);
    printf("\\出勤率=%d/%d=%.1f%%\\",B,A,1.0*B/A*100);
    return 0;
}
更多PTA题目的的参考代码,可以在下面的小程序里找到哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我已经明白了你的问题。关于有结构文件的读写,可以通过以下步骤实现: 1. 定义ST类型,并在程序中使用它。 2. 打开文件,读取或写入结构体数据。 3. 关闭文件。 下面是一个简单的示例代码: ```c #include <stdio.h> #include <stdlib.h> typedef struct student { char name[10], id[10]; int gender, age; double scored; } ST; int main() { FILE *fp; ST st, read_st; // 写入数据到文件 fp = fopen("students.txt", "wb"); if (fp == NULL) { printf("打开文件失败!\n"); exit(1); } st.gender = 1; st.age = 20; st.scored = 98.5; strcpy(st.name, "小明"); strcpy(st.id, "1001"); fwrite(&st, sizeof(ST), 1, fp); fclose(fp); // 从文件读取数据 fp = fopen("students.txt", "rb"); if (fp == NULL) { printf("打开文件失败!\n"); exit(1); } fread(&read_st, sizeof(ST), 1, fp); printf("姓名:%s\n", read_st.name); printf("学号:%s\n", read_st.id); printf("性别:%d\n", read_st.gender); printf("年龄:%d\n", read_st.age); printf("成绩:%f\n", read_st.scored); fclose(fp); return 0; } ``` 在上面的代码中,我们定义了一个名为ST的结构体类型,并在程序中定义了一个ST类型的变量st和read_st。然后,我们通过打开文件、读取或写入结构体数据、关闭文件的方式进行了文件操作。 在写入数据时,我们使用了fwrite()函数将结构体数据写入文件。在读取数据时,我们使用了fread()函数从文件中读取结构体数据。 需要注意的是,结构体中的成员变量需要一个一个地写入或读取,而不能使用字符串和格式化输出等函数。此外,还需要注意文件打开模式,以确保文件能够正确地读写。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值