黑马程序员技术交流社区
标题: 分享帖--由作业0726中编程题引发的拓展与困惑---共勉! [打印本页]
作者: zero-xiao 时间: 2015-3-12 22:28
标题: 分享帖--由作业0726中编程题引发的拓展与困惑---共勉!
发表此帖主要是因为作业过程中,引发的一点点小思路,觉得可以和大家分享下下,当然大神级的可以忽略了哦,刚开始看,可能到后面会有更精简的方法,受知识的局限,还望见谅,如果和我一样是初学者的话,看了此贴也许会有幸会为你解开一些小疑惑,可以在自己拓展思维的道路上,避免话费更多的时间,代码亲测,请放心,时间是宝贵的嘛。:)
上题:
/*
题目:程序运行的时候提示下列信息
请输入相应数字选择需要执行的运算:
1 加法
2 减法
用户选择运算后,再提示用户输入两个需要进行运算的整数,输入完毕后就输出运算结果
*/
#include <stdio.h>
int main()
{
// 1. 提示用户选择计算类型
printf("请输入相应数字选择需要执行的运算:\n");
printf("1 加法\n");
printf("2 减法\n");
// 2. 定义变量存储用户选择的计算类型
int type = 0;
// 3. 让用户输入计算类型
scanf("%d", &type);
if (type!=1 && type!=2)
{
// type值输入不合理,就直接退出程序
printf("非法选择\n");
return 0;
}
// 4.提示用户输入两个计算的数值
printf("请连续输入两个需要进行运算的整数,并且以空格隔开\n");
// 5.定义2个变量存储数值
int num1, num2;
scanf("%d %d", &num1, &num2);
// 6.计算
int result;
if (type == 1) {
result = num1 + num2;
printf("%d + %d = %d\n", num1, num2, result);
} else if (type == 2) {
result = num1 - num2;
printf("%d - %d = %d\n", num1, num2, result);
}
return 0;
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
:lol没错,这个是老师的答案,虽然自己也写出来了,不过,大家都看过答案,所以看这个可以更快的想起来,个人觉得,算一个加减法,先输入符号不爽,1 + 2 = 3 ,就输入1 + 2 = 3,先输入+,就感觉不爽了,所以就有了以下的变形:
#include<stdio.h>
int main ()
{
printf("请输入一个算术表达式:\n");
int a = 0 ; char c = 0;int b = 0;//变量初始化。定义一个字符变量存储符号
while (c !='+' && c !='-')
{
//让用户输入表达式
scanf("%d%c%d",&a ,&c ,&b );
printf("请重新输入:\n");
}
//加法
if(c =='+')
{
int i =a + b ;
printf(" %d + %d = %d",a,b,i );
}
//减法
if(c =='-')
{
int i =a - b ;
printf(" %d - %d = %d\n",a,b,i );
}
return 0;
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
这样输入的话,就是输入的表达式了,但是感觉还是有些不爽,因为只能算加减法,不能算乘除,但是要加上乘除法的话,就成了四个条件了,所以想尝试证明下,关系运算&&的连用情况,于是就有了下面的变形:
#include<stdio.h>
int main ()
{
printf("请输入一个算术表达式:\n");
int a = 0 ; char c = 0;int b = 0;//变量初始化。
while (c !='+' && c !='-' && c !='*' && c !='/')//判断输入符号的正确性
{
//让用户输入表达式
scanf("%d%c%d",&a ,&c ,&b );
printf("请重新输入:\n");
}
//让用户输入表达式
// scanf("%d%c%d",&a ,&c ,&b );
//加法
if(c =='+')
{
int i =a + b ;
printf(" %d + %d = %d",a,b,i );
}
//减法
else if(c =='-')
{
int i =a - b ;
printf(" %d - %d = %d\n",a,b,i );
}
//乘法
else if(c =='*')
{
int i =a * b ;
printf(" %d * %d = %d\n",a,b,i );
}
//除法
else if(c =='/')
{
int i =a / b ;
printf(" %d / %d = %d\n",a,b,i );
}
return 0;
}
到此,四则运算算齐全了,也表明 条件1 && 条件2 && 条件3 这样的使用方式是可行的,||应该也是可以的吧,暂未亲测,但想来是同理的
局限性:
只能是两个数的四则运算,如果是三个数的四则运算就算不了了,还有四位 五位、、等等等等,有兴趣的朋友可以尝试下,或许学了后面后,会有更好的方法了。
一点点小小的心得,分享给需要的朋友。over。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |