|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
今天做了四舍五入的程序
觉得书上的那种先扩大再缩小太麻烦
想用数组做
可是有bug- #include <bits/stdc++.h>
- using namespace std;
- int main()
- {
- int integer,f;
- cout<<"请输入整数部分的数字的个数:";
- cin>>integer;
- cout<<"请输入小数部分的数字的个数:";
- cin>>f;
-
- char nums[integer + f + 1];
- cout<<"开始输入:"<<endl;
- for (int i = 0;i < integer + f + 1;i++)
- {
- cin>>nums[i];
- }
-
- int num;
- cout<<"保留到小数点后第几位?";
- cin>>num;
-
- if (nums[integer +num + 1] >= 5)
- {
- nums[num]++;
- }
-
- for (int k = 1;k <= integer + 1 + num;k++)
- {
- cout<<nums[k];
- }
-
- return 0;
- }
复制代码
这里integer是整数部分的位数,f是小数部分的位数
nums是存储小数的数组,因为有小数点所以用char
num是保留小数点后几位
各位大佬看看怎么改
错误已修改,并做了注释
- #include <bits/stdc++.h>
- using namespace std;
- int main()
- {
- int integer,f;
- cout<<"请输入整数部分的数字的个数:";
- cin>>integer;
- cout<<"请输入小数部分的数字的个数:";
- cin>>f;
-
- char nums[integer + f + 1];
- cout<<"开始输入:"<<endl;
- for (int i = 0;i < integer + f + 1;i++)
- {
- cin>>nums[i];
- }
-
- int num;
- cout<<"保留到小数点后第几位?";
- cin>>num;
-
- if (nums[integer +num + 1] >= '5')//这里错了,应该是和字符5比较大小
- {
- nums[integer +num]++;// 自加1 的位数不对,应该是小数点后面第 num 位
- }
-
- for (int k = 0;k < integer + 1 + num;k++)//这里不对,k 初始值应该为0,k结束值出不应该有等号
- {
- cout<<nums[k];
- }
-
- return 0;
- }
复制代码
|
|