1. 奇思科创论坛首页
  2. 灌水交流

信息学奥赛(NOIP)课程Q&A(三)

常见作业中的编译问题

1.怎样把结果变为整数

2020060302330235

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.为什么提交后是部分接受?

2020060303472693

A:因为输入的不一定是“*”,也可能是“a”任意字符,但题目中只满足输入是“*”这种情况。

Q:但加了双引号后只能输出固定字符,不加双引号提示编译错误

A:可以连续输出:a = “+”; cout<<“789abc”<<a;

3. 编译失败是为什么?

2020060303475317A:

2020060303481240

4:错在哪里?

2020060303505572

2020060303512381A:图一输出的是a这个特定字符所以不对;图二字符位置不对

5:错误在哪里?

2020060303520351A:endl,换行,最后一位是字母l,不是数字1

6:为什么显示答案错误?

20200603035327162020060303533852

A:第一条边开头只有两个空格,放在dev c++里面先试下,再去oj里面提交

7:为什么编译失败?

2020060303541714

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位小数

21a1d531b001abb4db6a4b78bd63e72

 

 

本文来自投稿,不代表奇思科创论坛立场,如若转载,请注明出处:http://bbs.wonderbits.cn/archives/3365

发表评论

邮箱地址不会被公开。 必填项已用*标注

联系我们

021-6111-0155

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code