1

Тема: Вкладені цикли та масиви мовою C

https://replace.org.ua/extensions/om_images/img/5fa98b90db118/ae683ecd15d67ec83482d931cf529a2e.png
Потрібно розв'язати задачу, а я навіть не розумію умови.
Позначення індексу - k.
Номер індексу   1  2
                       3 1 2
                       3 4
Значення індексної змінної 1.3 -
                                         1.6 -
                                         2.3
                                         4.51 -
                                         4.16
                                         2.61
                                         7.28
Розв'язання задачі лише почала і не знаю, що робити далі.
Використовую онлайн-компілятор OnlineGDB.
Буду вдячна будь-яким підказкам чи поясненням.

2

Re: Вкладені цикли та масиви мовою C

#include <stdio.h>
#include <math.h>
#define E 2,71828
int main()
{
    int k[3]={1,2,3};
    int l[4]={1,2,3,4};
    for(l=1;l<4;l++)
    {
        for(k=1;k<5;k++){
            
        }
    }
    return 0;
}

Ось частина програми. Не знаю, чи добре почала, і тим більше не знаю, що далі.

3

Re: Вкладені цикли та масиви мовою C

Дивіться, Вам треба формулу порахувати підставляючи коефіцієнти, так як знака суми немає, я так розумію вивести всі результати розрахунків. Завдання ви виклали не повністю, бо у стовпчиків є заголовки, де ще щось написано.

Стосовно Вашого коду, вам не треба створювати массив к та л, вони вже у вас будуть у якості каунтерів (лічильників), в циклі, а массив вам треба під результат

Подякували: Lata1

4

Re: Вкладені цикли та масиви мовою C

Дякую, Chemist-i! Так, треба вивести масив результатів, але я таки не розумію, що рахувати!

5 Востаннє редагувалося Chemist-i (10.11.2020 11:22:27)

Re: Вкладені цикли та масиви мовою C

Давайте з завданням розберемся, чому дорівнює а, чому дорівнює b (а і б судячи з наявності індекса це массиви) я з завдання не можу це зрозуміти.

Телепат моде-он

float результат[3,4];
float a[3] = {значення1, значення2, значення3}; //ввести массив а
float b[4] = {значення1, значення2, значення3, значення4}; //ввести массив б
//Рахуєм
цикл по l{
  цикл по k{
    результат[k,l] = формула в яку ми підставляємо a[k], та b[l];
  }
}
Подякували: Lata1

6

Re: Вкладені цикли та масиви мовою C

Я сьогодні пробувала зробити цю програму методом do while:

#include <stdio.h>
#include <math.h>
#define E 2.71828
int main()
{
    float u; int l=0;
    float A[3]={1.3,1.6,4.51};
    float B[4]={2.3,4.16,2.61,7.28};
    //printf("Заданий масив A\n");
    for(int k=0;k<3;k++){
         printf("A=%.2f\n\t",A[k]);
        }
    //printf("\nЗаданий масив B\n");
    do
    {
        printf("B=%.2f\n\t",B[l]);
        for(int k=0;k<3;k++){
          u=pow(E,-A[k])*(A[k]+l*B[l]);
          printf("U=%.3f\n\t", u);
          }
          l++;
    }
    while(l<4);
    return 0;
}

Результат: A=1.30
        A=1.60
        A=4.51
        B=2.30
        U=0.354
        U=0.323
        U=0.050
        B=4.16
        U=1.488
        U=1.163
        U=0.095
        B=2.61
        U=1.777
        U=1.377
        U=0.107
        B=7.28
        U=6.306
        U=4.732
        U=0.290
І методом for:

#include <stdio.h>
#include <math.h>
#define E 2.71828
int main()
{
    float u;
    float A[3]={1.3,1.6,4.51};
    float B[4]={2.3,4.16,2.61,7.28};
    //printf("Заданий масив A\n");
    for(int k=0;k<3;k++){
         printf("A=%.2f\n",A[k]);
        }
    //printf("\nЗаданий масив B\n");
    for(int l=0;l<4;l++)
    {
        printf("B=%.2f\n",B[l]);
        for(int k=0;k<3;k++){
          u=pow(E,-A[k])*(A[k]+l*B[l]);
          printf("U=%.3f\n", u);
          }
    }
    return 0;
}

Результат:A=1.30
A=1.60
A=4.51
B=2.30
U=0.354
U=0.323
U=0.050
B=4.16
U=1.488
U=1.163
U=0.095
B=2.61
U=1.777
U=1.377
U=0.107
B=7.28
U=6.306
U=4.732
U=0.290
Сподіваюся правильно.
Ви знаєте, як зробити вивід цих масивів більш впорядкованим?

Подякували: Chemist-i1

7

Re: Вкладені цикли та масиви мовою C

Десь так. Огортайте код в тег code, так буде красивіше виглядати
Стосовно виводу, я б написав щось типу цього:
не впевнений, що тут нема помилки, бо не тестував, але ідею Ви, я думаю, зрозуміли, індекси писатимуться прямо у виводу,

...
printf("a[%d]=%.3f, b[%d]=%.3f, u[%d,%d]=%.3f\n", l+1, A[l], k+1, B[k], l+1, k+1, u);
...
Подякували: Lata1