#include <stdio.h>
#include <stdlib.h>
#include <time.h>
double a[20];
int i = 0;
srand((unsigned)time(NULL));//确保每次生成的随机数不一样
double randrange[2]={-3,3};
for (i = 0; i < 20; i++){
a[i] = randrange[0]+(randrange[1]-randrange[0])*(rand()/(RAND_MAX+1.0));
}
for (i = 0; i < 20; i++){
std::cout << a[i] << " ";
}
std::cout << std::endl;
std::cout.flush();
两次生成的随机数,如果不加srand函数,两次生成的随机数将一样
比较两个分数
#include <iostream>
using namespace std;
//比较两个分数
int compareTwoScore(int fz1,int fm1,int fz2,int fm2){
//分母相等
if(fm1 == fm2){
return fz1-fz2;
}
//分母不相等--进行通分
int tmpFZ1 = fz1*fm2;
int tmpFZ2 = fz2*fm1;
return tmpFZ1-tmpFZ2;
}
//主函数
int main()
{
//分别存储分数非分子和分母
int fz1 = 0,fm1 = 1;
int fz2 = 0,fm2 = 1;
while(1){
//输入第一个分数
cout << "input the first socre:";
cin >> fz1 >> fm1;
if(fz1 ==0 && fm1 ==0){
break;
}
//输入第二个分数
cout << "input the second socre:";
cin >> fz2 >> fm2;
if(fz2 ==0 && fm2 ==0){
break;
}
//调用子函数比较两个分数
int result = compareTwoScore(fz1,fm1,fz2,fm2);
//0表示相等,1表示第一个分数大,-1表示第一个数小
if(result == 0){
cout << "result: first=second" << endl;
}else if(result == 1){
cout << "result: first>second" << endl;
}else if(result == -1){
cout << "result: first<second" << endl;
}else{
cout << "error: input error!" << endl;
}
}
return 0;
}