| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1351 人关注过本帖
标题:[原创一个简单的n阶单位矩阵的建立程序,之前运行有错,修改后运行正确!!
只看楼主 加入收藏
jessie
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-7-8
收藏
 问题点数:0 回复次数:6 
[原创一个简单的n阶单位矩阵的建立程序,之前运行有错,修改后运行正确!!

#include <stdlib.h>

#define N 20 int e[N][N]; #include <iostream> using namespace std;

void BuildE(int n)

{int i,j;

for(i=0;i<n;i++) { for(j=0;j<n;j++) { e[i][j]=0; } } for(i=0;i<n;i++) /*建立一个n阶的单位矩阵e*/ { e[i][i]=1; }

printf("单位矩阵为:\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%d ",e[i][j]); /*输出单位矩阵*/ } printf("\n"); }

} void main() {int n;

printf("请输入阶数: \n"); scanf("%d",&n);

BuildE(n); }

[此贴子已经被作者于2005-7-9 10:46:30编辑过]

搜索更多相关主题的帖子: 矩阵 单位 运行 
2005-07-08 18:59
jessie
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-7-8
收藏
得分:0 

我是在visual c++上运行的,出现这样的错误提示: Compiling... builde.cpp D:\jessie\课程设计\builde1\builde.cpp(9) : warning C4518: 'float ' : storage-class or type specifier(s) unexpected here; ignored D:\jessie\课程设计\builde1\builde.cpp(9) : error C2146: syntax error : missing ';' before identifier 'BuildE' D:\jessie\课程设计\builde1\builde.cpp(9) : fatal error C1004: unexpected end of file found Error executing cl.exe.

builde.obj - 2 error(s), 1 warning(s)

2005-07-08 19:01
jessie
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-7-8
收藏
得分:0 

我把程序做了点适当的修改,现在程序错误是没有了,也能运行,但结果却是错的.不知道为什么,也不知道要怎么改,请大家帮帮忙!!小妹急用啊!!! #include <stdlib.h> #define N 20 #include <iostream> using namespace std;

int BuildE(int n)

{int i,j; int e[N][N];

for(i=0;i<n;i++) /*建立一个n阶的单位矩阵e*/ { for(j=0;j<n;j++) { if(i=j) e[i][j]=1; else e[i][j]=0; } }

printf("单位矩阵为:\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%d ",e[i][j]); /*输出单位矩阵*/ } printf("\n"); } return e[n][n]; } void main() {int n;

printf("请输入阶数: \n"); scanf("%d",&n);

BuildE(n); } 输出结果: 请输入阶数: 2 单位矩阵为: 0 -858993460 -858993460 1

2005-07-08 19:14
wellerweldon
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-6-3
收藏
得分:0 
if(i==j)
2005-07-09 06:01
jessie
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-7-8
收藏
得分:0 

这样没用的,不信你试试,我是改了好多遍了,用了很多方法,终于被我弄出来了。正确是正确了,但我却不知道到底是什么原因。我是先把矩阵e全部赋值为0,然后再把对角线上元素赋值为1。 #include <stdlib.h>

#define N 20 #include <iostream> using namespace std;

int BuildE(int n)

{int i,j; int e[N][N]; for(i=0;i<n;i++) { for(j=0;j<n;j++) { e[i][j]=0; } } for(i=0;i<n;i++) /*建立一个n阶的单位矩阵e*/ { e[i][i]=1; }

printf("单位矩阵为:\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("%d ",e[i][j]); /*输出单位矩阵*/ } printf("\n"); } return e[n][n]; } void main() {int n;

printf("请输入阶数: \n"); scanf("%d",&n);

BuildE(n); }

2005-07-09 10:35
jessie
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-7-8
收藏
得分:0 
错了,把其中的return语句去掉就可以了,然后前面的函数类型改为void

[此贴子已经被作者于2005-7-9 10:38:01编辑过]


2005-07-09 10:36
jessie
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-7-8
收藏
得分:0 
现在原帖的程序已经正确了,如果哪位高手知道之前为什会出现越界错误,请指教!!!
2005-07-09 10:48
快速回复:[原创一个简单的n阶单位矩阵的建立程序,之前运行有错,修改后运行正确! ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012304 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved