C语言的格式控制符问题
生活随笔
收集整理的這篇文章主要介紹了
C语言的格式控制符问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?寫C程序遇到這樣一個(gè)問題,定義了double變量,printf輸出卻要%f。一直以為應(yīng)該用%lf,事實(shí)上VC++6.0用%lf會(huì)報(bào)錯(cuò)。原因還要在探究。
貼吧有人說:double變量,scanf時(shí)必須用%lf,printf時(shí)要用%f或者%lf(但是我用%lf運(yùn)行出錯(cuò),不明原因)。
測試程序如下:
#include #include int main(void) { double * baibalance(int *oriimg); int *BW = (int*)malloc( 6*sizeof(int*) ); int i; for(i=0; i<6; i++) BW[i]=i; double *baiimg = (double*)malloc( 6*sizeof(double*) ); baiimg = baibalance( BW ); for(i=0; i<6; i++) printf("%f ", baiimg[i]); return 0; } double * baibalance(int *oriimg) {? int H=2, W=3; int i, max=oriimg[0]; double *baiimg = (double*)malloc( H*W*sizeof(double*) );//存放歸一化之后的圖像數(shù)組 //找灰度最大的像素點(diǎn) for(i=0; i < H*W; i++) { if(oriimg[i] > max) max = oriimg[i]; } //歸一化 for(i=0; i < H*W; i++) { baiimg[i] = oriimg[i]/(max*1.0); }
return baiimg; }
測試程序如下:
#include #include int main(void) { double * baibalance(int *oriimg); int *BW = (int*)malloc( 6*sizeof(int*) ); int i; for(i=0; i<6; i++) BW[i]=i; double *baiimg = (double*)malloc( 6*sizeof(double*) ); baiimg = baibalance( BW ); for(i=0; i<6; i++) printf("%f ", baiimg[i]); return 0; } double * baibalance(int *oriimg) {? int H=2, W=3; int i, max=oriimg[0]; double *baiimg = (double*)malloc( H*W*sizeof(double*) );//存放歸一化之后的圖像數(shù)組 //找灰度最大的像素點(diǎn) for(i=0; i < H*W; i++) { if(oriimg[i] > max) max = oriimg[i]; } //歸一化 for(i=0; i < H*W; i++) { baiimg[i] = oriimg[i]/(max*1.0); }
return baiimg; }
總結(jié)
以上是生活随笔為你收集整理的C语言的格式控制符问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高斯曲率求表面极值点
- 下一篇: 高斯卷积核如何生成 C语言实现