#3#5两个测试点死活过不去
查看原帖
#3#5两个测试点死活过不去
305926
qwq_it_is_me楼主2021/7/31 23:18

本人是一名蒟蒻,今天突发奇想想打一道紫题,然后就读不懂题 总觉得有些地方不知道怎么处理

两个点都是Wrong Answer. wrong answer On line 1 column 6, read o, expected i.

//https://www.luogu.com.cn/problem/P1953
#include<stdio.h>
#include<iostream>
using namespace std;
//文件主部分,输入的扩展名,输出的扩展名
char name[30],in[30],out[30];
bool isnumonname;//is num on name, 数字的位置是不是在文件主名上
char t1[30],t2[30];//计数
int start;//从几开始计数

const int cf[10]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};
// int pow(int x, int n)
// {
// 	int ret=1;
// 	for(int i = 0;i<n;i++){
// 		ret*=x;
// 	}
// 	return ret;
// }

bool fn2=false;

int main()
{
	int i,j;
	int lines=0;
	int dot;
	scanf("%s", name);


	if(name[0]=='0'||name[0]=='1'){//0或1
		start=name[0]-'0';

		scanf("%s", name);
		for(i=0;name[i]<'0'||name[i]>'9';i++);//find number
		name[i]=0;//cut
		for(i++;name[i]>='0'&&name[i]<='9';i++);//find letter
		j=0;
		while(name[i]!=0){
			in[j]=name[i];
			j++;
			i++;
		}赋值,把数字后的几位赋给·in·
		in[j]=0;//切断,以防万一

		scanf("%s", name);
		for(i=0;name[i]<'0'||name[i]>'9';i++);
		name[i]=0;
		for(i++;name[i]>='0'&&name[i]<='9';i++);
		j=0;
		while(name[i]!=0){
			out[j]=name[i];
			j++;
			i++;
		}
		out[j]=0;

		lines=1;
		while(cin>>t1>>t2){//计数菌
			lines++;
		}

		for(i=start;i<start+lines;i++){
			printf("%s%d%s ",name, i,in);
			printf("%s%d%s\n",name, i, out);
		}
		return 0 ;
	
	}

	//	-	-	-	-	-	-	-	-	-	-	-	-//
	//(else)
	scanf("%s", out);
	

	for(i=0;name[i]!='.';i++);
	dot = i;//记录点的位置 方便处理
	j=0;
	for(i++;name[i]!=0&&(name[i]>'9' || name[i]<'0');i++){
		in[j]=name[i];
		j++;
	}
	//start=name[dot-1]-'0';


	if(name[dot-1]>='0'&&name[dot-1]<='9'){
		for(i=dot-1,j=0;name[i]>='0'&&name[i]<='9';i--,j++){
			start+=cf[j]*(name[i]-'0');
		}
		isnumonname=true;
		name[i+1]='%';//这里是利用printf特性
		name[i+2]='d';
		name[i+3]='.';
		name[i+4]='%';
		name[i+5]='s';
		name[i+6]=0;
	}
	else {
		for(i=dot;name[i]<'0'||name[i]>'9';i++);

		while (name[i]!=0)
		{
			start=start*10+name[i]-'0';
			name[i]=0;
			i++;
		}
		
		isnumonname=false;
		name[dot]='.';
		name[dot+1]='%';//同上
		name[dot+2]='s';
		name[dot+3]='%';
		name[dot+4]='d';
	}

	char c;
	while(cin>>t1>>t2){//计数
		lines++;
	}
	if(isnumonname){
		for(i=start;i<start+lines;i++){
			printf(name, i,in);
			putchar(' ');
			printf(name, i, out);
			putchar('\n');
		}
	}
	else{
		for(i=0;out[i]<'0'||out[i]>'9';i++);
		out[i]=0;
		for(i=start;i<lines+start;i++){
			printf(name, in, i);
			putchar(' ');
			printf(name, out, i);
			putchar('\n');
		}
	}
	return 0;
}

我才不说我昨天才通第一道绿题

2021/7/31 23:18
加载中...