2014秋C++第17周 OJ题目及参考

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。 

A. 3数求平均

Description

输入3个整数,输出它们的平均值,保留3位小数

Input

3个整数

Output

3数的平均值,要求输出3位小数

Sample Input

3 5 2

Sample Output

3.333

HINT

#include <iostream>
#include <iomanip>
using namespace std;
int main( )
{
    int a, b, c;
    double x;
    cin>>a>>b>>c;
    x=(a+b+c)/3.0;
    cout<<setiosflags(ios::fixed)<<setprecision(3)<<x<<endl;
    return 0;
}

B. 买就打折,不买打骨折

Description

新年到了,商场狂打折。一件衣服x元,消费满y元,可打八五折。输入购买衣服的件数n,输出需要支付的金额(元),保留两位小数。

Input

衣服单价x(元),打折的最低消费y(元),购买衣服的件数n

Output

输出需要支付的金额(元),保留两位小数。

Sample Input

95.5 300 5

Sample Output

405.88

HINT

#include <iostream>
#include <iomanip>
using namespace std;
int main( )
{
    double x, y, s;
    int n;
    cin>>x>>y>>n;
    s = x * n;
    if(s>y)
        s*=0.85;
    cout<<setiosflags(ios::fixed)<<setprecision(2)<<s<<endl;
    return 0;
}

 

C. 奇偶各几何?

Description

输入若干个整数,统计并输出其中的奇数、偶数分别有几个

Input

若干个整数,个数不定

Output

这些整数中奇数和偶数的个数

Sample Input

11 42 45 67 12 78 34

Sample Output

3 4

HINT

用下面的循环,当输入结束时,循环结束。键盘输入数据时, 需要用CTRL-Z结束

    while(cin>>n)
    {
      ……
    }

参考解答:

#include <iostream>
#include <iomanip>
using namespace std;
int main( )
{
    int odd=0, even=0;
    int n;
    while(cin>>n)
    {
        if(n%2==0)
            even++;
        else
            odd++;
    }
    cout<<odd<<" "<<even<<endl;
    return 0;
}
 

D. 函数求值

Description

给定的程序用来计算sum=f(0)+f(1)+...+f(n),其中,f(x)=x2+1。输入x和n,输出sum的值。请将下面的程序补充完整:

#include <iostream>
using namespace std;
int sum(int n);
int f(int x);
int main( )
{
    int n;
    cin>>n;
    cout<<sum(n)<<endl;
    return 0;
}
/*只提交下面的程序*/
int sum(int n)
{
    int x, ____(1)______;
    for(x=0;____(2)____; x++)
        ______(3);
    return s;
}

_____(4)_________
{
    return x*x+1;
}

Input

n的值,一个整数

Output

sum=f(0)+f(1)+...+f(n),一个整数

Sample Input

4

Sample Output

35

HINT

#include <iostream>
using namespace std;
int sum(int n);
int f(int x);
int main( )
{
    int n;
    cin>>n;
    cout<<sum(n)<<endl;
    return 0;
}
/*只提交下面的程序*/
int sum(int n)
{
    int x, s=0;
    for(x=0; x<=n; x++)
        s+=f(x);
    return s;
}

int f(int x)
{
    return x*x+1;
}

 

E. 重复字符串

Description

输入一个字符串,将其重复若干次,例如,输入goal和5,得到的就是球迷的欢呼:goalgoalgoalgoalgoal。

不急着欢呼,先补充完整下面的程序。还需要注意的是,给出的程序段中,还藏着一个小Bug,需要你将其改过来。

#include <iostream>
#include <cstdio>
using namespace std;
void strcopy(char*,char*,int);
int main( )
{
     char str1[80];
     char str2[80];
     int n;
     gets(str1);
     cin>>n;
     strcopy(str2,str1,4);
     cout<<str2<<endl;
     return 0;
}

Input

一个待重复的字符串
重复的次数

Output

重复后的文字

Sample Input

goal 5

Sample Output

goalgoalgoalgoalgoal

HINT

#include <iostream>
#include <cstdio>
using namespace std;
void strcopy(char*,char*,int);
int main( )
{
    char str1[80];
    char str2[80];
    int n;
    gets(str1);
    cin>>n;
    strcopy(str2,str1,n);  //这儿有改动
    cout<<str2<<endl;
    return 0;
}

void strcopy(char *s1, char *s2, int n)
{
    int i,j=0,k;
    for(i=0;i<n;i++)
    {
        k=0;
        while(s2[k]!='\0')
            s1[j++] = s2[k++];
    }
    s1[j]='\0';
    return;
}

 

