中国大学(慕课)哈工大C语言程序设计精髓编程题在线测试第三周

1 学分绩计算

题目内容:
已知某大学期末考试学分绩的计算公式为:学分绩 =(工科数学 * 5 + 英语 * 1.5 + 线性代数 * 3.5) / 10请编程从键盘按顺序输入某学生的工科数学、英语和线性代数成绩,计算并输出其学分绩。
提示:

  1. 以下为程序的运行结果示例:Input math1, English and math2:80,70,100↙Final score = 85.50
  2. 输入提示信息:"Input math1, English and math2:"输入格式: "%d,%d,%d"输出格式:“Final score = %.2f\n”
#include
int main()
{
 int a,b,c;
 printf("Input math1, English and math2:"); 
 scanf( "%d,%d,%d",&a,&b,&c);
 printf("Final score = %.2f\n",(a*5+b*1.5+c*3.5)/10); 
 return 0;
}

2 一尺之捶,日取其半

题目内容:
我国古代著作《庄子》中记载道:“一尺之捶,日取其半,万世不竭”。其含义是:对于一尺的东西,今天取其一半,明天取其一半的一半,后天再取其一半的一半的一半总有一半留下,所以永远也取不尽。请编写一个程序,使其可以计算出一条长为m的绳子,在n天之后剩下的长度。
提示:

  1. 运行结果示例1:Input length and days:12,5↙length=0.37500
  2. 运行结果示例2:Input length and days:57.6,7↙length=0.45000
  3. 输入提示信息:"Input length and days:"输入格式: "%f,%d"输出格式:“length=%.5f\n”
#include
int main()
{
 int b;
 float a;
 printf("Input length and days:");
 scanf("%f,%d",&a,&b);
 
 for(b>0;b--;)
 {
  a/=2;
 }
  printf("length=%.5f\n",a);
  return 0;
 }

3 网购打折商品V1.0

题目内容:
某网上购物网站对用户实行优惠,买家购物货款p越多,则折扣越多。今天正值该网站优惠折扣日,买家可以获得8%的折扣。请编程从键盘输入买家购物货款p,计算并输出买家折扣后实际应付出的价钱。注:程序中的数据类型为float。
提示:

  1. 程序的运行结果示例1:Input payment p:300↙price = 276.0
  2. 程序的运行结果示例2:Input payment p:1299.8↙price = 1195.8
  3. 输入提示信息:"Input payment p:"输入格式: "%f"输出格式:“price = %.1f\n”
#include
int main()
{  
 float price;
 printf("Input payment p:");  
 scanf("%f",&price);   
 printf("price = %.1f\n",price*(1-0.08));  
 return 0;
}

4 计算时间差V1.0

题目内容:
编程从键盘任意输入两个时间(例如4时55分和1时25分),计算并输出这两个时间之间的间隔。要求不输出时间差的负号。
提示:

  1. 程序的运行结果示例1: Input time one(hour, minute):4,55↙Input time two(hour,minute):1,25↙3 hour 30 minute
  2. 程序的运行结果示例2: Input time one(hour, minute):1,56↙Input time two(hour,minute):3,25↙1 hour 29 minute
  3. 输入提示信息:“Input time one(hour, minute):”
    “Input time two(hour, minute):”
  4. 输入格式:"%d,%d"
  5. 输出格式:"%d hour %d minute\n"

这是我的答案但是无法通过测试只能得到一分

#include
#include
int main()
{
       int hour1, minute1;
       int hour2, minute2;
       printf("Input time one(hour, minute):");
       scanf("%d,%d",&hour1,&minute1); 
       printf("Input time two(hour, minute):");
       scanf("%d,%d",&hour2,&minute2);
       int ih = hour2 - hour1;
       int im = minute2 - minute1;
       if(ih<0&&im<0){
              ih=abs(ih);
              im=abs(im);
       }
       if(ih<0&&im>0){
              ih=abs(ih);
       }
       if(ih>0&&im<0){
              im=60+im;
              ih--;
       }
       printf("%d hour %d minute\n",ih,im);
       return 0;
 }

下面提供我从网上找到的答案
出处:https://blog.csdn.net/suxiaorui/article/details/89931802

#include
#include
main()
{
 typedef struct clock
 {
  int hour;
  int minute;
  int second;
 } CLOCK;
 struct clock stu1;
 struct clock stu2;
 struct clock stu3;
 printf("Input time one(hour, minute):");
 scanf("%d,%d", &stu1.hour,&stu1.minute);
 printf( "Input time two(hour, minute):");
 scanf("%d,%d", &stu2.hour, &stu2.minute);
 stu3.hour = fabs((stu1.hour * 60 + stu1.minute) - (stu2.hour * 60 + stu2.minute)) / 60;
 stu3.minute = fabs(((stu1.hour * 60 + stu1.minute) - (stu2.hour * 60 + stu2.minute)) % 60);  
 printf("%d hour %d minute\n", stu3.hour, stu3.minute);
}

你可能感兴趣的:(中国大学(慕课)哈工大C语言程序设计精髓编程题在线测试第三周)