相关C语言小问题汇总
1.1
关于abs函数的作用
以下面的程序为例,进行讲解
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
double ac[6]={0.9135,0.9073,0.8747,0.907,0.9229,0.9233};
double pp[6]={11.6576,12.7487,14.2012,13.2767,11.5804,11.459};
double total=0.0;
double variance=0.0;
for(int i=0;i <6;i++)
{
for(int j=0;j <6;j++)
{
total+=pow(abs((ac[i]-ac[j])/ac[i])-abs((pp[i]-pp[j])/pp[i]),2);
}
}
variance =sqrt(total);
cout < < "variance = " < <variance < <endl;
return 0;
}
说明:
abs函数返回传递给它的参数的绝对值。比如int a=abs(-10);那么a就会等于10。C++允许重载,所以你可以调用abs的重载版本,如double b=abc(-123.45);那么b会是123.45。abs函数的原型定义在cmath头文件中,在C中,原型是
int abs(
int n
);
而在C++中,它的原型有以下几个:
int abs(
int n
);
long abs(
long n
); // C++ only
double abs(
double n
); // C++ only
); // C++ only
float abs(
float n
); // C++ only
);
1.2 如何判断一个数是整数
方法一:int c=(int)b,
d=(int)(b+0.9999999)
if(c==d)
{
//整数
}
方法二:
if(b-(int)b==0)
{
//整数
}
方法三: double x;
scanf("%f",&x);
if((int)x==x)
printf("%f是整数",x);
2555
#include<stdio.h>
#include<math.h>
void main()
{
long int i,j,m;
int a[100000];
double x,n=1000000.000;
scanf("%d",&i);
for(j=0;j<i;j++)
{
scanf("%f",&a[j]);
}
for(j=0;j<i;j++)
{
x=n/a[j];
if((long int)x==x)
printf("%d\n",x);
else printf("No\n");
}
}