杭电水题之2030

来源:互联网 发布:考试系统的数据流程图 编辑:程序博客网 时间:2024/05/01 20:04

说起来这题好像是有点无从下手,可是稳中有提示从汉字机内码的特点考虑~。咋一看不明白,我也是不明白。不过我没有猜也没有百度。我编了个小程序给试出来了他是汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1。 计算机中, 补码第一位是符号位, 1 表示为 负数, 所以 汉字机内码的每个字节表示的十进制数都是负数。但是如果你不知道有事比赛的时候怎么办呢?很多事情是我们无法预料的,你也不能说所有的东西你都见过,没见过不知道的就要想办法,这样才能培养自己的能力,当然是在是想不出来就要百度一下啦。下面主要是说一下需要注意的地方

1.在你输入既有汉字又有英文字母时(特别是有符号就是中文和英文都有的),你输入中文他后面跟着符号这时候你要切换输入法,比如今年过节不说话要说只说普通话!!!WaHaHa! WaHaHa!汉字后面的感叹号是英文的千万不要写成中文的。

2.还有一点就是有时候没有必要就不要私用else continue这个语句因为就算你不用他不满足条件的话会自动的,有人说用了有什么影响呢?有的,只是你不知道,你的电脑上也找不出来这时候很有可能出现Output Limit Exceeded这句话这句话是什么意识呢?就是说你所输出的东西比他想要的多了,这个一般发生在for循环的地方,准确的说就是你的for循环在某种情况下会无限循环,但是你却不知道在什么情况下很可能你也测不出来。

差不多就是以上两点,这两点知道了就好办了,下面给一个AC的代码作为参考:

#include<stdio.h>
int main()
{


char a[1000];
int m;
int n,i;
   scanf("%d",&n);
   getchar();
while(n--)



gets(a);

m=0;
for( i=0;a[i];i++)
if(a[i]<0)
m++;//就在这哥错了三次,我总觉得是没有错的,真的就是一念之差
printf("%d\n",m/2);


}
return 0;


}