A. C語言對多重函數調用不明確怎麼破
原因:
fabs(k)有點問題。
k是整數,而
fabs()有如下幾種原型:
double
fabs
(
double
x
);
float
fabs
(
float
x
);
long
double
fabs
(
long
double
x
);
因此編譯器需要將k
轉為double,float和long
double中的一種類型,但是有三種可能,所以編譯器不知道你要的是哪一種,所以報「調用不明確」
解決方法:
以下三種調用皆可,其實就是顯式轉換數據類型
(int)fabs((double)k);
(int)fabs((float)k);
(int)fabs((long
double)k);
B. : "fabs": 對重載函數的調用不明確
我是比較"資深"的程序員, 從你寫的代碼來看, 你應該剛學會編程不久.
Q1:
#define X(a , b) fabs(a-b) #define Y(a , c) fabs(a-c)#define Z(b , c) fabs(b-c) 這三個宏本質上是一個宏, 沒有必要這樣做, 這個習慣不好.
Q2:
fabs是math.h里的函數, 全稱為float type absolute value, 意思是"浮點型數據的絕對值", 但你輸入的參數都為int型, 即整型. 你也可以使用std(標准庫)里的Abs<float>()函數, 這里涉及模板類的知識.
Q3:
函數重載是C++特性之一, 其中兩個知識點, 一個叫"強制類型轉換", 另一個叫"隱轉換", 很多時候都是編譯器自動處理的, 這可能導致很嚴重的錯誤, 例如double被強制轉換為了int型而你不知道, 特別是當你使用了指針時.
Q4:
絕大多數編譯器錯誤在微軟的官網上都有解釋, 或者網路搜索error C****(例如 error C2668)就可以找到相關網頁. 這種錯誤算很簡單了, 有些比較復雜的問題往往需要在網路上找一整天才能有答復, 大多數程序員都是在苦苦搜尋數小時無果後才會到專業網站上提問(例如StackOverFlow, CSDN, 等等).
C. fabs在c語言中意思
fabs
原型:在TC中原型是extern float fabs(float x);,在VC6.0中原型是double fabs(double x );
用法:#include <math.h>;
功能:abs函數是一個求絕對值的函數,求出x的絕對值,和數學上的概念相同,, 當x不為負時返回 x,否則返回 -x。
(3)fabs編譯器擴展閱讀:
C語言主要特點如下:
(1)簡潔的語言
C語言包含的各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
(2)具有結構化的控制語句
C語言是一種結構化的語言,提供的控制語句具有結構化特徵,如for語句、if⋯else語句和switch語句等。可以用於實現函數的邏輯控制,方便麵向過程的程序設計。
(3)豐富的數據類型
C語言包含的數據類型廣泛,不僅包含有傳統的字元型、整型、浮點型、數組類型等數據類型,還具有其他編程語言所不具備的數據類型,其中以指針類型數據使用最為靈活,可以通過編程對各種數據結構進行計算。
(4)豐富的運算符
C語言包含34個運算符,它將賦值、括弧等均視作運算符來操作,使C程序的表達式類型和運算符類型均非常豐富。
(5)可對物理地址進行直接操作
C語言允許對硬體內存地址進行直接讀寫,以此可以實現匯編語言的主要功能,並可直接操作硬體。C語言不但具備高級語言所具有的良好特性,又包含了許多低級語言的優勢,故在系統軟體編程領域有著廣泛的應用。
(6)代碼具有較好的可移植性
C語言是面向過程的編程語言,用戶只需要關注所被解決問題的本身,而不需要花費過多的精力去了解相關硬體,且針對不同的硬體環境,在用C語言實現相同功能時的代碼基本一致,不需或僅需進行少量改動便可完成移植,這就意味著,對於一台計算機編寫的C程序可以在另一台計算機上輕松地運行,從而極大的減少了程序移植的工作強度。
(7)可生成高質量、目標代碼執行效率高的程序
與其他高級語言相比,C語言可以生成高質量和高效率的目標代碼,故通常應用於對代碼質量和執行效率要求較高的嵌入式系統程序的編寫。
參考資料來源:
網路-c語言
網路-fabs函數
D. 學習VC++,庫函數sqrt、fabs在編譯時,出現未說明錯誤是何原因
加上如下頭文件
#include <math.h>
or
#include <cmath>
using namespace std;
----------------------------------------------------------------------------------------------------------------------
頭文件加在該文件內了嗎?把錯誤信息貼出來看看
----------------------------------------------------------------------------------------------------------------------
math.h要放在stdafx.h下面才行,你試試
E. c語言絕對值問題 題目描述 求整型數據和浮點型數據的絕對值。 輸入兩個數,第一個是整數,第二
我稍微蓋了一下
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
intmain()
{
inta;
doubleb;
scanf("%d",&a);
scanf("%lf",&b);
printf("%d ",abs(a));
printf("%g ",fabs(b));//fabs函數沒問題可能是你的頭文件里的問題可以換個編譯器看看%g是省去後面的0
return0;
}
F. fabs在c語言中意思是什麼
fabs函數是一個求絕對值的函數。
fabs()函數的聲明:double fabs(double x)。其中參數x 是浮點值,這個函數返回x的絕對值。代碼示例如下:
int main (){
int a, b;
a = 1234;
b = -344;
printf("The absolute value of %d is %lf", a, fabs(a));
printf("The absolute value of %d is %lf", b, fabs(b));
return(0);}
編譯和運行上面的程序,這將產生以下結果:
The absolute value of 1234 is 1234.000000
The absolute value of -344 is 344.000000
fabs()和abs()區別:
c語言中函數abs和fabs只有一個區別:abs函數是求整數的絕對值,函數原型是int abs(int x);fabs函數是求浮點數的絕對值,函數原型是float fabs(float x)。
abs函數是一種用於求絕對值的LV函數。因為abs(x)在0點的導數是不存在的,而對於x為復數 abs(x)是不解析的,所以他的取值只能是正數或者負數。
G. fabs在c語言中意思是什麼
fabs()屬於C語言中的庫函數,用於求浮點數x的絕對值。
函數原型:double fabs(double x);
函數功能:函數fabs的作用是求浮點數x的絕對值。
函數參數:參數x是一個浮點數。
說明:函數fabs()的輸入參數必須以double類型輸入,函數返回值為double型。因此,必須使用double類型變數作為接收返回值的數據。
函數的返回值:函數返回x的絕對值。
庫函數把一些常用到的函數編完放到一個文件里,供不同的人進行調用。調用的時候把它所在的文件名用#include<>加到裡面就可以了。一般是放到lib文件里的。
C語言的庫函數並不是C語言本身的一部分,它是由編譯程序根據一般用戶的需要編制並提供用戶使用的一組程序。C的庫函數極大地方便了用戶,同時也補充了C語言本身的不足。
事實上,在編寫C語言程序時,應當盡可能多地使用庫函數,這樣既可以提高程序的運行效率,又可以提高編程的質量。
H. C語言中deta,fabs,<stdlib.h>,<stdio.h>分別是什麼意思
fabs 編輯本段C語言數學函數:fabs 函數簡介原型:在TC中原型是extern float fabs(float x);,在VC6.0中原型是double fabs( double x );。 用法:#include <math.h> 功能:求浮點數x的絕對值 說明:計算|x|, 當x不為負時返回x,否則返回-x 類似函數:absstdlib 頭文件即standard library標准庫頭文件 stdlib 頭文件里包含了C、C++語言的最常用的系統函數 該文件包含了的C語言標准庫函數的定義 stdlib.h裡面定義了五種類型、一些宏和通用工具函數。 類型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等; 常用的函數如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。 具體的內容你自己可以打開編譯器的include目錄裡面的stdlib.h頭文件看看。stdio.h就是指「standard input&output" 意思就是說標准輸入輸出頭文件! 所以了,用到標准輸入輸出函數時,就要調用這個頭文件!沒見到deta