【字符串基础】我是第几个单词
题目描述
输入一个英文句子,例如:“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;
}