C语言问题!请各位高手帮一下忙。

书上写的看不懂,求解。#include<stdio.h>intmain(void){voidscalarMultiply(intnRows,intnCols,intmat... 书上写的看不懂,求解。
#include <stdio.h>int main (void){
void scalarMultiply (int nRows, int nCols, int matrix[nRows][nCols], int scalar);
void displayMatrix (int nRows, int nCols, int matrix[nRows][nCols]);
int sampleMatrix[3][5]={{ 7, 16, 55, 13, 12 },{ 12, 10, 52, 0, 7 },{ -2, 1, 2, 4, 9 }};
printf ("Original matrix:\n"); displayMatrix (3, 5, sampleMatrix);
scalarMultiply (3, 5, sampleMatrix, 2); printf("\nMultiplied by 2:\n");
displayMatrix (3, 5, sampleMatrix); scalarMultiply (3, 5, sampleMatrix, -1);
printf ("\nThen multiplied by -1:\n"); displayMatrix (3, 5, sampleMatrix);
return 0;}//根椐标号相乘一个矩阵的函数void scalarMultiply (int nRows, int nCols,
int matrix[nRows][nCols], int scalar){ int row, column;
for ( row = 0; row < nRows; ++row ) for ( column = 0; column < nCols; ++column )
matrix[row][column] *= scalar;}void displayMatrix (int nRows, int nCols, int matrix[nRows][nCols])
{ int row, column; for ( row = 0; row < nRows; ++row) {
for( column = 0; column < nCols; ++column ) printf ("%5i", matrix[row][column]);
printf ("\n"); }}
用的vc6.0 ,出错了!主要有下面几个:
error C2664: 'displayMatrix' : cannot convert parameter 3 from 'int [3][5]' to 'int [][1]'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
error C2057: expected constant expression
error C2466: cannot allocate an array of constant size 0
error C2087: '<Unknown>' : missing subscript
展开
 我来答
匿名用户
2018-09-02
展开全部
//好无聊的代码,简单解释下
//包含系统自带的头文件,这样可以用对应头文件所申明并实现的函数
#include <stdio.h>

//两个函数的申明
void scalarMultiply (int nRows, int nCols, int matrix[nRows][nCols], int scalar);
void displayMatrix (int nRows, int nCols, int matrix[nRows][nCols]);

//主函数,函数的入口
int main (void){
//定义一个二维数组,并初始化。可以看成一个矩阵
int sampleMatrix[3][5]={{ 7, 16, 55, 13, 12 },{ 12, 10, 52, 0, 7 },{ -2, 1, 2, 4, 9 }};
//提示语句
printf ("Original matrix:\n"); 
//调用打印函数
displayMatrix (3, 5, sampleMatrix);
//每个元素乘以倍数 2
scalarMultiply (3, 5, sampleMatrix, 2); 
//提示语句
printf("\nMultiplied by 2:\n");
//调用打印函数
displayMatrix (3, 5, sampleMatrix);
//在乘以倍数 2 的情况下,每个元素乘以倍数 -1 
scalarMultiply (3, 5, sampleMatrix, -1);
//提示语句
printf ("\nThen multiplied by -1:\n");
//调用打印函数 
displayMatrix (3, 5, sampleMatrix);
//程序结束
return 0;
}

//根椐标号相乘一个矩阵的函数
void scalarMultiply (int nRows, int nCols,int matrix[nRows][nCols], int scalar)

int row, column;//简单的计数变量
for ( row = 0; row < nRows; ++row ) //代表行
for ( column = 0; column < nCols; ++column )//代表列 
matrix[row][column] *= scalar;//每个元素乘以倍数
}

//打印函数,打印出完整的矩阵
void displayMatrix (int nRows, int nCols, int matrix[nRows][nCols])

int row, column;//简单的计数变量
for ( row = 0; row < nRows; ++row) {//代表行
for( column = 0; column < nCols; ++column )//代表列 
printf ("%5i", matrix[row][column]);//显示每个元素,%5i等价于%5d,每个元素占五位,右对齐
//换行
printf ("\n");
}
}

//表示不会C语言,随便看看就好

追问
好了分给你,我自己改了下:int matrix[nRows][nCols],都改成了:int matrix[3][5]
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式