捉虫记---查看变量,整数转浮点
生活随笔
收集整理的這篇文章主要介紹了
捉虫记---查看变量,整数转浮点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/** dot.cpp** Created on: 2014年12月31日* Author: judyge*/#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<time.h>
#define random(x) (rand()%x)
using namespace std;bool randbool(){bool flag;int intflag=random(2);if(intflag==0){flag=false;}else{flag=true;}return flag;
}int k(int x1,int y1,int x2,int y2)
{int ck;if(x2-x1==0){ck=10000;}else{ck=(y2-y1)/(x2-x1);}return ck;
}void randxy(int *nx,int *ny)
{srand((unsigned)time(0));for(int x=0;x<100;x++){if(randbool()){nx[x]=random(100);}else{nx[x]=-random(100);}}for(int y=0;y<100;y++){if(randbool()){ny[y]=random(100);}else{ny[y]=-random(100);}}
}int countk(int *nx1,int *ny1)
{int count=0;int tmpcount;for(int i=0;i<100;i++){int mk=k(nx1[i],ny1[i],nx1[i+1],ny1[i+1]);tmpcount=0;for(int j=i+1;j<100;j++){if(k(nx1[i],ny1[i],nx1[j],ny1[j])==mk){tmpcount++;}}if(tmpcount>count){count=tmpcount;}}return count;
}int main()
{clock_t start,finish;double time;start=clock();int nx1[100];int ny1[100];randxy(nx1,ny1);// for(int i=0;i<100;i++)
// {// cout<<nx1[i]<<','<<ny1[i]<<'\n';// }cout<<countk(nx1,ny1);finish=clock();time=(double)((finish-start)/CLOCKS_PER_SEC);printf("start:%ld\t\tfinish:%ld\tfinish-start:%ld\truntime:%f\n",start,finish,finish-start,time);return 0;}
運行后結果?衛60,感覺太大,調試看看變量ck一直未0,1。
問題出來了除法問題,換成浮點.
/** dot.cpp** Created on: 2014年12月31日* Author: judyge*/#include<stdio.h> #include<stdlib.h> #include<iostream> #include<time.h> #define random(x) (rand()%x) using namespace std;bool randbool(){bool flag;int intflag=random(2);if(intflag==0){flag=false;}else{flag=true;}return flag; }float k(float x1,float y1,float x2,float y2) {float ck;if(x2-x1==0){ck=10000.0000;} //y軸上時候else{ck=(y2-y1)/(x2-x1);}return ck; }void randxy(float *nx,float *ny) {srand((unsigned)time(0));for(int x=0;x<100;x++){if(randbool()){nx[x]=random(100)/1.0000;}else{nx[x]=-random(100)/1.0000;}}for(int y=0;y<100;y++){if(randbool()){ny[y]=random(100)/1.0000;}else{ny[y]=-random(100)/1.0000;}} } // 產生隨機數int countk(float *nx1,float *ny1) {int count=0;int tmpcount;for(int i=0;i<100;i++){float mk=k(nx1[i],ny1[i],nx1[i+1],ny1[i+1]);tmpcount=0;for(int j=i+1;j<100;j++){if(k(nx1[i],ny1[i],nx1[j],ny1[j])==mk){tmpcount++;}}if(tmpcount>count){count=tmpcount;}}return count; } //統計數量int main() {clock_t start,finish;double time;start=clock();float nx1[100];float ny1[100];randxy(nx1,ny1);// for(int i=0;i<100;i++) // {// cout<<nx1[i]<<','<<ny1[i]<<'\n';// }cout<<countk(nx1,ny1);finish=clock();time=(double)((finish-start)/CLOCKS_PER_SEC);printf("start:%ld\t\tfinish:%ld\tfinish-start:%ld\truntime:%f\n",start,finish,finish-start,time);return 0;}
總結
以上是生活随笔為你收集整理的捉虫记---查看变量,整数转浮点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 九度 题目1548:平面上的点
- 下一篇: 最好最坏和平均情况下的性能分析