信息学奥赛(NOIP)课程Q&A(三)
常见作业中的编译问题
1.怎样把结果变为整数
A:比如三个变量a,b,c数据类型都是int整数
int a,b,c;
a=10;
b=4;
c=a/b;数学上c的值应该是小数2.5,但是由于程序里已经认为c是整数,所以2.5取整数就是2,所以c的值就是2
2.为什么提交后是部分接受?
A:因为输入的不一定是“*”,也可能是“a”任意字符,但题目中只满足输入是“*”这种情况。
Q:但加了双引号后只能输出固定字符,不加双引号提示编译错误
A:可以连续输出:a = “+”; cout<<“789abc”<<a;
3. 编译失败是为什么?
A:
4:错在哪里?
A:图一输出的是a这个特定字符所以不对;图二字符位置不对
5:错误在哪里?
A:endl,换行,最后一位是字母l,不是数字1
6:为什么显示答案错误?
A:第一条边开头只有两个空格,放在dev c++里面先试下,再去oj里面提交
7:为什么编译失败?
A:头文件缺少 using namespace std;
控制小数点后的位数的方法:在程序首部添加”#include <iomanip>”,然后输出时使用
cout << fixed << setprecision(8) << num << endl; // 保留8位小数
8:oj上1007为啥float不对啊?用double就对!但float在调试软件是可以的
A:精度问题,考虑边缘情况会出现输出有效位数超过7位,所以用双精度有效位数为15位的double类型
9:std::cout<<t1<< std::setiosflags(ios::fixed)<<std::setprecision(8) << std::endl;
为什么dev的IDE报:[Error] ‘ios’ has not been declared
std::setiosflags(ios::fixed);使用为社么一直报错:
A:控制小数点后的位数的方法:在程序首部添加”#include <iomanip>”,然后输出时使用cout << fixed << setprecision(3) << 1.2345 << endl; // 保留3位小数
本文来自投稿,不代表奇思科创论坛立场,如若转载,请注明出处:http://bbs.wonderbits.cn/archives/3365