,   CyberForum.ru

- C++

C++ static_cast http://www.cyberforum.ru/cpp-beginners/thread613175.html
_, ?
C++ - ! - UML- . Qt. (). - . ( - , ..). ? (case)? , , ( )? http://www.cyberforum.ru/cpp-beginners/thread613171.html
( )? C++
, , . #include "iostream.h" void maxmass(int *p) { for (int i = 0; i < sizeof(p) / sizeof(p);++i) { if (*p < 0) p++;
C++
, ? round math.h .
C++ http://www.cyberforum.ru/cpp-beginners/thread613144.html
. . 10 , . 9 , " ". ? : , , ? . #include <iostream>
C++ , #include <cstdlib> #include <cmath> #include <iostream> #include <time.h> using namespace std; void DeleteElement(int* arr, size_t length, size_t pos) {

-==-
FAQ
25.06.2012, 17:12    
2,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <cmath>
#include <iostream>
using namespace std;
 
//Ôó*êöèÿ âîçâð*ù*åò ì*ññèâ ð*çðÿäîâ ÷èñë* ipart
//Âîçâð*ù*åìîå ç**÷å*èå - ì*ññèâ ð*çðÿäîâ 
//nDigits áóäåò ñîäåðæ*òü ÷èñëî ð*çðÿäîâ
int * splitIntPartInDigits(int ipart, int &nDigits);
//Ôó*êöèÿ âîçâð*ù*åò ì*ññèâ ð*çðÿäîâ ÷èñë* fpart
//fpart - (äðîá**ÿ)äåñÿòè÷**ÿ ÷*ñòü âåùåñòâå**îãî ÷èñë*
//Âîçâð*ù*åìîå ç**÷å*èå - ì*ññèâ ð*çðÿäîâ 
//nDigits áóäåò ñîäåðæ*òü ÷èñëî ð*çðÿäîâ
int * splitFractPartInDigits(double fpart, int &nDigits);
//Ôó*êöèÿ âîçâð*ù*åò è*äåêñ ì*ñ ýëåìå*ò* â ì*ññèâå arr
int getMaxDigInArr(int * arr, int n);
 
int main()
{
    //Ïðåäïîë*ã*åì ÷òî ì*êñèì*ëü** 1-*ÿ öèôð* ÷èñë*
    double value;
    double ipart, fpart;
    cout<<"Enter double : ";cin>>value;
    int nIpart = 0;//×èñëî öèôð â öåëîé ÷*ñòè
    int nFpart = 0;//×èñëî öèôð â äðîá*îé ÷*ñòè
    fpart = modf(value,&ipart);//Ð*çáèâ*åì ÷èñëî ** öåëóþ è äðîá*óþ ÷*ñòè
    int * iArr = splitIntPartInDigits  (ipart, nIpart);
    int * fArr = splitFractPartInDigits(fpart, nFpart);
    
    int maxPos = getMaxDigInArr(iArr, nIpart);
    int arrPos = getMaxDigInArr(fArr, nFpart);
    int maxNum = iArr[maxPos];
    if(maxNum < fArr[arrPos])
    {
        maxNum = fArr[arrPos];
        maxPos = nIpart + arrPos;
    }
    cout<<"Max digit in number : "<<maxNum<<endl;
    cout<<"Index of max digit from the begin : "<<maxPos<<endl;
    cout<<"Index of max digit from the end   : "<<nIpart + nFpart - maxPos<<endl;
    system("pause");
    return 0;
}
 
int * splitIntPartInDigits(int ipart, int &nDigits)
{
    int bufer = ipart;
    nDigits = 1;
    //Ïîäñ÷¸ò ð*çðÿäîâ ÷èñë*
    while(0 < (bufer = bufer / 10))
        nDigits++;
    //Âûäåëå*èå ï*ìÿòè ïîä ì*ññèâ ñ ð*çðÿä*ìè
    int * iArr = new int[nDigits];
    for(nDigits = 0; 0 < ipart; nDigits++)
    {
        iArr[nDigits] = ipart % 10;
        ipart = ipart / 10;
    }
    return iArr;
}
 
int * splitFractPartInDigits(double fpart, int &nDigits)
{
    double bufer = fpart;
    double ipart = 0;
    nDigits = 1;
    //Ïîäñ÷¸ò ð*çðÿäîâ ïîñëå ç*ïÿòîé
    while((bufer = modf(bufer*10,&ipart)))
        nDigits= nDigits + 1;
    //Âûäåëå*èå ï*ìÿòè ïîä ì*ññèâ ñ ð*çðÿä*ìè
    int * fArr = new int[nDigits];
    bufer = fpart;
    for(nDigits = 0; (bufer = modf(bufer*10,&ipart)); nDigits++)
        fArr[nDigits] = ipart;
    return fArr;
}
 
int getMaxDigInArr(int * arr, int n)
{
    int imax = 0;//Ïîë*ã*åì ÷òî 1-é ºëåìå*ò èìååò ì*êñ ç**÷å*èå
    for(int i = 1; i < n; i++)
    {
        if(arr[imax] < arr[i])
            imax = i;
    }
    return imax;
}
        
 
: 04:07. GMT +3.
- , ,
-
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
@Mail.ru