user-0 提问: 一道OJ上的题

回复:
user: user-0
content: 引用 7 楼 qq_36409192 的回复:[quote=引用 6 楼 qq_33046541 的回复:] [quote=引用 5 楼 qq_36409192 的回复:] [quote=引用 4 楼 qq_33046541 的回复:] [quote=引用 2 楼 qq_36409192 的回复:] 应该是符号问题，你的符号可能是中文状态下输入的。 我本机运行可以，提交上去显示答案错误[/quote] 你的符号有问题，不能在中文输入的状态下输入符号，英文和中文这两种状态输出的符号是不同的。我帮你重新打了一遍，你再试试我这个打的。#include <cstdio> #include <cstring> int main() { 	char szA[120]; 	int nLen; 	int j; 	while(gets(szA)!=NULL) 	{ 		j=0; 		nLen=strlen(szA); 		if(szA[0]>=97&&szA[0]<=122) 			szA[0]-=32; 		for(int i=0;i<nLen;i++) 		{ 			if(szA[i]==' '||szA[i]=='\t'||szA[i]=='\r'||szA[i]=='\n') 				j=i; 			else if(j==i-1) 			if(szA[i]>=97&&szA[i]<=122) 				szA[i]-=32; 			puts(szA); 		} 		 	} 	return 0; } PS：如果符号的位置有问题，你自己稍微改下。[/quote]还是错误。。 [/quote] 程序有问题，我稍微改了下。 #include <cstdio> #include <cstring> #include <cctype>  int main() { 	char szA[120]; 	int nLen; 	int j; 	while(gets(szA)!=NULL) 	{ 		nLen=strlen(szA); 		if(szA[0]>=97&&szA[0]<=122) 			szA[0]-=32; 		for(int i=0;i<nLen;i++) 		{ 			if(szA[i]==' '||szA[i]=='\t'||szA[i]=='\r'||szA[i]=='\n') 			{ 				if(szA[i+1]>=97&&szA[i+1]<=122) 				szA[i+1]-=32; 			} 		} 		puts(szA); 	} 	return 0; }[/quote]我原来的写法为什么错了呀？

user: user-1
content: 引用 6 楼 qq_33046541 的回复:[quote=引用 5 楼 qq_36409192 的回复:] [quote=引用 4 楼 qq_33046541 的回复:] [quote=引用 2 楼 qq_36409192 的回复:] 应该是符号问题，你的符号可能是中文状态下输入的。 我本机运行可以，提交上去显示答案错误[/quote] 你的符号有问题，不能在中文输入的状态下输入符号，英文和中文这两种状态输出的符号是不同的。我帮你重新打了一遍，你再试试我这个打的。#include <cstdio> #include <cstring> int main() { 	char szA[120]; 	int nLen; 	int j; 	while(gets(szA)!=NULL) 	{ 		j=0; 		nLen=strlen(szA); 		if(szA[0]>=97&&szA[0]<=122) 			szA[0]-=32; 		for(int i=0;i<nLen;i++) 		{ 			if(szA[i]==' '||szA[i]=='\t'||szA[i]=='\r'||szA[i]=='\n') 				j=i; 			else if(j==i-1) 			if(szA[i]>=97&&szA[i]<=122) 				szA[i]-=32; 			puts(szA); 		} 		 	} 	return 0; } PS：如果符号的位置有问题，你自己稍微改下。[/quote]还是错误。。 [/quote] 程序有问题，我稍微改了下。 #include <cstdio> #include <cstring> #include <cctype>  int main() { 	char szA[120]; 	int nLen; 	int j; 	while(gets(szA)!=NULL) 	{ 		nLen=strlen(szA); 		if(szA[0]>=97&&szA[0]<=122) 			szA[0]-=32; 		for(int i=0;i<nLen;i++) 		{ 			if(szA[i]==' '||szA[i]=='\t'||szA[i]=='\r'||szA[i]=='\n') 			{ 				if(szA[i+1]>=97&&szA[i+1]<=122) 				szA[i+1]-=32; 			} 		} 		puts(szA); 	} 	return 0; }

