#16865: C的


freedom501999@gmail.com (帥氣魔方生)

學校 : 不指定學校
編號 : 88611
來源 : [39.8.203.54]
最後登入時間 :
2019-05-30 22:56:25
d187. 11530 - SMS Typing -- UVa11530 | From: [114.41.96.81] | 發表日期 : 2019-02-14 23:23

gets() 讀測資是以換行字元為結束

而scanf() 第一個數字後,這個數字後面的換行還在

所以必須要吸收掉這個換行,使用 %*c 把換行讀入但不存取

之後就沒問題了

 

#include <stdio.h>
int main(void)
{
	char str[101];
	char push[26]={1,2,3,1,2,3,1,2,3,1,2,3,1,
			2,3,1,2,3,4,1,2,3,1,2,3,4};
	int T, i, casenum=0, button=0;
	scanf("%d%*c", &T);
	while(++casenum <= T)
	{
		gets(str);
		for(i=0;str[i]!='\0';i++)
		{
			if(str[i]==' ')
			{
				button++;
				continue;
			}
			button+= push[str[i]-'a'];
		}
		printf("Case #%d: %d\n", casenum, button);
		button=0;
	}
	return 0;
}
 
ZeroJudge Forum