你的程序
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供茅箭網(wǎng)站建設(shè)、茅箭做網(wǎng)站、茅箭網(wǎng)站設(shè)計(jì)、茅箭網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、茅箭企業(yè)網(wǎng)站模板建站服務(wù),十年茅箭做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
#include stdio.h
double abstr(double x)
{
if(x0.0)
x=-x;
else
x=x;
return(x);
}
main()
{
double a,abstr(double a);
printf("Enter real number a please:");
scanf("%1f",a);
printf("abs(%1f)=%1f\n",a,abstr(a));
}
我的改進(jìn)程序:
#include stdio.h
double abstr(double x)
{
if((x-0.0)0.0)
x=-x;
else
x=x;
return(x);
}
main()
{
double a,b;
double abstr(double a);
printf("Enter real number a please:");
scanf("%lf",a);
b=abstr(a);
printf("abs(%lf)=%lf\n",a,b);
}
1.
#define是替換的意思,所以函數(shù)形參也被替換了,所以語(yǔ)法不對(duì)
改好了:
#include stdio.h
#define pi 3.1415926
#define r 2.0
double calcuarea(double ) ;
double calcucirum(double ) ;
int main(void)
{
printf("圓的面積是:%f\n", calcuarea(r));
printf("圓的周長(zhǎng)是:%f\n", calcucirum(r));
return 0; }
double calcuarea(double R)
{
return(pi*R*R);
}
double calcucirum(double R)
{
return(pi*R*2.0);
}
2.
揚(yáng)和?的輸出是漢字編碼,你想要的應(yīng)該是ascii碼
'2'的ascii是50,'a'的ascii是97,他們的和達(dá)到了147,不屬于ascii的范疇了,當(dāng)超過(guò)127的字符以字符格式輸出會(huì)按漢字編碼方式兩個(gè)字節(jié)結(jié)合成一個(gè)漢字
字符串以\0結(jié)尾,第一次的揚(yáng)由147,0這兩個(gè)字節(jié)結(jié)合
第二次由于在\0前面多了個(gè)\n,147不能和另一字符結(jié)合,單字節(jié)非ascii輸出?
3.
#include stdio.h
int main(void)
{
int i,j;
float x,y;
char c;
scanf("%2d%f%f%c%d",i,x,y,c,j);
return 0;
}
為什么結(jié)果是無(wú)法運(yùn)行?
可以運(yùn)行
4.
此時(shí)結(jié)果是非常長(zhǎng)的一串?dāng)?shù),非意愿,但是將“%f”換成“%lf”時(shí)結(jié)果就變成了意愿!
浮點(diǎn)數(shù)的內(nèi)存格式是 符號(hào)為+階碼+尾數(shù)(左端為高字節(jié))
而double為8字節(jié),float為4字節(jié)
當(dāng)以%lf格式操作的時(shí)候沒(méi)有問(wèn)題
當(dāng)以%f格式操作的時(shí)候,由于輸入的浮點(diǎn)數(shù)按float的格式保存在了低4字節(jié),高4字節(jié)沒(méi)有修改,vc的默認(rèn)值為0xcc,所以double a的實(shí)際內(nèi)存格式為0xcccccccc+符號(hào)位+階碼+尾數(shù),這種格式顯然是不對(duì)的,由于最終階碼非0,所以輸出一個(gè)極大的浮點(diǎn)數(shù)
5.
#include stdio.h
int main(void)
{
printf("%-8s%8s%8s\n","cocks","hens","chicks");
int x=0,y=0,z=0;
while (x20)
x++;
while (y=33)
y++;
z=300-15*x-9*y;
if (100-x-y==z)
printf("%-8d%8d%8d\n",x,y,z);
return 0;
}
我編譯運(yùn)行沒(méi)有問(wèn)題
x=20,y=34,z=-306
最后一次不會(huì)輸出xyz
6.
為什么把 double popu=13;
分解成 doubble popu;
popu=13;運(yùn)行出現(xiàn)錯(cuò)誤?
你寫錯(cuò)了doubble多寫了個(gè)b
#include stdio.h
#include math.h
int main(void)
{double a;
printf("enter areal number please");
scanf ("%lf",a);
printf ("abstr(%lf)=%lf\n",a,fabs(a)); //求絕對(duì)值用 fabs();要包含 math.h頭文件
return 0;}
有。C語(yǔ)言求絕對(duì)值的函數(shù)為abs( x )與fbs( x ),abs( x )包含于stdlib.h,且兩者均包含于math頭文件之下。
1、abs( x )函數(shù)
格式:int abs( int i );
作用:求整型數(shù)的絕對(duì)值
例子:
#includestdio.h
#include stdlib.h
#includemath.h
main(? ?)
{
int a = 1, b = -2 ;
printf("%d的絕對(duì)值是%d,%d的絕對(duì)值是%d\n", a, abs( a ), b, abs( b ));
}
運(yùn)行結(jié)果為:1的絕對(duì)值是1,-2的絕對(duì)值是2
2、fabs( x )函數(shù)
格式:float fabs( float i ); / double fabs( double x );
作用:求浮點(diǎn)數(shù)的絕對(duì)值
例子:
#includestdio.h
#includemath.h
main(? ?)
{
float a = 1.4, b = -2.7 ;
printf("%f的絕對(duì)值是%f,%f的絕對(duì)值是%f\n", a, fabs( a ), b, fabs( b ));
}
運(yùn)行結(jié)果為:1.400000的絕對(duì)值是1.400000,-2.700000的絕對(duì)值是2.700000
擴(kuò)展資料:
其他math.h頭文件包含函數(shù)介紹:
1、 三角函數(shù)
double sin(double);正弦
double cos(double);余弦
double tan(double);正切
2 、反三角函數(shù)
double asin (double); 結(jié)果介于[-PI/2,PI/2]
double acos (double); 結(jié)果介于[0,PI]
double atan (double); 反正切(主值),結(jié)果介于[-PI/2,PI/2]
double atan2 (double,double); 反正切(整圓值),結(jié)果介于[-PI,PI]
3 、雙曲三角函數(shù)
double sinh (double);
double cosh (double);
double tanh (double);
4 、指數(shù)與對(duì)數(shù)
double frexp(double value,int *exp);這是一個(gè)將value值拆分成小數(shù)部分f和(以2為底的)指數(shù)部分exp,并返回小數(shù)部分f,即f*2^exp。其中f取值在0.5~1.0范圍或者0。
double ldexp(double x,int exp);這個(gè)函數(shù)剛好跟上面那個(gè)frexp函數(shù)功能相反,它的返回值是x*2^exp
double modf(double value,double *iptr);拆分value值,返回它的小數(shù)部分,iptr指向整數(shù)部分。
double log (double); 以e為底的對(duì)數(shù)
double log10 (double);以10為底的對(duì)數(shù)
double pow(double x,double y);計(jì)算x的y次冪
float powf(float x,float y); 功能與pow一致,只是輸入與輸出皆為單精度浮點(diǎn)數(shù)
double exp (double);求取自然數(shù)e的冪
double sqrt (double);開平方根
5 、取整
double ceil (double); 取上整,返回不比x小的最小整數(shù)
double floor (double); 取下整,返回不比x大的最大整數(shù),即高斯函數(shù)[x]
#includestdio.h
int main(void)
{
double a,abstr(double a);
printf("Entering a real number please:\n");
scanf("%lf",a);
printf("abstr(%lf)=%lf\n",a,abstr(a));
}
double abstr (double x)
{
if (x0.0)
x=-x;
else
x=x;
return x;
}