题目:
代码:
#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 表示为 负数, 所以 汉字机内码的每个字节表示的十进制数都是负数