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格式错误的主要内容,如果未能解决你的问题,请参考以下文章

ACM中常见错误对应表

ACM__菜鸟之经典错误

(错误)Elasticloadbalancer无法找到带有arn cloudformation的ACM证书

软件测试

acm体会

ACM新手赛感想