|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.01.2019, 12:14 | #1 |
Регистрация: 04.12.2018
Сообщений: 4
|
действия с массивом на языке си
Я только начала изучать программирование поэтому с такими задачами у меня проблемы. Я ее почти сделала, но не совсем понимаю как лучше написать считывание и можно ли какой нибудь фрагмент написать проще? Пожалуйста подскажите.
нам дана функция : y= -x^4+3x^3+2x^2-5x+0.5 1. двигаясь осью x от -4 до 4 (прибавляя по 0,1) обсчитать значение функции и вставить их в двумерный массив, вместе с значениями x. 2. В массиве найти Y максимум и вывести на экран вместе с x, при которой y получает максимальное значение. 3. Вывести все x и y(4 цифры после запятой). Последний раз редактировалось Nana19; 04.01.2019 в 12:36. |
04.01.2019, 12:27 | #2 |
Регистрация: 04.12.2018
Сообщений: 4
|
#include<stdio.h>
#include<stdlib.h> void СЧИТАЕМ(float Masyvas[10][1], float *max, float *x); void ПЕЧАТАЕМ(float Masyvas[10][1], float max, float x); void main() { float ЦИФРЫ[10][1]; float MaКСИМАЛЬНЫЙ[10][1]; float САМЫЙБОЛЬШОЙ; float КООРДИНАТА; char answer; printf("КАКУЮ ФУНКЦИЮ ХОТИТЕ ИСПОЛЬЗОВАТЬ? A - обсчитать , B - вывести на экран? \n"); scanf("%c", &answer); switch (answer) { case 'A': СЧИТАЕМ(ЦИФРЫ, &САМЫЙБОЛЬШОЙ, &КООРДИНАТА); break; case 'B': СЧИТАЕМ(ЦИФРЫ, &САМЫЙБОЛЬШОЙ, &КООРДИНАТА);; ПЕЧАТАЕМ(ЦИФРЫ, САМЫЙБОЛЬШОЙ, КООРДИНАТА); break; default: printf("плохо выбрали!"); }; } void СЧИТАЕМ(float Masyvas[10][1], float *max, float *x) { float c = -999; for (int i = -4; i < 4; i++) { for (int j = 0; j < 1; j++) { Masyvas[i][j] = (-i) * (i) * (i) * (i)+3 * (i * i * i) + 2 * i * i - 5 * i + 0.5; //pow(-i, 4) + (3 * pow(i, 3)) + (2 * pow(i, 2)) + 5 * i + 0.5; // (-i) * (i) * (i) * (i) + 3 * (i * i * i) + 2 * i * i - 5 * i + 0.5; if (c < Masyvas[i][j]) { *x = i+1; c = Masyvas[i][j]; } *max = c; } } printf("обсчитали! \n"); } void ПЕЧАТАЕМ(float Masyvas[10][1], float max, float x) { printf("результат \n"); for (int i = -4; i < 4; i++) for (int j = 0; j < 1; j++) printf("%3.4f\n", Masyvas[i][j]); printf(" Y максимум %3.4f, когда x %3.4f \n", max, x); } |
04.01.2019, 12:47 | #3 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Сначала программу исправьте:
Зачем вам двумерный массив, если вы его двумерность не используете? Зачем вы эмулируете одномерный массив двумерным? Почему первый размер 10, если беглый подсчет говорит, что элементов 80 будет? Массивы нумеруются с 0. Да трюки с a[-4] проходят, но я абсолютно уверен, что вы не знаете как это работает, и это не то, что вы хотели. Выбирать для начального значения максимума/минимума число с потолка не лучшая идея. Почему вы не выводите, как требуется в условии и х, и у? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
действия с массивом на языке си | Nana19 | Помощь студентам | 3 | 04.12.2018 22:39 |
Паскль,Дан массив A(n), разработать программу, которая позволяет выполнить с массивом следующие действия | икше | Помощь студентам | 1 | 01.12.2012 20:07 |
Задача на языке Pascal, с массивом | Bonni | Помощь студентам | 1 | 05.05.2011 19:45 |
Действия над двумерным массивом | Chrome-kz | C++ Builder | 0 | 08.04.2011 17:44 |
Программа на русском языке в Windows XP на другом языке... Как? | 29bit | Свободное общение | 4 | 01.02.2008 17:24 |