user: user-1
content: 引用 10 楼 qq_33046541 的回复:[quote=引用 9 楼 qq_36409192 的回复:] [quote=引用 8 楼 qq_33046541的回复:][quote=引用 7 楼 qq_36409192 的回复:] [quote=引用 6 楼 qq_33046541 的回复:] [quote=引用 5 楼 qq_36409192 的回复:] [quote=引用 4 楼 qq_33046541 的回复:] [quote=引用 2 楼 qq_36409192 的回复:] 应该是符号问题，你的符号可能是中文状态下输入的。 我本机运行可以，提交上去显示答案错误[/quote] 你的符号有问题，不能在中文输入的状态下输入符号，英文和中文这两种状态输出的符号是不同的。我帮你重新打了一遍，你再试试我这个打的。#include <cstdio> #include <cstring> int main() { 	char szA[120]; 	int nLen; 	int j; 	while(gets(szA)!=NULL) 	{ 		j=0; 		nLen=strlen(szA); 		if(szA[0]>=97&&szA[0]<=122) 			szA[0]-=32; 		for(int i=0;i<nLen;i++) 		{ 			if(szA[i]==' '||szA[i]=='\t'||szA[i]=='\r'||szA[i]=='\n') 				j=i; 			else if(j==i-1) 			if(szA[i]>=97&&szA[i]<=122) 				szA[i]-=32; 			puts(szA); 		} 		 	} 	return 0; } PS：如果符号的位置有问题，你自己稍微改下。[/quote]还是错误。。 [/quote] 程序有问题，我稍微改了下。 #include <cstdio> #include <cstring> #include <cctype>  int main() { 	char szA[120]; 	int nLen; 	int j; 	while(gets(szA)!=NULL) 	{ 		nLen=strlen(szA); 		if(szA[0]>=97&&szA[0]<=122) 			szA[0]-=32; 		for(int i=0;i<nLen;i++) 		{ 			if(szA[i]==' '||szA[i]=='\t'||szA[i]=='\r'||szA[i]=='\n') 			{ 				if(szA[i+1]>=97&&szA[i+1]<=122) 				szA[i+1]-=32; 			} 		} 		puts(szA); 	} 	return 0; }[/quote]我原来的写法为什么错了呀？ [/quote] 你把你写的自己试试就知道问题在哪里了。。[/quote] 我试过，样例可以通过啊[/quote] 我这边显示你把第一个单词的第二个字母也改成大写了，而且程序是否正确不能只用一组数组验证，你多试试。

user: user-0
content: 引用 9 楼 qq_36409192 的回复:[quote=引用 8 楼 qq_33046541的回复:][quote=引用 7 楼 qq_36409192 的回复:] [quote=引用 6 楼 qq_33046541 的回复:] [quote=引用 5 楼 qq_36409192 的回复:] [quote=引用 4 楼 qq_33046541 的回复:] [quote=引用 2 楼 qq_36409192 的回复:] 应该是符号问题，你的符号可能是中文状态下输入的。 我本机运行可以，提交上去显示答案错误[/quote] 你的符号有问题，不能在中文输入的状态下输入符号，英文和中文这两种状态输出的符号是不同的。我帮你重新打了一遍，你再试试我这个打的。#include <cstdio> #include <cstring> int main() { 	char szA[120]; 	int nLen; 	int j; 	while(gets(szA)!=NULL) 	{ 		j=0; 		nLen=strlen(szA); 		if(szA[0]>=97&&szA[0]<=122) 			szA[0]-=32; 		for(int i=0;i<nLen;i++) 		{ 			if(szA[i]==' '||szA[i]=='\t'||szA[i]=='\r'||szA[i]=='\n') 				j=i; 			else if(j==i-1) 			if(szA[i]>=97&&szA[i]<=122) 				szA[i]-=32; 			puts(szA); 		} 		 	} 	return 0; } PS：如果符号的位置有问题，你自己稍微改下。[/quote]还是错误。。 [/quote] 程序有问题，我稍微改了下。 #include <cstdio> #include <cstring> #include <cctype>  int main() { 	char szA[120]; 	int nLen; 	int j; 	while(gets(szA)!=NULL) 	{ 		nLen=strlen(szA); 		if(szA[0]>=97&&szA[0]<=122) 			szA[0]-=32; 		for(int i=0;i<nLen;i++) 		{ 			if(szA[i]==' '||szA[i]=='\t'||szA[i]=='\r'||szA[i]=='\n') 			{ 				if(szA[i+1]>=97&&szA[i+1]<=122) 				szA[i+1]-=32; 			} 		} 		puts(szA); 	} 	return 0; }[/quote]我原来的写法为什么错了呀？ [/quote] 你把你写的自己试试就知道问题在哪里了。。[/quote] 我试过，样例可以通过啊

