educoder里mysql数据库_EDUCoder练习部分题解(字符数组与循环)

字符数组

第1关:字符逆序

任务描述

题目描述:输入一个字符串,输出反序后的字符串。

输入

一行字符

输出

逆序后的字符串git

测试说明

样例输入:

123456abcdef

样例输出:

fedcba654321web

特别注意:样例输出没有进行换行操做编程

解题程序:数组

/* 第1关:字符逆序 */

#include

#include

char s[1024];

int main(void)

{

/*********Begin*********/

scanf("%s", s);

int i;

for(i = strlen(s) - 1; i >= 0; i--)

putchar(s[i]);

putchar('\n');

/*********End**********/

return 0;

}

第2关:字符统计

任务描述

题目描述:对于给定的一个字符串,统计其中数字字符出现的次数。svg

输入

输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。

输出

对于每一个测试实例,输出该串中数值的个数,每一个输出占一行。、函数

测试说明

样例输入:

2

asdfasdf123123asdfasdf

asdf111111111asdfasdfasdf

样例输出:

6

9测试

解题程序:网站

/* 第2关:字符统计 */

#include

#include

char s[1024];

int main(void)

{

/*********Begin*********/

int n;

scanf("%d", &n);

while(n--) {

scanf("%s", s);

int cnt = 0, i;

for(i = 0; s[i]; i++)

if(isdigit(s[i])) cnt++;

printf("%d\n", cnt);

}

/*********End**********/

return 0;

}

第4关:字符串处理

任务描述

题目描述:编写程序,输入字符串s1和s2以及插入位置f,在字符串s1中的指定位置f处插入字符串s2。如输入"BEIJING", “123”, 3,则输出:“BEI123JING”。spa

输入

第一行和第二行分别输入两个字符串s1和s2,第三行输入插入位置f。code

每一个字符串的长度不超过100个字符。

输出

输出一行插入后的字符串。

测试说明

样例输入:

BEIJING

123

3

样例输出:

BEI123JING

注意:使用gets()**函数会引发警告并非报错,只要代码编译正确并不会影响测评结果。

**推荐使用:fgets()函数。

解题程序:

/* 第4关:字符串处理 */

#include

#include

char s1[1024], s2[1024];

int main(void)

{

/*********Begin*********/

int n;

scanf("%s%s%d", s1, s2, &n);

strcat(s2, s1 + n);

strcpy(s1 + n, s2);

printf("%s\n", s1);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于educoder编程实训题目的解答,需要具体分析每个题目的要求和限制条件,然后根据所学的编程知识和技能进行编写代码。以下是一些常见的educoder编程实训题目的解答思路和方法: 1. 数组元素交换 这道题目要求交换数组中的两个元素的位置,可以使用一个中间变量来实现交换,具体步骤如下: ```python # 输入数组 arr = list(map(int, input().split())) # 输入需要交换位置的元素下标 i, j = map(int, input().split()) # 交换元素 temp = arr[i] arr[i] = arr[j] arr[j] = temp # 输出交换后的数组 print(arr) ``` 2. 二分查找 这道题目要求在一个有序数组中查找一个指定的元素,可以使用二分查找算法来实现,具体步骤如下: ```python # 输入有序数组 arr = list(map(int, input().split())) # 输入需要查找的元素 target = int(input()) # 二分查找 left, right = 0, len(arr) - 1 while left <= right: mid = (left + right) // 2 if arr[mid] == target: print(mid) break elif arr[mid] > target: right = mid - 1 else: left = mid + 1 else: print(-1) ``` 3. 冒泡排序 这道题目要求对一个数组进行冒泡排序,可以使用双重循环来实现,具体步骤如下: ```python # 输入数组 arr = list(map(int, input().split())) # 冒泡排序 for i in range(len(arr)): for j in range(len(arr) - i - 1): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] # 输出排序后的数组 print(arr) ``` 4. 字符串反转 这道题目要求对一个字符串进行反转,可以使用切片方法来实现,具体步骤如下: ```python # 输入字符串 s = input() # 反转字符串 s_reversed = s[::-1] # 输出反转后的字符串 print(s_reversed) ``` 5. 求最大公约数 这道题目要求求两个整数的最大公约数,可以使用辗转相除法(欧几得算法)来实现,具体步骤如下: ```python # 输入两个整数 a, b = map(int, input().split()) # 辗转相除法求最大公约数 while b != 0: a, b = b, a % b # 输出最大公约数 print(a) ``` 以上仅仅是一些常见educoder编程实训题目的解答思路和方法,具体的题目还需要根据题目要求进行具体分析和实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值