ACM格式错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACM格式错误相关的知识,希望对你有一定的参考价值。
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
输入
输出
样例输入
a 1,
样例输出
1 1 1 1
我这么写的
#include"stdio.h"
int main()
char a[100];
int i,t=0,n=0,m=0,q=0;
gets(a);
for(i=0;a[i]!='\0';i++)
if(a[i]<'z'&&a[i]>'A')
t++;
else if(a[i]<'9'&&a[i]>'0')
n++;
else if(a[i]==' ')
m++;
else
q++;
printf("%d %d %d %d",t,n,m,q);
return 0;
报格式错误55555
else if(a[i]<'9'&&a[i]>'0')
n++;
1.数字这里要取等于 。
2,大写字母跟小字字母对应的ACSII码中间有其他的字符,不能直接这么用,而且也要等于
((a[i]>='A' && a[i] <='Z' ) || ( a[i] >='a' && a[i] <='z'))
3.空格不是那么写,空格是要有一个空格的字符,不是什么都没有, '' 改成' '
4.最后有一个回车。这是格式错误的主要原因
竟然有人说你的答案是对的。。。。追问
最后有一个回车?
追答是的,ACM的题目,每个case后面默认都有一个回车,要是题目没有明显说明不要回车的话
参考技术A 是“presentation error”吗,如果是就是因为多空格或是少空格 ,多换行或是少换行。但答案是对的。
ACM__菜鸟之经典错误
1:多组输入与单组输入
Input contains multiple test cases.
Input contains a single test case.
2: EOF=-1
while(scanf()!=EOF)
while(~scanf())
while(scanf()==2) scanf()返回的是读了多少个
3:==与=
= 是赋值符号
== 是判断符号
4: 赋初值
当进行 sum+=n;
ans++;别忘记给sum,ans赋初值
5:for(;;)循环与while()后面不能加 ;
for(;;)循环与 while()忘加大括号
6:runtimeerror 数组越界
wrong answer 数据超限
7: 运算的数据必须是同种类型
8: &&并且
9: 输出时YES,no注意大小写
10: 输入输出时的标点符号不能忽略
11: getchar()
当输入字符时,注意按下回车时已经读了一个字符,所以要取掉
12:数组大小
局部变量在栈分配空间,所以较小
全局变量在堆分配空间,所以较大
13:哈希算法
用空间换取时间
14:c++输出带缓存,c不带
15: 越界
a[50]的范围是 a[0]-a[49] 如果是a[50]就越界了
16: switch
每个case后面都要有break
以上是关于ACM格式错误的主要内容,如果未能解决你的问题,请参考以下文章