法133计算机科学课第9、10周实践题目及参考解答

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597


2398:分段函数求值【双分支】

Description

编程序,计算下面函数的值并输出: y = x - 1 (x>=1), y = -x + 1 (x<1)

Input

一个整型数x

Output

按公式计算出的y

Sample Input

2

Sample Output

1

参考解答:

#include <stdio.h>
int main()
{
    int x,y;
    scanf("%d", &x);
    if(x>=1)
y=x-1;
else
y=-x+1;
printf("%d",y);
    return 0;
}


2395:小贺的加班工资【简单分支】

Description

小贺刚上班,按计时制领工资,每小时rateRMB。每周工作时间40小时,如果要加班,超出部分按正常工资的1.5倍计(老板还算不错喔!)。这周小贺上班的时间为hour小时,请编程序,输入ratehour(均可为小数),输出小贺本周的薪水,要求小数点后保持2位小数。

Input

每小时的工资rate和本周的工作时间hour

Output

本周工资额

Sample Input

15.5 42

Sample Output

666.50

HINT

C语言中,将printf("%.2f\n",x); 可以令x的值保留两位小数输出。

C++中,cout<<setiosflags(ios::fixed)<<setprecision(2)<<x<<endl;x的值保留两位小数输出,另外,需加头文件#include<iomanip>

参考解答:

#include <stdio.h> 
int main() 
{ 
    double rate,hour,s; 
    scanf("%lf %lf", &rate, &hour); 
    if(hour<=40) 
        s=hour*rate; 
    else
        s=40*rate+(hour-40)*1.5*rate; 
    printf("%.2lf\n",s); 
    return 0; 
}   


2396:输入星期值,输出英文【多分支】

Description

从键盘上输入数字星期,然后输出它的英文其对应关系是 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 7 Sunday

Input

从键盘输入数字星期,

Output

输入的数字在1-7之内,则输出该数字对应的英文表示

Sample Input

2

Sample Output

Tuesday

参考解答:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a;
    scanf("%d",&a);
    switch(a)
    {
    case 1:
        printf("Monday");
        break;
    case 2:
        printf("Tuesday ");
        break;
    case 3:
        printf("Wednesday ");
        break;
    case 4:
        printf("Thursday");
        break;
    case 5:
        printf("Friday");
        break;
    case 6:
        printf("Saturday");
        break;
    case 7:
        printf("Sunday");
        break;
    }
    return 0;
}

2399:求倒数和【简单循环】

Description

输入一个小于10的正整数n,求1n的倒数和(即1+1/2+...+1/n)并输出。

Input

一个整型数 n

Output

1+1/2+...+1/n 的值,小数点后保留6位小数。

Sample Input

4

Sample Output

2.083333

HINT

C语言中,将printf("%.6f\n",x); 可以令x的值保留六位小数输出。

C++中,cout<<setiosflags(ios::fixed)<<setprecision(6)<<x<<endl;x的值保留六位小数输出,另外,需加头文件#include<iomanip>

#include <stdio.h>
int main()
{
    int i,n;
    double s=0;
    scanf("%d", &n);
    for(i=1; i<=n; i++)
        s+=1.0/i;
    printf("%.6f",s);
    return 0;
}

2400:多个数的平均值【简单循环】

Description

输入nn个整数(n不超过20),输出这n个数的平均值

Input

整数nn个整数,各数用空格隔开

Output

n个整数的平均值(整数)

Sample Input

4 2 4 6 8

Sample Output

5

仿照教材做法:

#include <stdio.h>
int main()
{
    int n, i , a[20];
    int sum = 0;
    scanf("%d",&n);
    //输入n个数
    for (i=0; i<n; i++)
    {
        scanf("%d",&a[i]);
    }
    //将n个数累加
    for (i=0; i<n; i++)
    {
        sum+=a[i];
    }
    //输出平均数
    printf("%d\n",sum/n);
    return 0;
}

两个循环可以合二为一:

#include <stdio.h>
int main()
{
    int n, i , a[20];
    int sum = 0;
    scanf("%d",&n);
    //输入n个数并累加
    for (i=0; i<n; i++)
    {
        scanf("%d",&a[i]);  //输入第i个数
        sum+=a[i];          //累加
    }
    //输出平均数
    printf("%d\n",sum/n);
    return 0;
}

因为累加完后就没有必要保存这个数了,a不用数组,直接用一个变量即可。

#include <stdio.h>
int main()
{
    int n, i , a;
    int sum = 0;
    scanf("%d",&n);
    for (i=0; i<n; i++)
    {
        scanf("%d",&a);
        sum+=a;
    }
    printf("%d\n",sum/n);
    return 0;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迂者-贺利坚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值