Сформировать и напечатать таблицу значений функции - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д