用c语言实现I输入一个整数n,表示已经进行编程训练n小时(0<=n<=10000),输出一个百分比,表示尚未完成的训练时间在整个1万小时中的占比。百分比精确到小数点后2位。
时间: 2024-09-11 12:18:09 浏览: 55
在C语言中,你可以使用以下函数来实现这个功能:
```c
#include <stdio.h>
#include <math.h>
double calculate_percentage(int n) {
double total_hours = 10000; // 总训练小时数
double remaining_hours = total_hours - n; // 还未完成的训练时间
// 计算剩余时间占总时间的比例,并四舍五入到两位小数
double percentage = (remaining_hours / total_hours) * 100;
return roundf(percentage * 100) / 100.0; // 使用roundf避免浮点误差
}
int main() {
int input_hours;
printf("请输入已经进行编程训练的时间(0 <= n <= 10000): ");
scanf("%d", &input_hours);
if (input_hours >= 0 && input_hours <= 10000) { // 验证输入的有效性
double result = calculate_percentage(input_hours);
printf("尚未完成的训练时间占总训练时间的百分比为: %.2f%%\n", result);
} else {
printf("无效输入!请输入0到10000之间的整数。\n");
}
return 0;
}
```
在这个程序中,`calculate_percentage` 函数计算剩余时间的百分比,然后`main`函数接收用户输入并调用该函数打印结果。如果输入超出范围,会提示用户输入错误。
阅读全文