vs2017中代码编译出错的问题

	一个矩阵乘法器程序,我在GCC编译器和DEVC++编译器都是可以编译通过的,但是用vs2017怎么也不行,除了把scanf改为scanf_s之外,我还需要改哪里才可以通过编译呢
在这里插入代码片
/*  矩阵乘法计算器 */
#include 
#include 
void matrix_multiply(int *m1,int *m2,int *r,int x,int y,int z)
{
	int i,j,sum=0; 
	int p=0;
	int k=0;//k为参数,相当于要执行多少次加法; 
	for(i=0;i<x;i++)//x=3,y=3,z=3
	{
		for(j=0;j<z;j++)
		{
			//*r++= *(m1+i*y) * *(m2+j) + *(m1+i*y+1) * *(m2+z+j);
			while(y>k)
			{
				sum = sum + *(m1+(i*y+k)) * *(m2+(k*z)+p);
				k++; 
			}
			*r++=sum;
			sum=0;
			k=0;
			p++;
		}
		p=0;
	}
	 
}
int main()
{
	int x,y,z;
    int k=0;
    int i,j;
	printf("请输入矩阵1的行和列:");
	scanf("%d %d",&x,&y);
	int A[x*y];
	printf("请按从左至右依次输入矩阵数据:");
	for(i=0;i<x;i++)
	{
		for(j=0;j<y;j++)
		{
			scanf("%d",&A[k]);
			k++;
		}		
	} 
	k=0;
	printf("矩阵1:\n");
	for(i=0;i<x;i++)
	{
		for(j=0;j<y;j++)
		{
			printf("%4d",A[k]);
			k++;
		}	
		printf("\n");	
	} 
	printf("请输入矩阵2的行和列:");
	scanf("%d %d",&y,&z);
	int B[y*z];
	printf("请按从左至右依次输入矩阵数据:");
	k=0;
	for(i=0;i<y;i++)
	{
		for(j=0;j<z;j++)
		{
			scanf("%d",&B[k]);
			k++;
		}		
	} 
	k=0;
	printf("矩阵2:\n");
	for(i=0;i<y;i++)
	{
		for(j=0;j<z;j++)
		{
			printf("%4d",B[k]);
			k++;
		}
		printf("\n");		
	} 
	int p=x*z;
    int R[p];
    matrix_multiply(A,B,R,x,y,z);
    i=0;
    while(i<p)
    {
        if(i%z==0)
            printf("\n");
        printf("%4d",R[i]);
        i++;
    }
    system("pause");

}





你可能感兴趣的:(vs2017中代码编译出错的问题)