南京理工大学 程序设计基础(Ⅰ) SPOC | 学校专有课程 编程作业 第6章作业2

本文介绍三道编程题目,涉及字符串逆序数计算、字符串内整数求和及字符集合提取。通过实际代码示例,帮助读者掌握相关算法实现。
部署运行你感兴趣的模型镜像

第一题:字符串逆序数(100分)

问题描述:
计算并返回字符串a的逆序。逆序的概念:在一个字符串中,如果存在i<j,且a[i]>a[j],则称a[i]和a[j]构成一个逆序。例如"DAABEC"的逆序是5,其中D与A、A、B、C构成4个逆序,E与C构成1个逆序。

输入描述
输入一个字符串,长度不超过100。

输出描述
输出一个整数,为输入字符串的逆序数目。

输入样例
DAABEC

输出样例
5

#include<iostream>
using namespace std;

int main() {
	int num = 0;
	char ch[101];
	cin >> ch;
	for (int i = 0; ch[i] != 0; i++) {
		for (int j = i; ch[j] != 0; j++) {
			if (ch[i] > ch[j]) num++;
		}
	}
	cout << num;

	return 0;
}

第二题:字符串中整数之和(100分)

问题描述:
输入一条字符串,将字符串中的数字之和计算。例如:输入字符串“abc100de200ef300”,则字符串中的数字分别为100、200和300,它们之和为600。

输入描述
输入一条字符串(长度不超过100)

输出描述
输出一个整数,为字符串中数字之和,后面不要输出空格。

输入样例
abc100de200ef300

输出样例
600

#include<iostream>
using namespace std;
void printChar(char ch[], int i, int k) {
	while (i <= k) {
		cout << ch[i];
		i++;
	}
	cout << endl;
}
int num;
void charToInt(char ch[], int j, int k) {
	int num1 = 0;
	while (j <= k) {
		num1 *= 10;
		num1 += ch[j] - '0';
		j++;
	}
	num += num1;
}
int main() {
	char ch[101];
	cin >> ch;

	for (int i = 0; ch[i] != 0; i++) {
		if (ch[i] > '0' && ch[i] <= '9') {
			int k = i;
			while (ch[k] >= '0' && ch[k] <= '9') k++;
			k--;
			//printChar()函数可以打印出字符串中的字符。
			
			//printChar(ch, i, k);
			charToInt(ch, i, k);
			i = k;
		}
	}
	cout << num;

	return 0;
}

第三题:(感谢大佬提供清奇的思路~大佬NB ~)

字符集合(100分) 问题描述
一个集合set中的各个元素相互之间不相等。编写程序从字符串中取出相互不等的字符,就构成一个字符集合。

输入描述
输入一条字符串(长度不超过100)

输出描述

依次输出字符集合中的字符,后面不要输出空格。字符按字符串中第一次出现的位置排序。

输入样例
rthfgnhgkufgd

输出样例
rthfgnkud

#include<iostream>
using namespace std;
int main() {
    char ch[100];
    cin >> ch;
    cout << ch[0];
    for (int i = 1; ch[i] != 0; i++) {
        bool FLAG = true;
        for (int j = 0; j < i; j++) {
            if (ch[i] == ch[j]) FLAG = false;
        }
        if (FLAG) cout << ch[i];
    }
    return 0;
}

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值