编程C,C ++,Java,PHP,Ruby,图灵,VB
计算机科学加拿大 
编程C,C ++,Java,PHP,Ruby,图灵,VB  

用户名:   Password: 
 登记登记   
 矢量/矩阵程序帮助
指数 -> 编程,C. -> C帮助
查看上一个主题 可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题
作者 信息
ronnieb23.




 邮政 发布: 孙11月1日,2009年9:30 PM  帖子主题:矢量/矩阵程序帮助

我想知道是否有人可以看一下我的代码并告诉我为什么当我运行我的程序并完成任务时它会说分段错误核心转储或类似的东西。它应该继续重新运行该程序,但它没有。


#包括<stdio.h>
#包括<stdlib.h>
#包括<stdbool.h>



BOOL vector_addition(3d中奖规则 * v1,3d中奖规则 n1,3d中奖规则 * v2,3d中奖规则 n2,3d中奖规则 *结果)
{
if(n1!= n2)
{
返回0;
}
for(3d中奖规则 x = 0; x<n1; x++)
{
*(结果+ x)=(*(v1 + x))+(*(v2 + x));
};
返回1;
}

void vector_calar_mult(3d中奖规则 * v1,3d中奖规则 n1,3d中奖规则 a,3d中奖规则 *结果)
{
for(3d中奖规则 x = 0; x<n1; x++)
{
*(结果+ x)=(*(v1 + x))* a;
};
}

BOOL DOT_PRODUCT(3d中奖规则 * v1,3d中奖规则 n1,3d中奖规则 * v2,3d中奖规则 n2,3d中奖规则 *结果)
{
if(n1!= n2)
{
返回0;
}
for(3d中奖规则 x = 0; x<n1; x++)
{
*结果+ =(*(v1 + x))*(*(v2 + x));
};
返回1;
}

void super_product(3d中奖规则 * v1,3d中奖规则 n1,3d中奖规则 * v2,3d中奖规则 n2,3d中奖规则 *结果)
{
3d中奖规则 nproduct = 0;
for(3d中奖规则 x = 0; x<n1; x++)
{
for(3d中奖规则 y = 0; y<n2; y++, nProduct++)
{
*(结果+ n产物)=(*(v1 + x))*(*(v2 + y));
};
};
}

BOOL MOTIX_ADDITION(INT * M1,INT R1,INT C1,INT * M2,INT R2,INT C2,INT *结果)
{
if(r1!= r2 || c1!= c2)
{
返回0;
}
3d中奖规则 nma;
nMA=0;
for(3d中奖规则 x = 0; x<r1; x++)
{
for(3d中奖规则 z = 0; z<c1; z++, nMA++)
{
*(结果+ NMA)=(*(m1 + nma))+(*(m2 + nma));
}
};
}

BOOL MATRIX_MULTIPLINATION(INT * M1,INT R1,INT C1,INT * M2,INT R2,INT C2,INT *结果)
{
if(c1!= r2)
{
返回0;
}
3d中奖规则 nmult = 0;
nrow [c1];
3d中奖规则 ncl [r2];
for(3d中奖规则 n = 0; n<r1; n++)
{
for(3d中奖规则 m = 0; m<c2; m++, nMult++)
{
for(3d中奖规则 o = 0; o<c1; o++)
{
nrow [o] = *(m1 + n * c1 + o);
};

for(3d中奖规则 p = 0; p<r2; p++)
{
ncl [p] = *(m2 + m * r2);
};

if(dot_product(nRow, c1, nCol, r2, result)) return 1;
};
};
}


void pr3d中奖规则_vector(3d中奖规则 * v,3d中奖规则 n)
{
pr3d中奖规则f(“<");
for(3d中奖规则 j = 0; j<n; j++)
{
pr3d中奖规则f(“%d \ t”,*(v + j));
};
pr3d中奖规则f(“>\n");
}

void pr3d中奖规则_matrix(3d中奖规则 * m,3d中奖规则 r,3d中奖规则 c)
{
3d中奖规则 ncount = 0;
for(3d中奖规则 k = 0; k<r; k++)
{
pr3d中奖规则f(“|");
for(3d中奖规则 l = 0; l<c; l++, nCount++)
{
pr3d中奖规则f(“%d \ t”,*(m + ncount));
};
pr3d中奖规则f(“|\n");
};
pr3d中奖规则f(“\n");
}

void read_vector(3d中奖规则 * v,3d中奖规则 n)
{
pr3d中奖规则f(“矢量值:”);
for(3d中奖规则 i = 0;一世<n; i++)
{
scanf(“%d”,(v+i));
};
}

void read_matrix(3d中奖规则 * m,3d中奖规则 r,3d中奖规则 c)
{
3d中奖规则 nnumb = 0;
pr3d中奖规则f(“矩阵的条目:\ n”);
for(3d中奖规则 g = 0; g<r; g++)
{
for(Int h = 0; h<c; h++, nNumb++)
{
Scanf(“%d”,(m + nnumb));
};
pr3d中奖规则f(“\n");
};
}






3d中奖规则 main()
{
3d中奖规则菜单;
3d中奖规则 light1;
3d中奖规则 length2;
3d中奖规则 lony3;
3d中奖规则 width1;
3d中奖规则 width2;
3d中奖规则 widey3;
3d中奖规则标量;
Char Charcheck;



而(1)
{
pr3d中奖规则f(“----------------------------------------------- --- \ n“);
pr3d中奖规则f(“主菜单:\ n”);
pr3d中奖规则f(“\ t 1.向量添加\ n”);
pr3d中奖规则f(“\ t 2.标量乘法\ n”);
pr3d中奖规则f(“\ t 3. dot产品\ n”);
pr3d中奖规则f(“\ t 4.外产品\ n”);
pr3d中奖规则f(“\ t 5.矩阵添加\ n”);
pr3d中奖规则f(“\ t 6.矩阵乘法\ n”);
pr3d中奖规则f(“\ t 7. quit \ n”);
Pr3d中奖规则f(“\追随者您的选择[1..7]:”);
scanf(“%d”,&Menu);


开关(菜单)

{
{案例1:Pr3d中奖规则f(“第一个向量的大小:”);
scanf(“%d”,&Length1);
3d中奖规则 vector1 [length1];
read_vector(&Vector1 [0],length1);
pr3d中奖规则f(“第二个载体的大小:”);
while(getchar()!='\ n');
scanf(“%d”,&Length2);
3d中奖规则 secondvector1 [length2];
read_vector(&SecondVector1 [0],length2);
3d中奖规则结果1 [length1];
if(vector_addition(&Vector1 [0],length1,&第二vector1 [0],length2,&Results1[0]))
{
pr3d中奖规则f(“两个向量总和:\ n”);
pr3d中奖规则_vector(&结果1 [0],length1);
}
别的
{
pr3d中奖规则f(“错误:两个向量必须具有相同的大小!”);
}
休息;}


{案例2:pr3d中奖规则f(“第一个向量的大小:”);
scanf(“%d”,&Length1);
3d中奖规则 vector2 [length1];
read_vector(&Vector2 [0],length1);
Pr3d中奖规则f(“标量:”);
while(getchar()!='\ n');
scanf(“%d”,&Scalar);
3d中奖规则结果2 [length1];
vector_scalar_mult(&Vector2 [0],length1,scalar,&Results2[0]);
pr3d中奖规则f(“结果:\ n”);
pr3d中奖规则_vector(&结果2 [0],lights1);
休息;}


{案例3:pr3d中奖规则f(“第一个向量的”大小:“);
scanf(“%d”,&Length1);
3d中奖规则 vector3 [length1];
read_vector(&Vector3 [0],length1);
pr3d中奖规则f(“第二个载体的大小:”);
scanf(“%d”,&Length2);
3d中奖规则 secondvector3 [length2];
read_vector(&SecondVector3 [0],Length2);
3d中奖规则结果3;
if(dot_product(&Vector3 [0],length1,&第二vector3 [0],length2,&Results3))
{
Pr3d中奖规则f(“两个向量的”点产品:“);
pr3d中奖规则f(“%d \ n”,结果3);
}
别的
{
pr3d中奖规则f(“错误:两个向量必须具有相同的大小!”);
}
休息;}



{案例4:Pr3d中奖规则f(“第一个向量的大小:”);
scanf(“%d”,&Length1);
3d中奖规则 vector4 [length1];
read_vector(&Vector4 [0],length1);
pr3d中奖规则f(“第二个载体的大小:”);
scanf(“%d”,&Length2);
3d中奖规则 secondvector4 [length2];
read_vector(&第二vector4 [0],length2);
3d中奖规则结果4 [length1] [length2];
Outer_Product(&Vector4 [0],length1,&SecondVector4 [0],Length2,&Results4[0][0]);
Pr3d中奖规则f(“两个向量的外部产品:\ n”);
pr3d中奖规则_matrix(&结果4 [0] [0],长度1,长度2);
休息;}


{案例5:pr3d中奖规则f(“第一个矩阵的大小(行和列):”);
scanf(“%d%d”,&Length1, &Width1);
3d中奖规则 matrix1 [length1] [widey1];
read_matrix(&矩阵1 [0] [0],长度1,宽度1);
pr3d中奖规则f(“第二个矩阵的大小(行和列):”);
scanf(“%d%d”,&Length2, &Width2);
3d中奖规则 secondmatrix1 [length2] [widey2];
read_matrix(&secondmatrix1 [0] [0],length2,width2);
3d中奖规则结果5 [length1] [width1];
if(matrix_addition(&Matrix1 [0] [0],长度1,宽度1,&secondmatrix1 [0] [0],length2,width2,&Results5[0][0]))
{
pr3d中奖规则f(“两个矩阵的总和:\ n”);
pr3d中奖规则_matrix(&结果5 [0],长度1,宽度1);
}
别的
{
pr3d中奖规则f(“错误:两个矩阵必须具有相同的行和列!”);
}
休息;}


{案例6:pr3d中奖规则f(“第一个矩阵的大小(行和列):”);
scanf(“%d%d”,&Length1, &Width1);
3d中奖规则矩阵2 [length1] [widey1];
read_matrix(&矩阵2 [0] [0],长度1,宽度1);
pr3d中奖规则f(“第二个矩阵的大小(行和列):”);
scanf(“%d%d”,&Length2, &Width2);
3d中奖规则 secondmatrix2 [length2] [widey2];
read_matrix(&secondmatrix2 [0] [0],length2,宽度2);
3d中奖规则结果6 [length1] [widey2];
if(matrix_multiplation(&Matrix2 [0] [0],长度1,宽度1,&secondmatrix2 [0] [0],length2,width2,&Results6[0][0]))
{
pr3d中奖规则f(“两个矩阵乘法:\ n”);
pr3d中奖规则_matrix(&结果6 [0],长度1,宽度1);
}
别的
{
pr3d中奖规则f(“错误:两个矩阵必须具有相同的行和列!”);
}
休息;}

{案例7:退出(EXIT_SUCCESS);

默认值:pr3d中奖规则f(“无效选择”);}
}
}

返回0;
}
赞助
赞助
赞助
 赞助
托尼




 邮政 发布: 孙11月1日,2009年9:34 PM  帖子主题:Re:Vector / Matrix程序帮助

使用调试语句查找发生分段错误的行。
最新来自compsci.ca/blog: Tony's 编程博客。 DWite - A. 编程竞赛.
从上一个显示帖子:   
    指数 -> 编程,C. -> C帮助
查看上一个主题 告诉一个朋友可打印的版本下载主题订阅本主题私人信息刷新页面 查看下一个主题

11  [ 2 Posts ]
跳到:   


Style:  
搜索: