第八章 字符串作业

This commit is contained in:
xtaodada 2021-12-14 22:38:15 +08:00
parent 65eed8f70f
commit e5c72f39c7
No known key found for this signature in database
GPG Key ID: EE4DC37B55E24736
11 changed files with 312 additions and 3 deletions

View File

@ -1,3 +1,3 @@
# 第六章 函数作业 # 第七章 作业(指针)
> 作业时间: 2021-11-21 10:01:00 至 2021-12-18 10:00:00 > 作业时间: 2021-12-06 19:13:00 至 2021-12-26 23:55:00

43
08-1/1/README.md Normal file
View File

@ -0,0 +1,43 @@
【问题描述】
回文是正读和倒读都一样的句子。读入一个最大长度不超过50个字符的句子判断其是否是回文。
【输入形式】
输入一个最大长度不超过50个字符的句子
【输出形式】
Yes/No
【输入样例】
abcba
【输出样例】
Yes
【样例说明】
输入abcba判断出它是回文。
【评分标准】
该题要求输出一个判断值,答对得20分,每个测试点4分提交程序文件名为c0604.c。
# 运行结果
成功通过编译, 且无编译警告
共有测试数据:5
平均占用内存:1.928K
平均CPU时间:0.00589S
平均墙钟时间:0.00589S
测试数据 评判结果
测试数据1 完全正确
测试数据2 完全正确
测试数据3 完全正确
测试数据4 完全正确
测试数据5 完全正确

20
08-1/1/c0604.c Normal file
View File

@ -0,0 +1,20 @@
#include<stdio.h>
#include<string.h>
int main(){
int n;
char a[50];
scanf("%s",a);
n=strlen(a)-1;
for(int i=0;i<n;i++){
if(a[i]!=a[n-i]){
printf("No");
return 0;
}
}
printf("Yes");
return 0;
}

54
08-1/2/README.md Normal file
View File

@ -0,0 +1,54 @@
【问题描述】
编写一个函数invert(s)颠倒输入的字符串参数s后返回。在main()函数中测试此函数从键盘输入一个正整数n`n∈[1,20]`,然后再输入n个字符串长度不大于100对于每一个字符串然后调用invert函数进行颠倒字符串操作将颠倒后的字符串打印在屏幕上。
【输入形式】
从键盘输入整数n然后再输入n个字符串每行一个字符串。
【输出形式】
输出各个字符串颠倒以后的字符串,每个字符串之间用换行符隔开。
【输入样例】
```
3
1AdkflsddfYjkdfDD
aaaaaaaaaaAAAAAAAAAA
12345678aBc
```
【输出样例】
```
DDfdkjYfddslfkdA1
AAAAAAAAAAaaaaaaaaaa
cBa87654321
```
【样例说明】
因为输入n为3故输入3个字符串。将字符串"1AdkflsddfYjkdfDD"首尾颠倒后的结果是"DDfdkjYfddslfkdA1";将字符串"aaaaaaaaaaAAAAAAAAAA"首尾颠倒后的结果是"AAAAAAAAAAaaaaaaaaaa";将字符串"12345678aBc"首尾颠倒后的结果是"cBa87654321";故输出:
DDfdkjYfddslfkdA1
AAAAAAAAAAaaaaaaaaaa
cBa87654321
【评分标准】
结果完全正确得20分每个测试点4分提交程序文件名称为 `c11.c`
# 运行结果
成功通过编译, 且无编译警告
共有测试数据:5
平均占用内存:1.934K
平均CPU时间:0.00524S
平均墙钟时间:0.00524S
测试数据 评判结果
测试数据1 完全正确
测试数据2 完全正确
测试数据3 完全正确
测试数据4 完全正确
测试数据5 完全正确

22
08-1/2/c11.c Normal file
View File

@ -0,0 +1,22 @@
#include<stdio.h>
#include<string.h>
void invert(char s[], int len){
char c;
for(int i=0;i<len/2;i++){
c=s[len-i-1];
s[len-i-1]=s[i];
s[i]=c;
}
}
int main(){
int n;
char s[101];
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%s",s);
invert(s, strlen(s));
printf("%s\n",s);
}
return 0;
}

26
08-1/3/3.c Normal file
View File

@ -0,0 +1,26 @@
#include<stdio.h>
#include<string.h>
int main(){
int a=0,b=0,c=0;
char s;
while(s=getchar(),s!=EOF){
switch (s) {
case 32:
a++;
break;
case 9:
b++;
break;
case 10:
c++;
break;
default:
break;
}
}
printf("%d %d %d",a,b,c);
return 0;
}

51
08-1/3/README.md Normal file
View File

@ -0,0 +1,51 @@
【问题描述】
分别统计标准输入中空格、制表符及回车符的个数输入以Ctrl-Z结束
【输入形式】
从标准输入中读取字符可以包含任意字符。输入以Ctrl-Z结束。
【输出形式】
分别输出输入字符中空格,制表符和回车符的个数,相邻数字之间用一个空格区分,输出末尾没有空格。
【样例输入】
```
C lanuage is very important. HAHAHAHAHAA.....
HAHAHAHAHAH
HAHAHA
```
【样例输出】
```
4 3 3
```
【样例说明】
字符串中共有4个空格3个制表符注意在这里important后面的句点和HAHAHAHAHAA之间有3个制表符但是在这里显示得并不明显。以及3个回车所以输出4 3 3
【评分标准】
结果完全正确得25分每个测试点5分。
说明输入以Ctrl-Z结束即判断输入数据是否为EOF-1
# 运行结果
成功通过编译, 且无编译警告
共有测试数据:5
平均占用内存:1.909K
平均CPU时间:0.00616S
平均墙钟时间:0.00616S
测试数据 评判结果
测试数据1 完全正确
测试数据2 完全正确
测试数据3 完全正确
测试数据4 完全正确
测试数据5 完全正确

47
08-1/4/README.md Normal file
View File

@ -0,0 +1,47 @@
【问题描述】
编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。
【输入形式】
从键盘输入一个字符串,以回车结束输入。要求程序可以处理含有空格的字符串。
【输出形式】
程序接收此字符串然后将其按照字符ASCII码值从小到大的顺序进行排序并删除重复的字符输出。如果字符串为空输出也应该为空。
【样例输入】
```
badacgegfacb
```
【样例输出】
```
abcdefg
```
【样例说明】
输入badacgegfacb然后排序、删除重复字符得到abcdefg。
【评分标准】
完全正确为20分每个测试点4分。提交程序文件名为 `trim.c`
# 运行结果
成功通过编译, 且无编译警告
共有测试数据:5
平均占用内存:1.925K
平均CPU时间:0.00523S
平均墙钟时间:0.00524S
测试数据 评判结果
测试数据1 完全正确
测试数据2 完全正确
测试数据3 完全正确
测试数据4 完全正确
测试数据5 完全正确

38
08-1/4/trim.c Normal file
View File

@ -0,0 +1,38 @@
#include<stdio.h>
#include<string.h>
int if_exist_in_string(char s_[100], char a, int len){
for(int i=0;i<len;i++){
if(s_[i]==a) return 1;
}
return 0;
}
int main(){
int n,n_=0;
char s[100],s_[100],temp;
scanf("%s",s);
n=strlen(s);
for(int i=0;i<n;i++){
if(if_exist_in_string(s_,s[i],n_)==0){
s_[n_]=s[i];
s_[n_+1]='\0';
}
n_=strlen(s_);
}
for(int i=0;i<n_;i++){
for(int j=i+1;j<n_;j++){
if(s_[i]>s_[j]){
temp=s_[i];
s_[i]=s_[j];
s_[j]=temp;
}
}
}
for(int i=0;i<n_;i++) {
printf("%c",s_[i]);
}
return 0;
}

3
08-1/README.md Normal file
View File

@ -0,0 +1,3 @@
# 第八章 作业(字符串)
> 作业时间: 2021-12-13 23:17:00 至 2021-12-26 23:55:00

View File

@ -69,9 +69,14 @@ A repo to record my study life.
- [实验七 指针(2学时)](https://github.com/xtaodada/C-study/tree/master/07) - [实验七 指针(2学时)](https://github.com/xtaodada/C-study/tree/master/07)
- [1. 利用指针,设计子函数实现求两个数的和差积商](https://github.com/xtaodada/C-study/tree/master/07/1) - [1. 利用指针,设计子函数实现求两个数的和差积商](https://github.com/xtaodada/C-study/tree/master/07/1)
- [2. 对一组数据置逆,查找操作](https://github.com/xtaodada/C-study/tree/master/07/2) - [2. 对一组数据置逆,查找操作](https://github.com/xtaodada/C-study/tree/master/07/2)
- [章 指针作业](https://github.com/xtaodada/C-study/tree/master/07-1) - [章 指针作业](https://github.com/xtaodada/C-study/tree/master/07-1)
- [1. 数组异或](https://github.com/xtaodada/C-study/tree/master/07-1/1) - [1. 数组异或](https://github.com/xtaodada/C-study/tree/master/07-1/1)
- [2. 求两组整数的并集2](https://github.com/xtaodada/C-study/tree/master/07-1/2) - [2. 求两组整数的并集2](https://github.com/xtaodada/C-study/tree/master/07-1/2)
- [3. 求两组整数的交集a](https://github.com/xtaodada/C-study/tree/master/07-1/3) - [3. 求两组整数的交集a](https://github.com/xtaodada/C-study/tree/master/07-1/3)
- [4. 超长正整数的加法](https://github.com/xtaodada/C-study/tree/master/07-1/4) - [4. 超长正整数的加法](https://github.com/xtaodada/C-study/tree/master/07-1/4)
- [5. 二维整型数组的“最小点”](https://github.com/xtaodada/C-study/tree/master/07-1/5) - [5. 二维整型数组的“最小点”](https://github.com/xtaodada/C-study/tree/master/07-1/5)
- [第八章 字符串作业](https://github.com/xtaodada/C-study/tree/master/08-1)
- [1. 回文判断](https://github.com/xtaodada/C-study/tree/master/08-1/1)
- [2. 颠倒字符串](https://github.com/xtaodada/C-study/tree/master/08-1/2)
- [3. 统计输入中空格、制表符及回车符的个数](https://github.com/xtaodada/C-study/tree/master/08-1/3)
- [4. 删除重复字符排序字符串](https://github.com/xtaodada/C-study/tree/master/08-1/4)