读书人

SOS 为什么小弟我照书打的代码会有这么

发布时间: 2013-08-09 15:16:24 作者: rapoo

SOS 为什么我照书打的代码会有这么多错误 谁来搭救我啊~~~
#include<stdio.h>
void main()
{
float value1,value2;
char operator;
printf("Input your expression:\n");
scanf("%f%c%f",&value1,&operator,&value2);
if (operator =='+')
printf("%.2f\n",value1+value2);
else if(operator=='-');
printf("%.2f\n",value1-value2);
else if(operator=='*')
printf("%.2f\n",value1*value2);
else if(operator=='/')
if (value2==0.0)
printf("Division by zero.\n");
else
printf("%.2f\n",value1/value2);
else
printf("Unknown operator.\n");
}
居然有32个错误和一个警告 天哪为神马啊~~~~
[解决办法]


#include<stdio.h>

int main()
{
float value1,value2;
// char operator; //operator 是语法关键字不能定义变量
char Operator;
printf("Input your expression:\n");
scanf("%f%c%f",&value1,&Operator,&value2);

if (Operator =='+')
{
printf("%.2f\n",value1+value2);
}

else if(Operator=='-')
{
printf("%.2f\n",value1-value2);
}

else if(Operator=='*')
{
printf("%.2f\n",value1*value2);
}

else if(Operator=='/')
{
if (value2==0.0)
{
printf("Division by zero.\n");


}

else
{
printf("%.2f\n",value1/value2);
}
}

else
{
printf("Unknown operator.\n");
}

return 0;
}



写完代码,注意代码可读性要强,特别是刚刚接触的时候,刚学的时候!

[解决办法]
关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程(理由:打字准确度偏低、粗心大意)
B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念)
C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证)
D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!)

如果想从A变成B的话,到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”

计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!

VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。

程序员要做的不是尽力避免错误,而是聚焦在快速发现并改正错误。真正以快速方式轻易解决错误,“快速的失败”远胜过“预防错误”。Fred George

[解决办法]
else if(operator=='-');后面多了一个分号,改为else if(operator=='-')就OK了。

引用:
#include<stdio.h>
void main()
{
float value1,value2;
char operator;
printf("Input your expression:\n");
scanf("%f%c%f",&value1,&operator,&value2);
if (operator =='+')
printf("%.2f\n",value1+value2);
else if(operator=='-');
printf("%.2f\n",value1-value2);
else if(operator=='*')
printf("%.2f\n",value1*value2);
else if(operator=='/')
if (value2==0.0)
printf("Division by zero.\n");
else
printf("%.2f\n",value1/value2);
else
printf("Unknown operator.\n");
}
居然有32个错误和一个警告 天哪为神马啊~~~~


引用:

#include<stdio.h>
void main()
{
float value1,value2;
char operator;
printf("Input your expression:\n");
scanf("%f%c%f",&value1,&operator,&value2);
if (operator =='+')
printf("%.2f\n",value1+value2);
else if(operator=='-');
printf("%.2f\n",value1-value2);
else if(operator=='*')
printf("%.2f\n",value1*value2);
else if(operator=='/')
if (value2==0.0)
printf("Division by zero.\n");
else
printf("%.2f\n",value1/value2);
else
printf("Unknown operator.\n");
}
居然有32个错误和一个警告 天哪为神马啊~~~~

读书人网 >C++

热点推荐