c语言输入两个1*n的向量 a和b,并计算a'*b所得的n*n矩阵。
时间: 2023-12-31 13:03:50 浏览: 28
```c
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int n, i, j;
int a[MAX_SIZE], b[MAX_SIZE], c[MAX_SIZE][MAX_SIZE];
printf("请输入向量长度n:");
scanf("%d", &n);
printf("请输入向量a:");
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
printf("请输入向量b:");
for (i = 0; i < n; i++) {
scanf("%d", &b[i]);
}
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
c[i][j] = a[i] * b[j];
}
}
printf("a'*b得到的矩阵为:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d ", c[i][j]);
}
printf("\n");
}
return 0;
}
```
相关问题
c语言输入两个1*n的向量 a和b,并计算a'*b所得的n*n矩阵
```
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
printf("Enter the size of vectors: ");
scanf("%d", &n);
int *a = (int *)malloc(n * sizeof(int));
int *b = (int *)malloc(n * sizeof(int));
printf("Enter the elements of vector a: ");
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
printf("Enter the elements of vector b: ");
for (int i = 0; i < n; i++)
{
scanf("%d", &b[i]);
}
int **matrix = (int **)malloc(n * sizeof(int *));
for (int i = 0; i < n; i++)
{
matrix[i] = (int *)malloc(n * sizeof(int));
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
matrix[i][j] = a[i] * b[j];
}
}
printf("The matrix a'*b is:\n");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
printf("%d ", matrix[i][j]);
}
printf("\n");
}
for (int i = 0; i < n; i++)
{
free(matrix[i]);
}
free(matrix);
free(a);
free(b);
return 0;
}
```
用C语言输入两个1*n的向量 a和b,并计算a'*b所得的n*n矩阵。
```c
#include <stdio.h>
int main() {
int n;
printf("请输入向量的长度n:");
scanf("%d", &n);
int a[n], b[n], matrix[n][n];
printf("请输入向量a:");
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
printf("请输入向量b:");
for (int i = 0; i < n; i++) {
scanf("%d", &b[i]);
}
// 计算矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = a[i] * b[j];
}
}
// 输出矩阵
printf("矩阵a'*b为:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```