百练 / 2016计算机学科夏令营上机考试: A

题目来源:http://noi.openjudge.cn/ch0104/13/

13:分段函数

总时间限制: 1000ms      内存限制: 65536kB

描述

编写程序,计算下列分段函数y=f(x)的值。

y=-x+2.5; 0 <= x< 5

y=2-1.5(x-3)(x-3);5 <= x < 10

y=x/2-1.5; 10 <=x < 20

输入

一个浮点数N,0 <= N < 20

输出

输出N对应的分段函数值:f(N)。结果保留到小数点后三位。

样例输入

1.0

样例输出

1.500

-----------------------------------------------------

解题思路

C++的输出控制,见我的博客:https://blog.csdn.net/da_kao_la/article/details/79879642

-----------------------------------------------------

代码

//27:单词翻转
//总时间限制: 1000ms 内存限制: 65536kB
//描述
//输入一个句子(一行),将句子中的每一个单词翻转后输出。
//
//输入
//只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
//输出
//翻转每一个单词后的字符串,单词之间的空格需与原文一致。
//样例输入
//hello world
//样例输出
//olleh dlrow

#include
using namespace std;

int main()
{
    char s[501] = {0};
    int i = 0, len = 0, j = 0, beg = 0; // i:当前位置; j:下一个' '或'\0'的位置; beg:当前单词的开始
    cin.getline(s, 500);
    while (i<=500 && s[i] != '\0')
    {
        if (i==0)
        {
            beg = 0;
        }
        else if (s[i]!=' ' && s[i-1]==' ')
        {
            beg = i;
        }
        if (s[i] != ' ')
        {
            j = i;
            while (s[j]!=' ' && s[j]!='\0')
            {
                j++;
            }
            if (s[i] != ' ')
            {
                cout << s[beg + j-i-1];
            }
        }
        else
        {
            cout << s[i];
        }
        i++;
    }
}


你可能感兴趣的:(百练OJ/poj)