Премини към съдържанието

Препоръчан отговор


Здравейте,

Някой ако има идея как да се направи тази задача ще съм много благодарен.

Задачата е :

Да се напише програма, която:
• Получава целочислен от 100 елемента и извежда на екрана въведения масив.
• Записва в масив1 на максималното от всеки 5 числа и в масив2 - всички останали числа.
• Да се намери колко пъти се среща цифрата 5 в масив2.
• Програмата да има текстово меню, от което потребителят да избира дали да въвежда масив
или да обработва вече въведен такъв.

 

Като за начало почнах с това :

 

#include <stdio.h>

#define ARRAY_SIZE    (100)

int printMenu()
{
    char c;
    printf("\nChoose:\n");
    printf("1.Now masiv\n");
    printf("2. Promqna na veche vuveden masiv\n");
    printf("3. Izhod\n");
    do {
        c = getch();
    }while ((c < '1') || (c > '3'));
    return (c - '0');
}

int main()
{

}

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Здравейте !

 

• Записва в масив1 на максималното от всеки 5 числа и в масив2 - всички останали числа.

Това важи за всеки 5 произволни числа от масива или разделяме масива на 20 подмасива от по 5 числа и измежду тях намираме най-голямото ?

 

 

 

• Да се намери колко пъти се среща цифрата 5 в масив2.

Цифрата или числото ? Ако е за цифрата 5, то тогава ще трябва да проверим всяко число в масив2 дали съдържа цифра 5 и да проброим общо колко пъти се среща. Ако е за числото, просто ще проверим колко пъти то се среща в масив2 само.

 

Започнали сте добре с менюто, сега трябва да се добавят и функции + малко логика по последната точка.

Ще са необходими функции за:

- Въвеждане на масив от числа с размер size (0 < size <= 100)

void fillArray(int[] arrayToFill, int size){...} 

- Извеждане на числата от масив в конзолата, който ще приема като аргументи масив, който трябва да се изведе и размера му 

void printArray(int[] arr, int size){
//Тяло на метода
}

- Функция за намирането на индекса на най-големия елемент в даден интервал от масив

int getMaxElementIndex(int[] arr, int startIndex, int endIndex){...}

- Функция за изпълнение на прехвърлянето на елементите по правилните масиви. Тук метода може да варира като разписване, в зависимост дали искаме да го параметризираме като util метод (всички данни, ще се подадат като параметри) или да се държи като couple-нат метод към данните (данните ще се изчитат като глобални). Избора е Ваш.

 

Мисля, че това е начало като насока в която да се поеме.

 

Поздрави !

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Здравейте !

Това важи за всеки 5 произволни числа от масива или разделяме масива на 20 подмасива от по 5 числа и измежду тях намираме най-голямото ?

 

Цифрата или числото ? Ако е за цифрата 5, то тогава ще трябва да проверим всяко число в масив2 дали съдържа цифра 5 и да проброим общо колко пъти се среща. Ако е за числото, просто ще проверим колко пъти то се среща в масив2 само.

 

Започнали сте добре с менюто, сега трябва да се добавят и функции + малко логика по последната точка.

Ще са необходими функции за:

- Въвеждане на масив от числа с размер size (0 < size <= 100)

void fillArray(int[] arrayToFill, int size){...} 

- Извеждане на числата от масив в конзолата, който ще приема като аргументи масив, който трябва да се изведе и размера му 

void printArray(int[] arr, int size){
//Тяло на метода
}

- Функция за намирането на индекса на най-големия елемент в даден интервал от масив

int getMaxElementIndex(int[] arr, int startIndex, int endIndex){...}

- Функция за изпълнение на прехвърлянето на елементите по правилните масиви. Тук метода може да варира като разписване, в зависимост дали искаме да го параметризираме като util метод (всички данни, ще се подадат като параметри) или да се държи като couple-нат метод към данните (данните ще се изчитат като глобални). Избора е Ваш.

 

Мисля, че това е начало като насока в която да се поеме.

 

Поздрави !

 

Записва в масив1 на максималното от всеки 5 числа и в масив2 - всички останали числа. - Става въпрос за всяко 5-то число от даден масив - например ако е от 20 - 5,10,15,20 и във втория масив останалите числа - 1,2,3,4,6,7,8,9,11,12,13,14,16,17,18,19.