user: user-1
content: 引用 8 楼 qq_33046541的回复:[quote=引用 7 楼 qq_36409192 的回复:] [quote=引用 6 楼 qq_33046541 的回复:] [quote=引用 5 楼 qq_36409192 的回复:] [quote=引用 4 楼 qq_33046541 的回复:] [quote=引用 2 楼 qq_36409192 的回复:] 应该是符号问题，你的符号可能是中文状态下输入的。 我本机运行可以，提交上去显示答案错误[/quote] 你的符号有问题，不能在中文输入的状态下输入符号，英文和中文这两种状态输出的符号是不同的。我帮你重新打了一遍，你再试试我这个打的。#include <cstdio> #include <cstring> int main() { 	char szA[120]; 	int nLen; 	int j; 	while(gets(szA)!=NULL) 	{ 		j=0; 		nLen=strlen(szA); 		if(szA[0]>=97&&szA[0]<=122) 			szA[0]-=32; 		for(int i=0;i<nLen;i++) 		{ 			if(szA[i]==' '||szA[i]=='\t'||szA[i]=='\r'||szA[i]=='\n') 				j=i; 			else if(j==i-1) 			if(szA[i]>=97&&szA[i]<=122) 				szA[i]-=32; 			puts(szA); 		} 		 	} 	return 0; } PS：如果符号的位置有问题，你自己稍微改下。[/quote]还是错误。。 [/quote] 程序有问题，我稍微改了下。 #include <cstdio> #include <cstring> #include <cctype>  int main() { 	char szA[120]; 	int nLen; 	int j; 	while(gets(szA)!=NULL) 	{ 		nLen=strlen(szA); 		if(szA[0]>=97&&szA[0]<=122) 			szA[0]-=32; 		for(int i=0;i<nLen;i++) 		{ 			if(szA[i]==' '||szA[i]=='\t'||szA[i]=='\r'||szA[i]=='\n') 			{ 				if(szA[i+1]>=97&&szA[i+1]<=122) 				szA[i+1]-=32; 			} 		} 		puts(szA); 	} 	return 0; }[/quote]我原来的写法为什么错了呀？ [/quote] 你把你写的自己试试就知道问题在哪里了。。

user: user-0
content: 引用 5 楼 qq_36409192 的回复:[quote=引用 4 楼 qq_33046541 的回复:] [quote=引用 2 楼 qq_36409192 的回复:] 应该是符号问题，你的符号可能是中文状态下输入的。 我本机运行可以，提交上去显示答案错误[/quote] 你的符号有问题，不能在中文输入的状态下输入符号，英文和中文这两种状态输出的符号是不同的。我帮你重新打了一遍，你再试试我这个打的。#include <cstdio> #include <cstring> int main() { 	char szA[120]; 	int nLen; 	int j; 	while(gets(szA)!=NULL) 	{ 		j=0; 		nLen=strlen(szA); 		if(szA[0]>=97&&szA[0]<=122) 			szA[0]-=32; 		for(int i=0;i<nLen;i++) 		{ 			if(szA[i]==' '||szA[i]=='\t'||szA[i]=='\r'||szA[i]=='\n') 				j=i; 			else if(j==i-1) 			if(szA[i]>=97&&szA[i]<=122) 				szA[i]-=32; 			puts(szA); 		} 		 	} 	return 0; } PS：如果符号的位置有问题，你自己稍微改下。[/quote]还是错误。。

user: user-1
content: 引用 4 楼 qq_33046541 的回复:[quote=引用 2 楼 qq_36409192 的回复:] 应该是符号问题，你的符号可能是中文状态下输入的。 我本机运行可以，提交上去显示答案错误[/quote] 你的符号有问题，不能在中文输入的状态下输入符号，英文和中文这两种状态输出的符号是不同的。我帮你重新打了一遍，你再试试我这个打的。#include <cstdio> #include <cstring> int main() { 	char szA[120]; 	int nLen; 	int j; 	while(gets(szA)!=NULL) 	{ 		j=0; 		nLen=strlen(szA); 		if(szA[0]>=97&&szA[0]<=122) 			szA[0]-=32; 		for(int i=0;i<nLen;i++) 		{ 			if(szA[i]==' '||szA[i]=='\t'||szA[i]=='\r'||szA[i]=='\n') 				j=i; 			else if(j==i-1) 			if(szA[i]>=97&&szA[i]<=122) 				szA[i]-=32; 			puts(szA); 		} 		 	} 	return 0; } PS：如果符号的位置有问题，你自己稍微改下。

user: user-0
content: 引用 2 楼 qq_36409192 的回复:应该是符号问题，你的符号可能是中文状态下输入的。 我本机运行可以，提交上去显示答案错误

user: user-0
content: 引用 2 楼 qq_36409192 的回复:应该是符号问题，你的符号可能是中文状态下输入的。 什么意思。。。

user: user-1
content: 应该是符号问题，你的符号可能是中文状态下输入的。

user: user-1
content: while(gets(szA)!=NULL)就意味着你会循环输入szA字符串