Re: [問題] 兩種寫法的差異
原文吃光光留一點...
1.把原本的浮點數改成整數去做比較
2.把浮點數轉成字串去做比較
方法1的部份code:
...........
int a,b;
int c[i]
if(a = = b) c[i]=a;
...........
方法2的部份code:
...........
char str1[6],str2[6];
double s1,s2;
double c[i]
sprintf(str1,"%2.1f",s1);
sprintf(str2,"%2.1f",s2);
if( (strcmp(str1,str2)) = = 0 ) c[i]=s1;
...........
先把我的用途跟值域報告一下:
#include<stdio.h>
int main(void)
{
double aa[60]={1.2,0.9,0.6,0.7,1.2,0.5,0.9,0.8,0.7,0.8,1.5,0.9,
1.6,0.8,0.8,1.9,1.2,0.6,0.8,0.7,0.5,1.5,0.6,1.6,
1.5,0.7,0.9,1.2,1,0.7,1.5,0.6,0.5,1.4,1.4,0.9,
0.7,0.7,0.9,1.2,0.8,0.7,1.3,0.5,1.4,0.5,0.9,1.7,
0.5,0.7,1.2,0.8,0.8,0.6,1.9,0.6,0.8,1.6,1,0.7};
double bb[12]={0.6,0.7,1.8,0.9,0.5,1.6,0.9,1.5,1.8,0.8,0.9,0.5};
double cc[30]={0.5,1,0.8,1.5,1.6,1.5,0.8,1.6,0.8,1.6,0.9,1.7,
0.8,1.7,1,0.8,0.9,1.8,0.5,1.5,1,0.9,0.8,0.9,1.5,
1.8,0.7,0.8,1.6,0.6};
double dd[12]={1.6,0.6,0.7,1,0.9,1.6,1,0.8,0.8,0.9,0.6,0.6};
int a,b,c,d,count=0;
double w=0;
for(a=0;a<60;a++)
{
for(b=0;b<12;b++)
{
if(b%2==0)
{
for(c=0;c<29;c++)
{
for(d=0;d<12;d++)
{
w=aa[a]+bb[b]+cc[c]+dd[d];
//printf("%2.1f\n",w);
count++;
}
}
}
else
{
for(c=0;c<30;c++)
{
for(d=0;d<12;d++)
{
w=aa[a]+bb[b]+cc[c]+dd[d];
//printf("%2.1f\n",w);
count++;
}
}
}
}
}
printf("count=%d\n",count);
return 0;
}
程式的用途就是要把aa[] bb[] cc[] dd[]四組陣列內的數字相加
然後把這些相加後的值存起來做後續的使用(搜尋某些值、計算某些值出現的次數‧‧‧)
四組陣列裡面所存放的值大約都是0.5~1.9的浮點數
相加出來所要處理的值大概是介於2.1~7.2之間的浮點數
================================我是分隔線==================================
我新的想法:
可以的話把我要處理的浮點數用2進位的表示去互相比較
ex:
10進位=> 1.5
2進位=> 1.1
可不可以用兩組陣列來存放整數部份的2進位碼跟小數部份的2進位碼
像是這樣
1.5可以存成↓
整數部份:
┌─┬─┬─┬─┐
i_bit[4] │ 0│ 0│ 0│ 1│
└─┴─┴─┴─┘
小數部份:
┌─┬─┬─┬─┐
f_bit[4] │ 1│ 0│ 0│ 0│
└─┴─┴─┴─┘
然後就可以把要比較的兩個浮點數一個一個bit去比....
我的意思大概是這樣!!
想了很久不知道這樣可不可行....
--
態度決定你的高度
你有多高?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.114.166.192
→
07/29 21:03, , 1F
07/29 21:03, 1F
→
07/29 21:04, , 2F
07/29 21:04, 2F
推
07/29 21:11, , 3F
07/29 21:11, 3F
→
07/29 21:12, , 4F
07/29 21:12, 4F
→
07/29 21:14, , 5F
07/29 21:14, 5F
→
07/29 21:16, , 6F
07/29 21:16, 6F
推
07/29 21:31, , 7F
07/29 21:31, 7F
→
07/29 21:31, , 8F
07/29 21:31, 8F
推
07/29 22:35, , 9F
07/29 22:35, 9F
推
07/29 23:08, , 10F
07/29 23:08, 10F
→
07/29 23:09, , 11F
07/29 23:09, 11F
→
07/29 23:09, , 12F
07/29 23:09, 12F
→
07/29 23:09, , 13F
07/29 23:09, 13F
→
07/29 23:11, , 14F
07/29 23:11, 14F
※ 編輯: lairrol 來自: 58.114.166.192 (07/30 06:02)
→
07/30 06:04, , 15F
07/30 06:04, 15F
→
07/30 06:07, , 16F
07/30 06:07, 16F
→
07/30 06:07, , 17F
07/30 06:07, 17F
→
07/30 07:08, , 18F
07/30 07:08, 18F
→
07/30 08:08, , 19F
07/30 08:08, 19F
→
07/30 08:08, , 20F
07/30 08:08, 20F
→
07/30 08:09, , 21F
07/30 08:09, 21F
→
07/30 08:10, , 22F
07/30 08:10, 22F
推
07/30 09:07, , 23F
07/30 09:07, 23F
→
07/30 09:08, , 24F
07/30 09:08, 24F
→
07/30 09:10, , 25F
07/30 09:10, 25F
推
07/30 09:15, , 26F
07/30 09:15, 26F
→
07/30 09:40, , 27F
07/30 09:40, 27F
→
07/30 09:42, , 28F
07/30 09:42, 28F
→
07/30 09:47, , 29F
07/30 09:47, 29F
→
07/30 09:48, , 30F
07/30 09:48, 30F
推
07/30 10:06, , 31F
07/30 10:06, 31F
→
07/30 10:06, , 32F
07/30 10:06, 32F
→
07/30 10:07, , 33F
07/30 10:07, 33F
討論串 (同標題文章)