Да се намери колко пъти се среща цифрата 5 в масив2. - Тук става въпрос само за цифрата и ако гледам примера с 20 по-горе ще е само 5 и 15.

За момента съм малко скаран с този език и ми е малко трудно, защото до сега съм работил само с C++ и ми е малко странно с функциите на C, но предполагам, че ще успея. Имам 1 седмица и учебник, но ако на някой му се занимава няма да му се разсърдя :D Благодаря за предния коментар :) Помогна ми за ориентация :)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

 

void maxOfEachFiveElements(int array[]){

    int array1[10],array2[90];

    int a1=0,a2=0,i=5;

      

      while(i<ARRAYSIZE){

          int max=array[i-5];

       

               for(int pos=i-5;pos<i ;pos++)

                  if(array[pos]>max)

                   max=array[pos];

        

            for(int pos=i-5;pos<i ;pos++)

               if(array[pos]==max) array1[a1++]=max;

               else array2[a2++]=array[pos];

         

              

              

      i+=5;          

      }

                                   

}

Това е функцията за намирането на максималния елемент от всеки 5 числа.Тя ми се видя по-сложна от другите.

Ако имаш въпроси,питай.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Записва в масив1 на максималното от всеки 5 числа и в масив2 - всички останали числа. - Става въпрос за всяко 5-то число от даден масив - например ако е от 20 - 5,10,15,20 и във втория масив останалите числа - 1,2,3,4,6,7,8,9,11,12,13,14,16,17,18,19.

Т.е. в този случай става дума за:

 

 

 

разделяме масива на 20 подмасива от по 5 числа и измежду тях намираме най-голямото

защото 1,2,3,4,5 може да не са в наредба - може да са 4,5,1,3,2,6,7,... 

Иначе другото се изясни.

 

 

Това е функцията за намирането на максималния елемент от всеки 5 числа.Тя ми се видя по-сложна от другите.

Ако имаш въпроси,питай.

Реализацията на метода всъщност прави 2 неща (намиране и разпределение на елементите), което пак е приемливо с оглед на самата задача. Имам една забележка обаче - така дефинирани масивите array1[10] и array2[90] са локални променливи, които няма да се виждат извън функцията. Или трябва да се подадат като параметри или да се дефинират извън тялото (като глобални за програмата). В противен случай, останалите части от задачата няма да могат да се реализират.


  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

За момента съм малко скаран с този език и ми е малко трудно, защото до сега съм работил само с C++ и ми е малко странно с функциите на C, но предполагам, че ще успея. Имам 1 седмица и учебник, но ако на някой му се занимава няма да му се разсърдя :D Благодаря за предния коментар :) Помогна ми за ориентация :)

Ако трябва да търсиш конкретна цифра дали я има в число.

atoi - превръща символен низ в цяло число

itoa - превръща цяло число в символен низ

strchr - проверява символен низ за наличието на конкретен символ в него.

Първите две са в stdlib.h, а третата е в string.h

const char * strchr ( const char * str, int character );

return value:

A pointer to the first occurrence of character in str.

If the character is not found, the function returns a null pointer.

Или с други думи, ако функцията върне 0, символът не се съдържа, а ако върне различно от нула - символът се съдържа.

char * itoa ( int value, char * str, int base );

Тук всичко е ясно. За басе трябва да пишеш 10 - за десетична бройна система.

Може и със sprintf и sscanf. Форматния спецификатор е "%d".

 

Друго важно, което трябва да се знае е, че цялото число по смисъла на езика С, не е цяло число по смисъла на математиката.

 

3 не е същото като 3.0

 

Цяло число, което съдържа цифрата 5 в една бройна система, може да не съдържа цифрата 5 в друга бройна система. В този ред на мисли, в двоична бройна система нито едно от числата не съдържа цифрата 5.

Редактирано от Реджеп Иведик (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Тоя array1 защо е с размер 10? А и както е написана функцията няма никаква гаранция, че и 20 ще стигне. Ако са 100 еднакви числа всичките ще трябва да се запишат в него.

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Ако трябва да търсиш конкретна цифра дали я има в число.

atoi - превръща символен низ в цяло число

itoa - превръща цяло число в символен низ

strchr - проверява символен низ за наличието на конкретен символ в него.

Първите две са в stdlib.h, а третата е в string.h

const char * strchr ( const char * str, int character );

return value:

A pointer to the first occurrence of character in str.

If the character is not found, the function returns a null pointer.

Или с други думи, ако функцията върне 0, символът не се съдържа, а ако върне различно от нула - символът се съдържа.

char * itoa ( int value, char * str, int base );

Тук всичко е ясно. За басе трябва да пишеш 10 - за десетична бройна система.

Може и със sprintf и sscanf. Форматния спецификатор е "%d".

 

Друго важно, което трябва да се знае е, че цялото число по смисъла на езика С, не е цяло число по смисъла на математиката.

 

3 не е същото като 3.0

 

Цяло число, което съдържа цифрата 5 в една бройна система, може да не съдържа цифрата 5 в друга бройна система. В този ред на мисли, в двоична бройна система нито едно от числата не съдържа цифрата 5.

В случая на него ще му трябва броя на цифрите, а не дали се съдържа. Функциите, които сте приложил са полезни и се ползват, но не мисля, че са най-подходящи за решение на тази конкретна задача. 

Тук подхода по - скоро ще е добре да бъде онзи стар начин с модул и делене:

int countDigitsInNumber(int number, int digit) {
    int count = 0;
    int absNumber = abs(number);
    while (absNumber) {
        if (absNumber%10 == digit) {
            count++;
        }
        absNumber /= 10;
    }
    return count;
}

В случая приемам, че масива може да има и отрицателни елементи, поради което се използва и abs-а.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Т.е. в този случай става дума за:

 

защото 1,2,3,4,5 може да не са в наредба - може да са 4,5,1,3,2,6,7,... 

Иначе другото се изясни.

 

 

Реализацията на метода всъщност прави 2 неща (намиране и разпределение на елементите), което пак е приемливо с оглед на самата задача. Имам една забележка обаче - така дефинирани масивите array1[10] и array2[90] са локални променливи, които няма да се виждат извън функцията. Или трябва да се подадат като параметри или да се дефинират извън тялото (като глобални за програмата). В противен случай, останалите части от задачата няма да могат да се реализират.

Правилна забележка.А и както спомена колегата размера на единия е по-малък от колкото трябва.

 

 

 

void maxOfEachFiveElements(int array[],int array1[],int array2[]){

   ....

}

 

При дефинирането на двата масива(1 и 2),трябва да заделя 20 елемента за единия и 80 за другия.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

В случая на него ще му трябва броя на цифрите, а не дали се съдържа. Функциите, които сте приложил са полезни и се ползват, но не мисля, че са най-подходящи за решение на тази конкретна задача. 

Тук подхода по - скоро ще е добре да бъде онзи стар начин с модул и делене:

int countDigitsInNumber(int number, int digit) {
    int count = 0;
    int absNumber = abs(number);
    while (absNumber) {
        if (absNumber%10 == digit) {
            count++;
        }
        absNumber /= 10;
    }
    return count;
}
В случая приемам, че масива може да има и отрицателни елементи, поради което се използва и abs-а.

 

Аз разбрах, че се иска да разберем дали числото съдържа цифрата 5.

 

Броя на цифрите може да се намери и с

int i = unknownnumber;
int countdigits;
char* cptr[32]

itoa(abs(i),cptr,10);
countdigits = strlen(cptr);


Защото десетичните числа никога не започват с нула, за да не ги помислят за осмични. Редактирано от Реджеп Иведик (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Е, разбира се не и при представянето, но в случая авторите на функцията са решили да форматират символното представяне на десетичните числа без нула отпред.

А ако се използва функцията sprintf, можем да управляваме форматирането както на нас ни е удобно. Тя затова е и направена.

 

sprintf(cptr,"%d",abs(i));
countdigits = strlen(cptr); 
Редактирано от Реджеп Иведик (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Да, но по условие имаме:

 

 

Да се намери колко пъти се среща цифрата 5 в масив2. 

а не дали я има или колко е броя на всички цифри. Така, че и познанието колко цифри има числото пак не ни помага. Поради това или трябва всеки символ да го проверяваме дали е '5'или както цитирах в последното си мнение - просто да си направим методче за тази цел.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
#include <iostream>
#include <ctime>

using namespace std;

int five(int n) {
    int c=0;
    if (n<0) n=-n;
    while (n) {
       if (n%10==5) c++;
       n/=10;
    }
    return c;
}

int main () {
    int array[100], array1[100], array2[100];
    int s1=0, s2=0, mx, c5=0;
    
    cout<<"array[]\n";
    srand(time(NULL));
    for (int i=0; i<100; i++) {
       int t=rand()%900+100;
       cout<<t<<" ";
       array[i]=t;
    }
    cout<<"\n\narray1[]\n";
    for (int i=0; i<100; i+=5) {
        mx = array[i];
        for (int j=i+1; j<i+5; j++) 
            if (array[j]>mx) mx=array[j];
        for (int j=i; j<i+5; j++)
            if (array[j]==mx) {
                array1[s1++]=mx;
                cout<<mx<<" ";
            } else array2[s2++]=array[j];
    }
    
    cout<<"\n\narray2[]\n";
    for (int i=0; i<s2; i++) {
       int t=array2[i];
       cout<<t<<" ";
       c5+=five(t);
    }
       
    cout<<"\n\nBroj \'5\' v array2[]: "<<c5<<endl;
    cin.get();
}   

Понеже ме мързи да въвеждам всеки път 100 числа не са въвеждат ръчно, автора да си го напише както трябва и да сложи разните там менюта дето ги искат. Редактирано от ined (преглед на промените)
  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове


int n = 0;

loop:

cptr = strchr(cptr,'5');
if (cptr==0) goto outofloop;
cptr++;
n++;
goto loop

outofloop: 

Аз като гледам, ти търсиш, колко пъти дадена цифра се съдържа в числото. Със strchr това става така

 

Редактирано от Реджеп Иведик (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Личи си че първия ти език на който си се учил е бил Basic :)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Личи си че първия ти език на който си се учил е бил Basic :)

 

Е добре де. Може и с уайл 1, за да не си личи уж

int n = 0;


while (1)
    {
    cptr = strchr(cptr,'5');
    if (cptr==0) break;
    cptr++;
    n++;
    }

А може и така

int n = 0;
int i = 0;

while(1)
    {
    if (cptr[i]=='5') n++;
    if (cptr[i]==0) break;
    i++;
    }

      

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Здравейте пак.

Благодаря много за отговорите.

До момента стигнах до тази фаза :

//

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <math.h>
#define ARRAY_SIZE (100)

int printMenu()
{
    char c;
     printf("\nIzberi:\n");
    printf("1.Now masiv\n");
    printf("2. Promqna na veche vuveden masiv\n");
    printf("3. Izhod\n");
    do {
        c = _getch();
    }while ((c < '1') || (c > '3'));
    return (c - '0');
}


int countDigitsInNumber(int number, int digit)
{
    int count = 0;
    int absNumber = abs(number);
    while (absNumber) {
        if (absNumber%10 == digit) {
            count++;
        }
        absNumber /= 10;
    }
    return count;
}
int main()
{

 

system("pause");

return 0;
}

//

Проблема е, че сега като я заредя и нищо не ми излиза. Може ли проблема да е от main-а, защото все още е празен?

Иначе изчистих грешките с добавяне на нови библиотеки. Ако нещо е прекалено зле не ми се смейте моля ви :D .

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

АМи то хубаво сте я дефинирал тази функция за печатане на менюто. Но тя никъде не се извиква от главната функция :)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Добре с тези допълнения тръгва менюто, но нещо логически е объркано.

Поздрави.

 

//

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <math.h>
#define ARRAY_SIZE (100)
#define FILE_NAME    "a1.txt"
typedef struct {
    int data[ARRAY_SIZE];
    int size;
} IntArrayT;

int printMenu()
{
    char c;
    printf("\nIzberi:\n");
    printf("1.Now masiv\n");
    printf("2. Promqna na veche vuveden masiv\n");
    printf("3. Izhod\n");
    do {
        c = _getch();
    }while ((c < '1') || (c > '3'));
    return (c - '0');
}
void vhod(IntArrayT *p)
{
    FILE *fp1;
    int i=0,d;
    fp1 = fopen(FILE_NAME, "r");
    if(fp1 != NULL){
        for(i=0; i<ARRAY_SIZE; i++)
        {
            if(0 >= fscanf(fp1,"%d",&d))
            {
                p->size = i;
                break;
            }
            p->data = d;
        }
        fclose(fp1);
    }
    p->size = i;
}


int countDigitsInNumber(int number, int digit)
{
    int count = 0;
    int absNumber = abs(number);
    while (absNumber) {
        if (absNumber%10 == digit) {
            count++;
        }
        absNumber /= 10;
    }
    return count;
}
void separateData(IntArrayT *input,
                  IntArrayT *output1,
                  IntArrayT *output2)
{
    int i;
    output1->size = 0;
    output2->size = 0;
    for (i = 1; i < input->size; i+=2) {
        if((input->data < 0) && (0 == input->data%3)){
            output1->data[output1->size++] = input->data;
        } else if ((input->data > 0) && (0 == input->data%7)) {
            output2->data[output2->size++] = input->data;
        }
    }
}
void printArray(IntArrayT *input)
{
    int i;
    for (i=0;i<input->size;i++)
    {
        printf("a[%d]=%d\n", i, input->data);
    }
}
int mostCommonNumber(IntArrayT *input)
{
    int i;
    int result = 0;
    int temp_result;
    int nextIdx = 0;
    int tempIdx;
    int resIdx;
    int flag;

    do {
        temp_result = 1;
        flag = 0;
        tempIdx = nextIdx;
        for (i = nextIdx+1; i < input->size; i++) {
            if(input->data[nextIdx] == input->data) {
                temp_result++;
            } else if (!flag) {
                flag = 1;
                nextIdx = i;
            }
        }
        if(temp_result > result) {
            result = temp_result;
            resIdx = tempIdx;
        }
    } while(flag);

    return(input->data[resIdx]);
}

void combineArrays(IntArrayT *dest, IntArrayT *source)
{
    int i;
    for (i = 0; i < source->size; i++) {
        dest->data[dest->size++] = source->data;
    }
}
int main()
{
    int i;
    IntArrayT inArr;
    IntArrayT Arr1;
    IntArrayT Arr2;
    do{
        i = printMenu();
        switch (i) {
            case 1:
                vhod(&inArr);
                if(inArr.size){
                    printf("Array is loaded\n");
                } else {
                    printf("Invalid file\n");
                }
                break;
            case 2:
                if(inArr.size){
                    printArray(&inArr);
                } else {
                    printf("Invalid data\n");
                }
                break;
            case 3:
                if(inArr.size){
                    separateData(&inArr, &Arr1, &Arr2);
                    if(Arr1.size){
                        printf("Most common number in first array: %d\n",
                            mostCommonNumber(&Arr1));
                    }
                    if(Arr2.size){
                        printf("Most common number in second array: %d\n",
                            mostCommonNumber(&Arr2));
                    }
                    combineArrays(&Arr1, &Arr2);
                    if(Arr1.size){
                        printf("Most common number in both arrays: %d\n",
                            mostCommonNumber(&Arr1));
                    }
                } else {
                    printf("Invalid data\n");
                }
                break;
            default:
                break;
        }
    } while(4 != i);

system("pause");
return 0;
}

 

//

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

АМи то хубаво сте я дефинирал тази функция за печатане на менюто. Но тя никъде не се извиква от главната функция :)

