Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

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

 

Програма на C

Featured Replies

Здравейте!

Искам да ви помоля за малко помощ за една програма, която трябва да направя. Ето и условието:

Да се напише програма, която:

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

До момента съм написал само първата точка от условието:

#include <stdio.h>

#include <stdlib.h>

#define N 100

int read_arr1(int a[]);

void read_arr2(int a[], int *n);

void write_arr(int a[], int n);

int main()

{

int arr[N];

int n;

read_arr2(arr, &n);

write_arr(arr, n);

system("pause");

return 0;

}

int read_arr1(int a[])

{

int j;

int dim;

do

{

printf("\nVavedi razmernostta na masiva: ");

scanf_s("%d", &dim);

} while (dim < 1 || dim > N);

for (j = 0; j < dim; j++)

{

printf("a[%d]: ", j);

scanf_s("%d", &a[j]);

}

return dim;

}

void read_arr2(int a[], int *n)

{

int j;

do

{

printf("\nVavedi razmernostta na masiva: ");

scanf_s("%d", n);

} while (*n < 1 || *n > N);

for (j = 0; j < *n; j++)

{

printf("array[%d]: ", j);

scanf_s("%d", &a[j]);

}

}

void write_arr(int a[], int n)

{

int j;

printf("\n(");

for (j = 0; j < n; j++)

{

printf(" %d", a[j]);

}

printf(")\n");

}

Не ми е ясно, как трябва да се съберат числата от масив1 и масив2, така че масив3 пак да е сортиран или пък да им се запази реда в масивите първо числата от масив1 и после се добавят тея от масив2.

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

#include <stdio.h>

#define N 100

int a[N], a1[N], a2[N], a3[N];
int i1=0, i2=0;

int min(int n)
{
    int i, m=a[n];
    for (i=n+1; i<n+5; i++)
        if (m>a[i]) m=a[i];
    return m;
}

void print(int a[], int n)
{   
    int i;
    for (i=0; i<n; i++)
    {
        printf("%6d", a[i]);
        if (i%10==9) printf("\n");
    }
    printf("\n");
}  

void read_arr()
{
     int i;
     srand(time(NULL));
     for (i=0; i<N; i++)
         a[i]=rand()%1000;
}

void split(int n)
{
     int i, m;
     m=min(n);
     for (i=n; i<n+5; i++)
         if (a[i]==m) a1[i1++]=m;
         else a2[i2++]=a[i];
}

void sort(int a[], int n)
{
    int i, j, t;
    for (i=0; i<n-1; i++)
        for (j=i+1; j<n; j++)
           if (a[i]<a[j])
           {
               t=a[i];
               a[i]=a[j];
               a[j]=t;
           }
}
         

int main()

{
    int i;
    read_arr();
    printf("Array A[%d]\n", N);
    print(a, N);
    for (i=0; i<N; i+=5)
        split(i);
        
    printf("Array A1[%d]\n", i1);
    print(a1, i1);
    
    printf("Array A2[%d]\n", i2);
    print(a2, i2);
    
    printf("Sorting..\n\n");
    sort(a1, i1);
    sort(a2, i2);
    
    printf("Array A1[%d]\n", i1);
    print(a1, i1);
    
    printf("\nArray A2[%d]\n", i2);
    print(a2, i2);
    

    system("pause");

    return 0;

}

.

 

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

Намирането на минимален елемент е лесно, но не се сещам как да намеря на всеки 5 числа от въведения масив. При размер 100, масивът, който съдържа минималните елементи, трябва да е с размер 20.

 

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

Зависи от въведените числа, може да имаш измежду тези 5 повече от едно число равно на минималното

Масив1 може да е 20 и повече числа като може да стигне до 100, ако са въведени 100 еднакви числа.

Масив2 е до 80 числа като може и да са по-малко ако има повтарящи се минимални числа.

 

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

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    26%
    Дарени 256.00 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.