杭电ACM-2030

2017-01-23  本文已影响0人  1QzUPm_09F

题目:

2030题

代码:

#include<stdio.h>
int main()
{
    int n,i,k,cnt;
    char a[1000];
    while(~scanf("%d",&n))
    {
        getchar();
        for(i=0;i<n;i++)
        {
            cnt=0;
            gets(a);
            for(k=0;a[k]!='\0';k++)
            {
                if(a[k]<0)
                    cnt++;
            }
            printf("%d\n",cnt/2);
        }
    }
    return 0;
}

注意:
对于汉字机内码的问题:

1.一个汉字在字符串中是以两个负的字符形式存储,所以本题只要把字符串中负字符的个数找出来,再除以2 就OK了。

2.汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1。 
计算机中, 补码第一位是符号位, 1 表示为 负数, 所以 汉字机内码的每个字节表示的十进制数都是负数
上一篇 下一篇

猜你喜欢

热点阅读