申明:写本篇文章的目的是为了方便自己使用,以下代码纯属自己编写,因为没有评测系统,因此无法保证正确性,若有人看到错误,请指正,谢谢。
题目1:——杭电OJ1088
大概意思就是:
1.如果输入了一个单词,并且加上这个单词(不是第一个单词还要在前面加上一个空格),行的长度不超过80个字符,请输出它,否则请输出到新行。
2.如果您在输入中读取了< br>,则开始一行。
3.如果您在输入中读取了< hr>,如果不是新开启的一行,就开始一个新行,然后显示80个字符的“-”,然后开始一个新行(再次)。
4.最后一行以换行符结尾。
#include<stdio.h>
#include<string.h>
char str[100];
int main()
{
int cnt=0;
while(scanf("%s",&str)!=EOF)
{
if(strcmp(str,"<br>")==0)
{
printf("\n");
cnt=0;
}
else if(strcmp(str,"<hr>")==0)
{
if(cnt!=0)
printf("\n");
for(int i=0;i<80;i++)
printf("-");
printf("\n");
cnt=0;
}
else
{
if(cnt+strlen(str)+1<=80)
{
if(cnt!=0)
{
printf(" ");
cnt++;
}
printf("%s",str);
cnt=cnt+strlen(str);
}
else
{
printf("\n%s",str);
cnt=strlen(str);
}
}
}
printf("\n");
return 0;
}
题目2:——杭电OJ1020
给定一个仅包含“A”-“Z”的字符串,我们可以使用以下方法对其进行编码:
1。每个包含k个字符的子字符串应该被编码到“kX”,其中“X”是这个子字符串中唯一的字符。
2。如果子字符串的长度为1,则“1”应被忽略。
输入
第一行包含一个整数N(1 <= N <= 100),表示测试用例的数量。下一个N行包含N个字符串。每个字符串只包含“A”-“Z”,长度小于10000。
输出
对于每个测试用例,将编码的字符串输出到一行中
#include<stdio.h>
#include<string.h>
int main()
{
int n;
char s[10001];
char temp;
int cnt;
scanf("%d",&n);
while(n--)
{
scanf("%s",&s);
temp=s[0];
cnt=1;
for(int i=1;i<strlen(s);i++)
{
if(s[i]==temp)
cnt++;
else{
if(cnt!=1)
printf("%d",cnt);
printf("%c",temp);
temp=s[i];
cnt=1;
}
}
if(cnt!=1)
printf("%d",cnt);
printf("%c\n",temp);
}
}