| Код | #include <time.h> #include <stdlib.h>
#define N 3 #define M 4 #define MAX_INTEGER 100
int rankOfInteger(int iNumber_); int fillArrWithIntegers(int iArr_[], int iSizeOfArr_); void fillArrWithChar(int iArr_[], int iSizeOfArr_, char* szString_);
int _tmain(int argc, _TCHAR* argv[]) { int iFirstArr[N], iSecondArr[M], iCurrentNumber, iSizeOfCharArr=0; srand(time(0));
iSizeOfCharArr = fillArrWithIntegers(iFirstArr, N); iSizeOfCharArr += fillArrWithIntegers(iSecondArr, M);
char *szCharArr = new char[iSizeOfCharArr+2];//Один байт для '/0' второй для десятичной точки
strcpy(szCharArr, "");
fillArrWithChar(iFirstArr, N, szCharArr); strcat(szCharArr, "."); fillArrWithChar(iSecondArr, M, szCharArr);
double dNumber = atof(szCharArr); return 0; }
void fillArrWithChar(int iArr_[], int iSizeOfArr_, char* szString_) { int iCurrentNumber; for(int i=0; i<iSizeOfArr_; i++) { iCurrentNumber = iArr_[i]; char *szTemp = new char[rankOfInteger(iCurrentNumber)+1]; strcpy(szTemp, ""); itoa(iCurrentNumber, szTemp, 10); strcat(szString_, szTemp); }
return; }
int fillArrWithIntegers(int iArr_[], int iSizeOfArr_) { int iCurrentNumber, iSizeOfCharArr=0;
for(int i=0; i<iSizeOfArr_; i++) { iCurrentNumber = rand()%MAX_INTEGER; iArr_[i] = iCurrentNumber; iSizeOfCharArr += rankOfInteger(iCurrentNumber); }
return iSizeOfCharArr; }
int rankOfInteger(int iNumber_) { int iDivisior = 10; int iResult, iRank=0, iTemp;
do { iResult = iNumber_ / iDivisior; iRank += 1; iDivisior *= 10; } while(iResult != 0); if(0 == iRank) return -1; else return iRank; }
|
|