Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define _CRT_SECURE_NO_WARNINGS
  4.  
  5. //реализовать все функции работая пока только с целыми числами, потом скопипастить и поставить флоат
  6. //потом посмотреть на код, который скинул лабник
  7.  
  8. typedef struct linear_form_int {
  9. int n;
  10. int* c;
  11. } linear_form_int;
  12.  
  13. linear_form_int create_lf_int(int n) {
  14. linear_form_int lf;
  15. lf.n = n;
  16. lf.c = calloc(n, n * sizeof(int)); //Я знаю, что лучше вместо int, использовать typeof()
  17. printf("Ввод коэффициентов при X");
  18. for (int i = 0; i < n; ++i) {
  19. lf.c[i] = 0;
  20. printf("C%d*x%d, где C%d = ", i, i, i);
  21. scanf('%d', &(lf.c[i]));
  22. printf("\n");
  23. }
  24. return lf;
  25. }
  26. linear_form_int add_lf_int(linear_form_int* lf1, linear_form_int* lf2) {
  27. int min_n = (*lf1).n > (*lf2).n ? (*lf2).n : (*lf1).n;
  28. int max_n = (*lf1).n < (*lf2).n ? (*lf2).n : (*lf1).n;
  29. linear_form_int result_lf;
  30. result_lf.n = max_n;
  31. result_lf.c = (int*)calloc(max_n, max_n * sizeof(int));
  32. for (int i = 0; i < min_n; ++i) {
  33. result_lf.c[i] = (*lf1).c[i] + (*lf2).c[i];
  34. }
  35. for (int i = min_n; i < max_n; ++i) {
  36. result_lf.c[i] = (*lf2).n < (*lf1).n ? (*lf1).c[i] : (*lf2).c[i];
  37. }
  38. return result_lf;
  39. }
  40. linear_form_int sub_lf_int(linear_form_int* lf1, linear_form_int* lf2) {
  41. int min_n = (*lf1).n > (*lf2).n ? (*lf2).n : (*lf1).n;
  42. int max_n = (*lf1).n < (*lf2).n ? (*lf2).n : (*lf1).n;
  43. linear_form_int result_lf;
  44. result_lf.n = max_n;
  45. result_lf.c = (int*)calloc(max_n, max_n * sizeof(int));
  46. for (int i = 0; i < min_n; ++i) {
  47. result_lf.c[i] = (*lf1).c[i] - (*lf2).c[i];
  48. }
  49. for (int i = min_n; i < max_n; ++i) {
  50. result_lf.c[i] = (*lf2).n < (*lf1).n ? (*lf1).c[i] : -(*lf2).c[i];
  51. }
  52. return result_lf;
  53. }
  54.  
  55. void scalar_multiplay_lf_int(linear_form_int* lf, int scalar) {
  56. for (int i = 0; i < (*lf).n; ++i) {
  57. (*lf).c[i] *= scalar;
  58. }
  59. }
  60. int main()
  61. {
  62. int n;
  63. linear_form_int lf;
  64. printf("Введите количество переменных n.\nn = ");
  65. scanf("%d", &n);
  66. lf = create_lf_int(n);
  67. return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement