1e-6:1*10^-6;
3e-6 : 3*10^-6;
(e)代表这个科学计数法……
在用: scanf(“”,&)!=EOF时,可以用enter+CTRL+enter来结束输入。
for(double i=0;i!=10;i+=0.1)printf(“%.1f\n”,i);
这个由于精度的问题会死循环的。
它是永远都得不到整的10的。
另外如果用printf保留c位的话:
void q(){
double a,b;
scanf("%lf%lf",&a,&b);
int c;
scanf("%d",&c);
printf("%.*lf",c,a/b);
}
这样就是正确的了。
对于一个输出100位精度的数:
#include <iostream>
#include <ctime>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <queue>
#include <iomanip>
#include <stack>
using namespace std;
int main (){
int a,b,c;
int q;
bool d=0;
cin>>a>>b>>c;
cout<<a/b<<".";
a%=b;
for(int i=1;i<=c;i++){
bool d1=1;
a%=b;
if(a&&!d&&i!=c){
a*=10;
cout<<a/b;
}
else if(!d&&!a){
cout<<a/b;
d=1;
d1=0;
}
else if(i==c&&!d){
a*=10;
if(a){
int q,w;
q=a%b*10;
if(q/b>5)cout<<(a/b+1);
else cout<<a/b;
}
else cout<<a/b;
}
if(d&&d1)cout<<0;
if(!d1)d1=1;
}
return 0;
}
这个真的不简单啊……
还有就是如果想从int a[1005],b[1005]复制一下前k个把a复制到b:
memcpy(b,a,sizeof(int)*k);
浮点类型:memcpy(b,a,sizeof(double)*k);
可以先这样……