2、 编译环境:TC2.0
3、 问题描述:
有如下程序,在程序中float型变量f和w表达式结构相同,但运算次序不同.
main()
{
int a=2,b=3;
float x=3.5,y=2.5,f,w;
f=x+'A'+(float)(a+b)/2+(int)x%(int)y;
w=x+(float)(a+b)/2+(int)x%(int)y+'A';
printf("\nf=%f",f);
printf("\nw=%f",w);
}
程序运行结果为:
f=5.500000
w=70.500000
4、 实验问题:
在C语言的程序运行过程中运算顺序对程序有何种影响?
8 个解决方案
#1
没有tc
帮你分析下
1) 强转运算的问题
2) 类型提升的问题
帮你分析下
1) 强转运算的问题
2) 类型提升的问题
#2
觉得几乎不可能
而且TC淘汰10多年了还用?学了出来混还得重学,抛弃他吧
而且TC淘汰10多年了还用?学了出来混还得重学,抛弃他吧
#3
我运行的结果:
f=72.000000
w=72.000000
Terminated with return code 0
Press any key to continue ...
编译器是MinGW Studio。主要是看运算符的优先级,你找本书对照着从前往后找就行了
f=72.000000
w=72.000000
Terminated with return code 0
Press any key to continue ...
编译器是MinGW Studio。主要是看运算符的优先级,你找本书对照着从前往后找就行了
#4
我是一位在校教授计算机基础的教师,这个问题是学生提出的,我实验了发现结果就是这样让人无法理解.急切盼望高手帮助分析.
#5
觉得是TC的问题。
另 类型转换也可能有问题 截取部分 可能会出现意外。
没TC
请问,为什么学校都教TC呢?
另 类型转换也可能有问题 截取部分 可能会出现意外。
没TC
请问,为什么学校都教TC呢?
#6
优先级的提升问题,这个没什么好说的,不同的编译器有不同的实现方法
你可以在当前几种主流的编译器上测试一下,例如gcc,.NET,bcc,然后找出运算符优先级的书
参照着,从前往后一个个转换,如果结果都相同,那你就可以告诉你的学生,让TC下岗吧。
你可以在当前几种主流的编译器上测试一下,例如gcc,.NET,bcc,然后找出运算符优先级的书
参照着,从前往后一个个转换,如果结果都相同,那你就可以告诉你的学生,让TC下岗吧。
#7
应该是TC编译器的问题~
我用VC、Intel C++、Lab Windows/CVI编译了一下,f和w都是输出72.000
TC只是教学用的一个玩意,真不明白为什么学校还用它做教学,都过时多少年了~~
这样教出来的学生以后还得二次学习
我用VC、Intel C++、Lab Windows/CVI编译了一下,f和w都是输出72.000
TC只是教学用的一个玩意,真不明白为什么学校还用它做教学,都过时多少年了~~
这样教出来的学生以后还得二次学习
#8
晕啊,TC……而且还是2.0啊……
好多年没用了哦
好多年没用了哦
#1
没有tc
帮你分析下
1) 强转运算的问题
2) 类型提升的问题
帮你分析下
1) 强转运算的问题
2) 类型提升的问题
#2
觉得几乎不可能
而且TC淘汰10多年了还用?学了出来混还得重学,抛弃他吧
而且TC淘汰10多年了还用?学了出来混还得重学,抛弃他吧
#3
我运行的结果:
f=72.000000
w=72.000000
Terminated with return code 0
Press any key to continue ...
编译器是MinGW Studio。主要是看运算符的优先级,你找本书对照着从前往后找就行了
f=72.000000
w=72.000000
Terminated with return code 0
Press any key to continue ...
编译器是MinGW Studio。主要是看运算符的优先级,你找本书对照着从前往后找就行了
#4
我是一位在校教授计算机基础的教师,这个问题是学生提出的,我实验了发现结果就是这样让人无法理解.急切盼望高手帮助分析.
#5
觉得是TC的问题。
另 类型转换也可能有问题 截取部分 可能会出现意外。
没TC
请问,为什么学校都教TC呢?
另 类型转换也可能有问题 截取部分 可能会出现意外。
没TC
请问,为什么学校都教TC呢?
#6
优先级的提升问题,这个没什么好说的,不同的编译器有不同的实现方法
你可以在当前几种主流的编译器上测试一下,例如gcc,.NET,bcc,然后找出运算符优先级的书
参照着,从前往后一个个转换,如果结果都相同,那你就可以告诉你的学生,让TC下岗吧。
你可以在当前几种主流的编译器上测试一下,例如gcc,.NET,bcc,然后找出运算符优先级的书
参照着,从前往后一个个转换,如果结果都相同,那你就可以告诉你的学生,让TC下岗吧。
#7
应该是TC编译器的问题~
我用VC、Intel C++、Lab Windows/CVI编译了一下,f和w都是输出72.000
TC只是教学用的一个玩意,真不明白为什么学校还用它做教学,都过时多少年了~~
这样教出来的学生以后还得二次学习
我用VC、Intel C++、Lab Windows/CVI编译了一下,f和w都是输出72.000
TC只是教学用的一个玩意,真不明白为什么学校还用它做教学,都过时多少年了~~
这样教出来的学生以后还得二次学习
#8
晕啊,TC……而且还是2.0啊……
好多年没用了哦
好多年没用了哦