标注 ※ 为最基础的题目。
1. 最后一个单词的长度
给你一个字符串 s
,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = "Hello World"
输出:5
示例 2:
输入:s = " "
输出:0
提示:
1 <= s.length <= 10^4
s 仅有英文字母和空格 ' ' 组成
出处:
https://edu.csdn.net/practice/24290103
代码:
#include <stdio.h> #include <stdlib.h> int lengthOfLastWord(char *s) { int len = 0; while (*s != '\0') { if (s[-1] == ' ' && s[0] != ' ') { len = 1; } else if (*s != ' ') { len++; } s++; } return len; } int main() { printf("%d\n", lengthOfLastWord("Hello World")); return 0; }
输出:
5
C++实现:
#include <iostream> #include <string> using namespace std; int lengthOfLastWord(string s) { int len = s.length(); int lastWordLen = 0; for (int i = len - 1; i >= 0; i--) { if (s[i] != ' ') { lastWordLen++; } else if (lastWordLen > 0) { break; } } return lastWordLen; } int main() { string s = "Hello World"; cout << lengthOfLastWord(s) << endl; // 输出 5 return 0; }
字符串的末尾开始遍历,如果遇到空格,则判断当前是否已经遍历到了最后一个单词的末尾,如果是,则返回最后一个单词的长度。如果不是,则继续遍历。如果遇到非空格字符,则将最后一个单词的长度加1。最后,如果整个字符串中没有单词,则返回0。
2. 水果计费系统
编写程序,有五种水果,apple、banana、orage、strawberry、pear,每一种有一个价格(浮点小数),由老板输入,请提示用户选择什么水果,购买数量(按照斤两),然后将总价显示出来。
出处:
https://edu.csdn.net/practice/24290104
代码:
#include<stdio.h> int main() { typedef enum {apple, banana, orange, strawberry, pear} fruits; double prices[5]; fruits purchase; int fruit; double amount; printf("水果编号:1.苹果 2.香蕉 3.橘子 4.草莓 5.梨\n"); printf("请输入5种水果的单价:\n"); for(int i = 0; i < 5; i++) scanf("%lf", &prices[i]); printf("请输入购买的水果(1~5),以及购买数量(按照斤两):\n"); scanf("%d %lf", &fruit, &amount); purchase = (fruits)fruit; printf("总价为:%.3lf", prices[purchase-1]*amount); return 0; }
输入输出:
水果编号:1.苹果 2.香蕉 3.橘子 4.草莓 5.梨
请输入5种水果的单价:
2.2 3.3 4.4 5.5 6.6
请输入购买的水果(1~5),以及购买数量(按照斤两):
2 100
总价为:330.000
3. 条件分支结构
原标题:if else 和 switch 使用
输入学生成绩, 若成绩在95分以上,输出“A”;
若成绩在85~94分,输出“B”;
若成绩在75~84分,输出“C”;
若成绩在65~74分,输出“D”;
若成绩在65分以下,输出“E”。(分别用if else 和 switch 语句完成)
出处:
https://edu.csdn.net/practice/24290105
代码:
#include "stdio.h" int main() { int score; scanf("%d", &score); if (score >= 95) { printf("A"); } else if (score >= 85 && score <= 94) { printf("B"); } else if (score >= 75 && score <= 84) { printf("C"); } else if (score >= 65 && score <= 74) { printf("D"); } else { printf("E"); } printf("\n以下用switch语句实现相同功能\n"); score = score - 5; score = score / 10; switch (score) { case 9: printf("A"); break; case 8: printf("B"); break; case 7: printf("C"); break; case 6: printf("D"); break; default: printf("E"); break; } }
输出:
略