Добре четох в един учебник за Програмният език C, но намерих само командата getch() за извикване на менюто и не става с нея. Може ли малко помощ?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Добре четох в един учебник за Програмният език C, но намерих само командата getch() за извикване на менюто и не става с нея. Може ли малко помощ?

функция(параметър, параметър)

{

тяло

}

маин()

{

функция(п1,п2)

}

Не знаете ли как се извиква функция?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Мисля, че усложних програмата без да трябва :D

С copy-paste от чужди програми може да се "напише" програма ама поне малко трябва да разбираш какво да копираш.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

С copy-paste от чужди програми може да се "напише" програма ама поне малко трябва да разбираш какво да копираш.

Мда положението е тежко :D

Май трябва да сменям специалността :D

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Добре а за тази какво ще кажете? Мисля, че е поне е по-добра от предходните опити.

#include <stdio.h>
#include <stdlib.h>

#define MAX 10
#define ASCIIMAX 10

void SHOW_MENU();
void PRIMARY_ARRAY();
void SHOW_PRIMARY_ARRAY(int PRIM_ARR[]);
int SECONDARY_ARRAY_DIGIT3(int PRIM_ARR[]);
void SORT_SECONDARY_ARRAY_DIGIT3(int SEC_ARR[]);
void ASCII_MAX(int SEC_ARR[]);

int PRIM_ARR[MAX];
int SEC_ARR[MAX];

int main()
{ while(1)
{ int CHOICE;
SHOW_MENU();
printf("THE SYSTEM IS WAITING YOUR CHOICE...");
scanf("%d", &CHOICE);
printf("\n\n");
switch(CHOICE)
{ case 1: PRIMARY_ARRAY(PRIM_ARR); break;
case 2: SHOW_PRIMARY_ARRAY(PRIM_ARR); break;
case 3: SORT_SECONDARY_ARRAY_DIGIT3(PRIM_ARR); break;
case 4: ASCII_MAX(SEC_ARR); break;
default: printf("INCORRECT CHOICE! PLEASE CHOOSE AGAIN!"); break;
}
}
printf("\n");
system("pause");
return 0;
}



void SHOW_MENU() //SHOWS THE USER CONTROL MENU
{ printf(" WELCOME TO USER MENU \n");
printf(".....................................\n");
printf("1. INPUT PRIMARY ARRAY \n");
printf("2. SHOW PRIMARY ARRAY \n");
printf("3. SHOW SORTED ARRAY WITH 3s \n");
printf("4. SHOW MAX ASCII DIGIT APPEARANCE \n");
printf("5. TO EXIT PRESS CTRL + C \n");
printf("\n");
printf("\n");
}

