练习1-28

【字符串基础】我是第几个单词

题目描述

输入一个英文句子,例如:“This is a Book.",可以看到句子是以“.”来作为结束符号的,并且单词之间以一个空格来分隔。接着再输入一个单词A,请找出首次在句子中出现的与A相同的单词,是句子中的第几个单词,若不存在,则输出该句子中单词字符的总个数。 例如对上句子而言,若输入单词“is”,则应输出:2 若输入单词“isa”,则应输出:11

输入

第一行为以‘.’结束的一个词组(仅由若干个单词组成,单词间由一空格隔开,除单词和最后的“.”以外,不含其它字符)
第二行是一个单词(不含空格)

输出

一个整数

样例

样例输入
This is a Book.
Book
样例输出
4
AC code

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef float f;
typedef double d;
bool re = false;//判断是否存在单词
int main() {
    char a[10000], word[100], temp[100] = {'\0'};
    int total = 0, words = 0, k = 0;
    //words为单词查找单词的位置,total为字符总个数
    cin.getline(a, 10000);
    cin.getline(word,100);
    for (int i = 0; a[i] != '.'; i++) {
        if (a[i] != ' ') {
            temp[k] = a[i];
            k++;
            total++;
            if (a[i + 1] == ' ' || a[i + 1] == '.') {
                words++;
                temp[k] = '\0';
                k = 0;//将单词逐个与word[]进行比较;若相同re==true;
                if (strcmp(word, temp) == 0) {
                    re = true;
                    cout << words;
                    break;
                }
            }
        }
    }
    if (!re) {
        cout << total;
    }
}

【字符串基础】字符串连接

题目描述

给出两个字符串,将它们进行拼接,拼接过程中每个字符只允许出现一次。
如:两个字符串s1=“adeab”,s2=“fcadex”,那么连接时s1留下adeb(第2个a出现过了,就不要了),再将s2连接上来形成adebfcx,两个字符串中重复的都过滤掉,但剩余的顺序不要调整。

输入

两行,每行一个只包含小写英文字母的字符串。

输出

一行,连接后的字符串。

样例

样例输入
abc
daaeb
样例输出
abcde

努力解决中(coding)

倒数之和

题目描述

本题主要完成函数Fun,其功能是:计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。例如从键盘输入20,则输出为0.583333。

输入

一个自然数n(n<=100)。

输出

满足要求的自然数的倒数之和。

WAcode(其实我也没搞懂我哪里错了)

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
typedef float F;
typedef double D;
D fun(int x) {
    D sum = 0;
    for (int i = 1; i <= x; i++) {
        if (i % 5 == 0 || i % 9 == 0) {
            sum += 1.0 / i;
        }
    }
    return sum;
}
int main() {
    int n;
    cin >> n;
    cout << fun(n);
}

ACcode

#include<stdio.h>
float fun(int n);
int main() {
    int a;
    scanf("%d", &a);
    printf("%f", fun(a));
}
float fun(int n) {
    float sum = 0;
    for (int i = 1; i <= n; i++) {
        if (i % 5 == 0 || i % 9 == 0) {
            sum += 1.0 / i;
        }
    }
    return sum;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值