问一个关于数组运算的问题

来源:百度知道 编辑:UC知道 时间:2024/09/20 22:26:12
小弟初学者
因为没学过编程 转系以后直接面对作业的缘故比较崩溃..
总共就看了十几天书 要和学了半年的人一起作业!@#!$晕啊!!
原题是这样的:
========================================================
制作一个程序:"能输入 3*2的矩阵A和2维向量x的值,计算A*x的值,把计算结果输出给3维向量y,输出." 参照下面的例子:

请输入A(0,0)的值:3.2
请输入A(0,1)的值:2.1
请输入A(1,0)的值:-2.1
请输入A(1,1)的值:4.5
请输入A(2,0)的值:1.7
请输入A(2,1)的值:3.2

请输入x(0)的值:4.2
请输入x(1)的值:-1.6

A*x的结果,3维向量y的值为:
y(0)=10.08
y(1)=-16.02
y(2)=2.02

====================================================
然后是我写的,写到需要让两个数组相乘时不会了...请高人点播一下

#include <stdio.h>

int main(void)
{
double A[3][2],x[2],y[3];
int ai,aj,xi,yi;

//输入矩阵A的值
for(ai=0;ai <3;ai++)
{
for(aj=0;aj <2;aj++)
{
printf("矩阵A(%d,%d)的值请输入:",ai+1,aj+1);
scanf("%f",&A[ai][aj]);
}

}

for(xi

.....
我改了一点你的源程序:
应该为float,不是double型

#include <stdio.h>

int main(void)
{
float A[3][2],x[2],y[3];
int i = 0;
int j = 0;

//输入矩阵A的值
for( i = 0; i < 3; i++ )
{
for( j = 0; j < 2; j++ )
{
printf("矩阵A(%d,%d)的值请输入:", i, j);
scanf("%f",&A[i][j]);
}
}

for( i = 0; i < 2; i++ )
{
printf("向量x(%d)的值请输入:", i );
scanf("%f",&x[i]);
}

for( i = 0; i < 3; i++ )
{
y[i]=0.0;
for( j = 0; j < 2; j++ )
{
y[ i ] += ( A[ i ][ j ] * x[ j ] );
}
}

for( i = 0; i < 3; i++)
{
printf( "y[%d] = %f\n", i, y[ i ] );
}
<