这段程序哪里有问题呢?
#include <iostream>#include <cstdio>
using namespace std;
int main()
{
double thickness; //单张纸的厚度(mm)
double total; //总的厚度
double side; //纸的长度和宽度
double counts=0; //对折次数
double s; //对折边长度
cout<<"纸张长度:";
cin>>side;
cout<<"纸张宽度: ";
cin>>side;
cout<<"纸张厚度: ";
cin>>thickness;
total=thickness;
printf("\n次数\t对折边长\t\t厚度\n");
for(int i=0;i<2;i++)
{
s=side;
if(i==0)
cout<<"从长度方向对折"<<endl;
else
cout<<"从宽度方向对折"<<endl;
while(s>total)
{
counts++;
s/=2;
total *=2;
printf("%2d\t%10.2f\t\t%10.2f\n",counts,s,total);
}
}
return 0;
}
比如输入297 210 0.08,输出的是错误值 每次cin后要清理输入流的数据,可以在后面加上一句cin.get() BngThea 发表于 2018-1-15 21:16
每次cin后要清理输入流的数据,可以在后面加上一句cin.get()
为什么要清理输入流呢?我按书上的代码写的 御笔剑客 发表于 2018-1-16 00:11
为什么要清理输入流呢?我按书上的代码写的
因为你不清理,当你结束某次输入的时候会在流里面滞留回车,空格等字符
下次使用cin的时候会直接将这些字符作为输入 BngThea 发表于 2018-1-16 09:01
因为你不清理,当你结束某次输入的时候会在流里面滞留回车,空格等字符
下次使用cin的时候会直接将这些 ...
这个数字应该不用清理吧 御笔剑客 发表于 2018-1-16 11:14
这个数字应该不用清理吧
你清理了试试看结果就知道了 total第二次循环的时候值是 上一次循环的值
页:
[1]