问题
小斐和他的计算器
题目描述
最近小斐的手机手机坏掉了,看着其他小伙伴们一起用手机玩游戏,他只能拿着不知道从哪里找来的计算器玩了。
无聊的他开始数那些数字的笔画,他想知道每一个数字,横着竖着分别有多少笔画?(输入中只有0-9)
输入
数据的第一行为一个数字T,表示数据的组数。
每组数据有一个数字(长度小于100)
输出
每组数据需要你计算两个数据,分别是横着有几画,竖着有几画。
样例输入
copy
2
123
456
Made by hxl.
样例输出
6 6
7 8
提示
注意:有断点即为一画,‘1’为两画。
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int t,i,n,k;
char a[100];
scanf("%d\n",&t);
for(k=0;k<t;k++)
{
gets (a);
n=strlen(a);
int n1=0;
int m1=0;
int h1=0;
int h=0;
int m=0;
for(i=0;i<n;i++){
if(a[i]=='0')
{
m=2;
h=4;
}
if(a[i]=='1')
{
m=0;
h=2;
}
if(a[i]=='2')
{
m=3;
h=2;
}
if(a[i]=='3')
{
m=3;
h=2;
}
if(a[i]=='4')
{
m=1;
h=3;
}
if(a[i]=='5')
{
m=3;
h=2;
}
if(a[i]=='6')
{
m=3;
h=3;
}
if(a[i]=='7')
{
m=1;
h=2;
}
if(a[i]=='8')
{
m=3;
h=4;
}
if(a[i]=='9')
{
m=3;
h=3;
}
m1=m1+m;
h1=h1+h;
}
printf("%d %d\n",m1,h1);
}
return 0;
}
运行结果:
总结:
写了好长时间,改了好多遍,终于对了。首先,输入每组数据的长度小于一百,所以不能用int型变量,最好的方法是将其当成一个字符串输入,最外层的for循环表示输入t组数据。再一个一个字符串的判断。