33,311
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
int main()
{
int t,i,j,sum;
char num[10];
scanf("%d", &t);
getchar(); /*接收缓存*/
for(j = 0;j<t;j++)
{
i = 0,sum = 0;
//int flag = 0;
do {
scanf("%c",&num[i]);
/*if(num[i]=='-')
flag = 1;
*/
if(num[i]<='9'&&num[i]>='0')
sum = sum *16+num[i]-'0';
if(num[i]<='F'&&num[i]>='A')
sum = sum *16+num[i]-'A'+10;
} while(num[i++]!='#');
/*if(flag)
printf("-");
*/
if(num[0]=='-')
printf("-");
printf("%d\n",sum);
}
return 0;
}
输入t之后会有换行符'\n'残留在输入缓存里,因此用getchar();接收,能保证每次输入的'-'都是当i= 0里。