F. 用数字造数字

Description

输入一个3位以上的整数,求其中最大的数字最小的数字之间的差。例如:输入8729,输出7(即9-2=7),再如,输入24825,输出6(即8-2=6)。

Input

一个3位以上的整数

Output

输入整数的最大的数字最小的数字之间的差。

Sample Input

8729

Sample Output

7

HINT

可以在分离各数字过程中找最大、最小数字,也可以先将分离好的数字存储在数组中,再从数组中找出最大最小值。

#include <iostream>
using namespace std;
int main( )
{
    int n,arr[15],num=0;
    int i, imax, imin;
    cin>>n;
    while(n>0)
    {
        arr[num++]=n%10;
        n/=10;
    }
    imax=imin=arr[0];
    for(i=1; i<num; i++)
    {
        if(imax<arr[i])
            imax = arr[i];
        if(imin>arr[i])
            imin = arr[i];
        }
    cout<<imax-imin;
    return 0;
}
=================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章的分类目录(不定期更新) ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
|== 我写的书——《逆袭大学——传给IT学子的正能量》    ==|
===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====
时间: 2024-08-01 15:38:21

2014秋C++第17周 OJ题目及参考的相关文章

2014秋C++第18周 OJ题目及参考

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  1. 百位数答应了 Description m是个三位的整数,家里出了点小麻烦.个位数和十位数一直对百位数凡事都先露脸心怀不满,想出个办法,联手向百位数发起挑点.他们两个先相加,再减去百位数,以相减结果得到正值为傲.大度的百位数答应了:不就是陪着这两个无聊的家伙解闷嘛.请你编程序,帮他们一比

2014秋C++第13周OJ题目参考

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  A: 数组逆序输出 Description输入10个整数存入一维数组,然后按逆序输出.Input输入包括一行. 10个以空格隔开的整数.Output逆序的10个整数,整数以空格隔开.Sample Input1 3 5 9 7 6 8 2 4 0Sample Output0 4 2 8 6 7

2014秋C++第14周OJ题目参考

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  杨辉三角 Description 11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1上面的图形熟悉吗?这是大名鼎鼎的杨辉三角.杨辉三角可不只是数学游戏,在实际应用中有大用.例如两个未知数x.y之和的n次方的系数问题,(x+y)^1=x+y,系数为1, 1,(x+y)

2014秋C++第12周OJ题目参考

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  2447: 求N组数的最大公约数 Description计算一组数的最大公约数Input第一行是数据的组数N,从第二行是N组由两个整数(a和b)构成的输入,a和b之间用空格隔开,每组输入单独占一行Output每组的两个整数(a和b)的最大 公约数,每个结果独占一行Sample Input39

2014秋C++第17周 项目7参考 电子词典结构体版

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目7-电子词典结构体版]做一个简单的电子词典.在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文.中文释义与词性间用'\t'隔开.编程序,由用户输入英文词,显示词性和中文释义.提示1:定义一个Word结构体表示一个词条,其中的数据成员string

2014秋C++第17周 项目 结构体登场

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目1-体会函数参数传递]阅读下面的程序,写出期望中的运行结果.上机运行对照,并用单步执行的方法再次体会,完全掌握用指针和引用作为形式参数的用法. #include <iostream> using namespace std; void fun1(int &x,int

2014秋C++第17周 项目6参考 学生成绩统计

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目6-学生成绩统计]每位同学的信息学号.姓名.C++.高数.英语成绩.定义一个学生成绩的结构体数组,其中的数据成员包括学号(char num[13]).姓名(name).三门课的成绩(grade).总分(score).均分(average)).(1)从键盘上输入N名学生的信息(N定义为常

2014秋C++第17周 项目5参考 玩日期时间

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目5-玩日期时间]定义一个表示时间(包括年.月.日.时.分.秒)的结构体,然后完成下面的功能.提示:将各个功能分别设计成函数实现,在main函数中调用,进行测试.可以设计一个函数,即刻进行测试,以降低复杂度.要实现的功能是:(1)输入一个时间(注意各部分数据的取值范围)将输入的时间保存在

2014秋C++第17周 项目4参考 日期结构体

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目4 - 日期结构体](1)定义一个结构体变量(包括年.月.日),要求输入年.月.日,计算输出该日是该年的第几天. #include <iostream> using namespace std; struct Date { int year; int month; int