КАК исправить синтаксические ошибки в проге по сложению, вычитанию, скалярному произведению век - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <locale.h>
struct vector{
float *x;
int n;
};
vector* sum(vector *v1, vector *v2){
int i;
vector *v = NULL;
if (v1->n!=v2->n){
return v;
}
v=(vector*)malloc(sizeof(vector));
create(v,v1->n);
for (i=0;i<(v->n);i++){
v->x[i] = (v1->x[i]) + (v2->x[i]);
}
return v;
}
vector* substraction (vector *v1, vector *v2) {
int i;
vector* v = NULL;
if(v1->n!=v2->n){
return v;
}
v = (vector*)malloc(sizeof(vector));
create(v,v1->n);
for (i=0; i<v->n; i++) {
v->x[i] = (v1->x[i]) - (v2->x[i]);
}
return v;
}
float scal (vector *v1, vector *v2) {
int i;
float result;
result = 0;
if (v1->n!=v2->n) {
return 0;
}
v = (vector*) malloc(sizeof(vector));
create(v,v1->n);
for(i = 0; i < v->n; i++) {
result+ =(v1->x[i])*(v2->x[i]);
}
return result;
}
void fill(vector *v, int n){
int i;
for(i=0; i < n; i++){
scanf_s("%f",&v[i].x);
}
}
void create (vector *v, int n) {
v->n = n;
v->x = (float*)malloc(sizeof(float)*n);
}
void release (vector *v) {
free(v -> x);
v -> v = 0;
}
void fillr(vector *v, int n){
int i;
for (i=0; i<n; i++) {
printf_s("%f",v[i].x);
}
}
void main(){
setlocale(LC_CTYPE,"russian");
vector v1, v2;
vector *v;
int n;
printf("Введите размерность вектора:");
scanf("%d",&n);
vector *v1=(vector*)malloc(sizeof(int)*n);
vector *v2=(vector*)malloc(sizeof(int)*n);
create(&v1,n);
create(&v2,n);
fill(&v1);
fill(&v2);
sum(&v1,&v2);
fillr(&v,n);
substraction(&v1,&v2);
fillr(&v,n);
scal(&v1,&v2);
fillr(&v,n);
release(&v1);
release(&v2);
release(&v);
free(&v1);
free(&v2);
free(&v);
}Решение задачи: «КАК исправить синтаксические ошибки в проге по сложению, вычитанию, скалярному произведению век»
textual
Листинг программы
free(&v1);