C/C++每日一练(20230331)

简介: C/C++每日一练(20230331)

标注 ※ 为最基础的题目。




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;
    }
}



输出:

目录
相关文章
|
7月前
|
Linux 监控 Ubuntu
Linux 终端操作命令(1)
Linux 终端操作命令(1)
98 1
Linux 终端操作命令(1)
|
7月前
|
算法 Java Go
Rust每日一练(Leetday0018) N皇后II、最大子数组和、螺旋矩阵
Rust每日一练(Leetday0018) N皇后II、最大子数组和、螺旋矩阵
48 1
Rust每日一练(Leetday0018) N皇后II、最大子数组和、螺旋矩阵
|
7月前
|
Linux 监控 Shell
Linux 终端命令之文件浏览(4) head, tail
Linux 终端命令之文件浏览(4) head, tail
61 0
Linux 终端命令之文件浏览(4) head, tail
|
7月前
|
Shell Linux 机器学习/深度学习
Linux 终端操作命令(3)内部命令用法
Linux 终端操作命令(3)内部命令用法
92 0
Linux 终端操作命令(3)内部命令用法
|
7月前
|
Python Linux Ubuntu
Linux系统部署Python语言开发运行环境
Linux系统部署Python语言开发运行环境
220 0
Linux系统部署Python语言开发运行环境
|
7月前
|
Go Unix 开发者
Go语言time库,时间和日期相关的操作方法
Go语言time库,时间和日期相关的操作方法
102 0
Go语言time库,时间和日期相关的操作方法
|
7月前
|
C++ 存储 Serverless
力扣C++|一题多解之数学题专场(2)
力扣C++|一题多解之数学题专场(2)
50 0
力扣C++|一题多解之数学题专场(2)
|
7月前
|
Go 机器学习/深度学习 Rust
Golang每日一练(leetDay0119) 反转字符串I\II Reverse String
Golang每日一练(leetDay0119) 反转字符串I\II Reverse String
88 0
Golang每日一练(leetDay0119) 反转字符串I\II Reverse String
|
7月前
|
Java Go C++
Golang每日一练(leetDay0115) 重新安排行程、递增的三元子序列
Golang每日一练(leetDay0115) 重新安排行程、递增的三元子序列
64 0
Golang每日一练(leetDay0115) 重新安排行程、递增的三元子序列
|
7月前
|
Java Go C++
Golang每日一练(leetDay0111) 摆动排序II\I Wiggle Sort
Golang每日一练(leetDay0111) 摆动排序II\I Wiggle Sort
57 0
Golang每日一练(leetDay0111) 摆动排序II\I Wiggle Sort