题目来源:大工慕课 链接
作者:Caleb Sung
题目要求
编写程序,使用命令行操作程序计算两个两位数的乘法运算。如:
cal 15*15
用于计算15×15。
参考解答
收集字符串时记得一定要使用gets()
而不是scanf()
,因为后者无法收集命令行中的空格。
在处理将内容为数字的文字字符转换为数字类型的变量可以使用形如(int)(ch-'0')
的方法加以处理。
注:下面这段代码直接使用了数组绝对元素位置查找需要的字符,如果这种方法不可行我会再更新。
#include<stdio.h>
int main(){
char ch[100];
int a, b, a1, a2, b1, b2;
L:printf("本程序用于使用命令行进行两个两位数的乘法运算。\n如: cal 15*15 用于计算15×15\n\n请输入命令:\n");
gets(ch);
if(ch[0]=='c' && ch[1]=='a' && ch[2]=='l'){
a1 = (int)(ch[4]-'0');
a2 = (int)(ch[5]-'0');
b1 = (int)(ch[7]-'0');
b2 = (int)(ch[8]-'0');
a = 10*a1 + a2;
b = 10*b1 + b2;
printf("\n第一个乘数:%d 第二个乘数:%d\n", a, b);
printf("%d × %d = %d", a, b, a*b);
}
else{
printf("您输入的命令格式有误,请检查!\n\n");
goto L;
}
}