void PRIMARY_ARRAY() //INPUTS PRIMARY ARRAY ELEMENTS
{ int index;
for(index=0; index<MAX; index++)
{ printf("INPUT MAIN ARRAY ELEMENT [%d] OUT OF 100: ", index+1);
scanf("%d", &PRIM_ARR[index]);
}
}

void SHOW_PRIMARY_ARRAY(int PRIM_ARR[]) //SHOWS PRIMARY ARRAY ELEMENTS
{ int index;
printf("YOUR PRIMARY ARRAY IS: ");
for(index=0; index<MAX; index++)
{ printf("%d ", PRIM_ARR[index]);
}
printf("\n");
}


int SECONDARY_ARRAY_DIGIT3(int PRIM_ARR[])
{ int index, temp;
int index1=0;
{for(index=0; index<MAX; index++)
{temp=PRIM_ARR[index];
do{ if(temp%10==5)
{SEC_ARR[index]=PRIM_ARR[index1];
index1++;
}
(temp=temp/10);
}
while(temp!=0);
}
}
SORT_SECONDARY_ARRAY_DIGIT3(SEC_ARR);
SHOW_PRIMARY_ARRAY(SEC_ARR);
return 0;
}

void SORT_SECONDARY_ARRAY_DIGIT3(int SEC_ARR[])
{ int index, index1, temp;
for(index=0; index<MAX; index++)
{ for(index1=index+1; index1<MAX; index1++);
{ if(SEC_ARR[index]<SEC_ARR[index1])
{ temp=SEC_ARR[index];
SEC_ARR[index]=SEC_ARR[index1];
SEC_ARR[index1]=temp;
}
}
}
}

void ASCII_MAX(int SEC_ARR[])
{ int temp[ASCIIMAX], index, maxASCIIelement, appearances;
for(index=0; index<ASCIIMAX; index++)
{ temp[index]=0;
}
for(index=0; index< ASCIIMAX; index++)
{ if(SEC_ARR[index]<=9 && SEC_ARR[index]>=0)
{ temp[sEC_ARR[index]]=temp[sEC_ARR[index]]+1;
}
}
for(index=9; index>=0; index--)
{ if(temp[index]>0)
{ maxASCIIelement=index;
appearances=temp[index];
break;
}
}
printf("Element: %d \n", maxASCIIelement);
printf("appearances: %d", appearances);
printf("\n");
}

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.