Сформировать и напечатать таблицу значений функции - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Спасибо большое, все работает. Могу попросить о последней задаче? Тоже самое - написать с помощью указателей. В результате эксперимента получены наборы значений аргумента x и соответствующих значений функции у. Сформировать и напечатать таблицу значений функции, упорядочив их по возрастанию х. Если одному значению функции х соответствует несколько значений у, то взять их среднее значение
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#define n1 100
#define m1 100
void main(void)
{
    clrscr();
    int a[n1][m1], n, i, j, temp, k, v;
    float b[n1][m1];
    randomize();
    n = 7;
    for (i = 0; i < n; i++)
        for (j = 0; j < 2; j++)
            a[i][j] = random(10);
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < 2; j++)
            printf("%i  ", a[i][j]);
        printf("\n");
    }
    for (i = 0; i < n - 1; i++)
    {
        for (j = i + 1; j < n; j++)
        {
            if (a[j][0] < a[i][0])
            {
                temp = a[i][0];
                v = a[i][1];
                a[i][0] = a[j][0];
                a[i][1] = a[j][1];
                a[j][0] = temp;
                a[j][1] = v;
            }
        }
    }
    printf("\n");
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < 2; j++)
            printf("%i  ", a[i][j]);
        printf("\n");
    }
    i = 0;
    k = 1;
    while (i < n)
    {
        if (a[i][0] != a[i + 1][0])
        {
            b[i][0] = a[i][0];
            b[i][1] = a[i][1] / k;
            k = 1;
            i = i + 1;
        }
        if (a[i][0] == a[i + 1][0])
        {
            a[i][1] = a[i][1] + a[i + 1][1];
            k = k + 1;
            for (j = i + 1; j < n; j++)
            {
                a[j][0] = a[j + 1][0];
                a[j][1] = a[j + 1][1];
            }
            n = n - 1;
        }
    }
    printf("\n");
    for (i = 0; i <= n; i++)
    {
        for (j = 0; j < 2; j++)
            printf("%.2f  ", b[i][j]);
        printf("\n");
    }
    getch();
}

Решение задачи: «Сформировать и напечатать таблицу значений функции»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
 
#include <time.h>                                   //time();
 
#define n1 100
#define m1 100
//return int
int main(void)
{
    //"Очистить" терминал
    system("cls");                                  //clrscr();
    int a[n1][m1], n, i, j, temp, k, v;
    float b[n1][m1];
    //"Установка" начального значения для rand()
    srand(time(NULL));                              //randomize();
    n = 7;
    for (i = 0; i < n; i++)
        for (j = 0; j < 2; j++)
            //"Генерация" значений от 0 до 10
            *(*(a+i)+j) = (int)rand() % 11;         //random(10);
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < 2; j++)
            printf("%i  ", *(*(a+i)+j));
        printf("\n");
    }
    for (i = 0; i < n - 1; i++)
    {
        for (j = i + 1; j < n; j++)
        {
            if (*(*(a+j)+0) < *(*(a+i)+0))
            {
                temp = *(*(a+i)+0);
                v = *(*(a+i)+1);
                *(*(a+i)+0) = *(*(a+j)+0);
                *(*(a+i)+1) = *(*(a+j)+1);
                *(*(a+j)+0) = temp;
                *(*(a+j)+1) = v;
            }
        }
    }
    printf("\n");
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < 2; j++)
            printf("%i  ", *(*(a+i)+j));
        printf("\n");
    }
    i = 0;
    k = 1;
    while (i < n)
    {
        if (*(*(a+i)+0) != *(*(a+i+1)+0))
        {
            *(*(b+i)+0) = *(*(a+i)+0);
            *(*(b+i)+1) = *(*(a+i)+1) / k;
            k = 1;
            i = i + 1;
        }
        if (*(*(a+i)+0) == *(*(a+i+1)+0))
        {
            *(*(a+i)+1) = *(*(a+i)+1) + *(*(a+i+1)+1);
            k = k + 1;
            for (j = i + 1; j < n; j++)
            {
                *(*(a+j)+0) = *(*(a+j+1)+0);
                *(*(a+j)+1) = *(*(a+j+1)+1);
            }
            n = n - 1;
        }
    }
    printf("\n");
    for (i = 0; i <= n; i++)
    {
        for (j = 0; j < 2; j++)
            printf("%.2f  ", *(*(b+i)+j));
        printf("\n");
    }
    getch();
    //return int
    return 0;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5
Похожие ответы