| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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;
 
 - }
 
  复制代码 
 
 
 |   
 
 
 
 |