struct s first()
{
struct s head, p1, p2;
for (i = 0; i < c; i ++){
p1 = (struct s *)malloc(LEN);
for (k = 0; k < c; k ++){
p1->num[k] = k;
//scanf("%d", &p1->num[k]);
}
p1->next = NULL;
if (i == 0)
head = p1;
else
p2->next = p1;
p2 = p1;
}
return head;
}
struct s second()
{
int data[c][c];
struct s head, p1, p2;
for (i = 0; i < c; i ++){
for (j = 0; j < c; j ++){
data[i][j] = j;
//scanf("%d", &data[i][j]);
}
}
for (i = 0; i < c; i ++){
p1 = (struct s *)malloc(LEN);
for (j = 0; j < c; j ++){
p1->num[j] = data[j][i];
}
p1->next = NULL;
if (i == 0)
head = p1;
else
p2->next = p1;
p2 = p1;
}
return head;
}
struct s calculate(struct s data1, struct s data2)
{
struct s head, p1, p2;
struct s stud;
stud = data2;
int sum;
p1 = (struct s )malloc(LEN);
for (i = 0; i < c; i ++){
sum = 0;
data2 = stud;
for (j = 0; j < i; j ++){
data2 = data2->next;
}
for (k = 0; k < c; k ++){
sum = sum + data1->num[k] data2->num[k];
}
p1->num[i] = sum;
}
head = p1;
p2 = p1;
p1->next = NULL;
for (int m = 2 ;m <= c; m ++){
data1 = data1->next;
p1 = (struct s )malloc(LEN);
for (i = 0; i < c; i ++){
sum = 0;
data2 = stud;
for (j = 0; j < i; j ++){
data2 = data2->next;
}
for (k = 0; k < c; k ++){
sum = sum + data1->num[k] * data2->num[k];
}
p1->num[i] = sum;
}
p1->next = NULL;
p2->next = p1;
p2 = p1;
}
return head;
}
void print(struct s *p)
{
while(p){
for (i = 0; i < c; i ++){
printf("%d\t", p->num[i]);
}
printf("\n\n");
p = p->next;
}
}
int main ()
{
print(calculate(first(), second()));
return 0;
}
include
include
define LEN sizeof(struct s)
define c 3
int i, j, k;
struct s { int num[c]; struct s *next; };
struct s first() { struct s head, p1, p2; for (i = 0; i < c; i ++){ p1 = (struct s *)malloc(LEN); for (k = 0; k < c; k ++){ p1->num[k] = k; //scanf("%d", &p1->num[k]); } p1->next = NULL; if (i == 0) head = p1; else p2->next = p1; p2 = p1; } return head; }
struct s second() { int data[c][c]; struct s head, p1, p2;
}
struct s calculate(struct s data1, struct s data2) { struct s head, p1, p2; struct s stud; stud = data2; int sum; p1 = (struct s )malloc(LEN); for (i = 0; i < c; i ++){ sum = 0; data2 = stud; for (j = 0; j < i; j ++){ data2 = data2->next; } for (k = 0; k < c; k ++){ sum = sum + data1->num[k] data2->num[k]; } p1->num[i] = sum; } head = p1; p2 = p1; p1->next = NULL; for (int m = 2 ;m <= c; m ++){ data1 = data1->next; p1 = (struct s )malloc(LEN); for (i = 0; i < c; i ++){ sum = 0; data2 = stud; for (j = 0; j < i; j ++){ data2 = data2->next; } for (k = 0; k < c; k ++){ sum = sum + data1->num[k] * data2->num[k]; } p1->num[i] = sum; } p1->next = NULL; p2->next = p1; p2 = p1; } return head; }
void print(struct s *p) { while(p){ for (i = 0; i < c; i ++){ printf("%d\t", p->num[i]); } printf("\n\n"); p = p->next; } }
int main () { print(calculate(first(), second())); return 0; }