帮忙写c语言课程设计题目

c语言,代写程序,代写c程序,代做c课程设计,c代写修改,c语言程序,c语言编程 代..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
c语言,代写程序,代写c程序,代做c课程设计,c代写修改,c语言程序,c语言编程 代写程序
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口课程设计:用C语言编写的稀疏矩阵运算器(加、减、乘、求逆) - 推酷
课程设计:用C语言编写的稀疏矩阵运算器(加、减、乘、求逆)
#include&stdio.h&
#include&stdlib.h&
int system(const char *string);
#define maxsize 2000
typedef struct
typedef struct
triple data[maxsize];
typedef struct
}triple_f;
typedef struct
triple_f data[maxsize];
}matrix_f;
matrix_f *Init_f()
matrix_f *A;
A=(matrix_f*)malloc(sizeof(matrix_f));
for(i=0;i&i++)
A-&data[i].col=0;
A-&data[i].row=0;
A-&data[i].data=0;
matrix *Init()
matrix *A;
A=(matrix*)malloc(sizeof(matrix));
for(j=0;j&j++)
A-&data[j].col=0;
A-&data[j].row=0;
A-&data[j].data=0;
void print_menu()
char ch1='=';
for(i=0;i&80;i++)
printf(&%c&,ch1);
void qiuni(matrix_f *A,matrix_f **C)
/*参数声明*/
int i=0,j=0,m=0,row=0,col=0,r1,k,tz=0,tem_row,tem_col,l;
float n1,n2,t,x,n3,
matrix_f *B;
/*变量运算*/
B=Init_f();
/*创建矩阵AI*/ /*这部分已完成,下面部分禁止修改*/
B-&m=A-&m; B-&n=2*(A-&n); B-&len=(B-&m)*(B-&n);
tem_row=0; tem_col=0;
for(i=0;i&B-&i++)
B-&data[i].data=0;
B-&data[i].col=tem_
B-&data[i].row=tem_
tem_col++;
if(tem_col==B-&n)
tem_col=0;
tem_row++;
for(i=0;i&A-&i++)
for(j=0;j&B-&j++)
if(B-&data[j].row==A-&data[i].row&&B-&data[j].col==A-&data[i].col)
B-&data[j].data=A-&data[i].
for(i=0;i&A-&m;i++)
B-&data[j*(B-&n)+i+B-&m].data=1;
/*变换矩阵AI*/
row=0; col=0; i=0; j=0; n1=1.0;
r1=0; k=0; t=1.0;
for(col=0;col&B-&m;col++)
for(row=0;row&B-&m;row++)
if(row!=col)
for(i=0;i&B-&i++)
if(B-&data[i].row==row&&B-&data[i].col==col)
{n1=B-&data[i].}
for(j=0;j&B-&j++)
if(B-&data[j].row==col&&B-&data[j].col==col)
{n2=B-&data[j].}
for(r1=0;r1&(2*B-&m);r1++)
for(k=0;k&B-&k++)
if(B-&data[k].row==col&&B-&data[k].col==r1)
{n3=B-&data[k].}
for(l=0;l&B-&l++)
if(B-&data[l].row==row&&B-&data[l].col==r1)
{B-&data[l].data=B-&data[l].data-x;}
row=0;j=0;n1=0;col=0;i=0;
for(row=0;row&B-&m;row++)
for(j=0;j&B-&j++)
if(B-&data[j].row==row&&B-&data[j].col==row)
{n1=B-&data[j].}
for(col=0;col&B-&n;col++)
for(i=0;i&B-&i++)
if(B-&data[i].row==row&&B-&data[i].col==col)
{B-&data[i].data=(B-&data[i].data)/n1;}
row=0;col=0;sum=1;tem_row=0;tem_col=0;
for(row=0;row&B-&m;row++)
for(i=0;i&B-&i++)
if(B-&data[i].row==row&&B-&data[i].col==row)
sum=sum*(B-&data[i].data);
if(sum==0)
printf(&您所输入的矩阵没有逆矩阵!\n&);
(*C)-&len=B-&len/2;
(*C)-&m=B-&m;
(*C)-&n=B-&m;
for(i=0;i&(*C)-&i++)
(*C)-&data[i].data=B-&data[i+(tem_row+1)*B-&m].
(*C)-&data[i].row=B-&data[i+(tem_row+1)*B-&m].
(*C)-&data[i].col=B-&data[i+(tem_row+1)*B-&m].
tem_col++;
if(tem_col==(*C)-&m)
tem_col=0;
tem_row++;
void print_menu2()
print_menu();
1.创建矩阵A
2.创建矩阵B
3.创建矩阵C【求逆矩阵专用】
4.矩阵A + 矩阵B
5.矩阵A - 矩阵B
6.矩阵A * 矩阵B
7.求矩阵A的逆矩阵
print_menu();
printf(&请选择要进行的操作:&);
void Creat(matrix **A)
int n1,n2;
char getname[20];
int row=0;
int col=0;
FILE *in1;
FILE *in2;
print_menu();
1.手动创建
2.从文件载入
print_menu();
printf(&请选择矩阵创建方式:&);
scanf(&%d&,&j);
{ system(&cls&);
printf(&=========================请输入矩阵的行列数及非零元个数=========================&);
scanf(&%d%d%d&,&(*A)-&m,&(*A)-&n,&(*A)-&len);
for(i=0;i&(*A)-&i++)
printf(&请输入第 %d 个非零元素的行: &,i+1);
scanf(&%d&,&n1);
(*A)-&data[i].row=(n1-1);
printf(&请输入第 %d 个非零元素的列: &,i+1);
scanf(&%d&,&n2);
(*A)-&data[i].col=(n2-1);
printf(&请输入第 %d 个非零元素的值: &,i+1);
scanf(&%d&,&(*A)-&data[i].data);
printf(&\n&);
printf(&==================================矩阵创建完成==================================&);
system(&cls&);
printf(&==============================请输入要打开的文件名==============================&);
scanf(&%s&,&getname);
if((get=fopen(getname,&r&))==NULL)
printf(&打开文件出错!请检查文件是否存在。\n&);
system(&pause&);
printf(&打开完成!\n&);
printf(&正在从文件中载入矩阵...\n&);
in1=fopen(getname,&r&);
while(!feof(in1))
ch1=fgetc(in1);
if(ch1=='\n')
in2=fopen(getname,&r&);
while(!feof(in2))
ch2=fgetc(in2);
if(ch2==' ')
else if(ch2=='\n')
p=p+1; g=g+1;
printf(&矩阵载入成功!\n&);
printf(&\n文本行数为:%d\n&,g);
printf(&文本列数为:%d\n&,p);
printf(&非零元素信息如下:\n&);
while(!feof(get))
fscanf(get,&%d&,&n1);
(*A)-&data[m].data=n1;
(*A)-&data[m].row=
(*A)-&data[m].col=
printf(&行:%d
&,(*A)-&data[m].row+1);
printf(&列:%d
&,(*A)-&data[m].col+1);
printf(&值:%d
\n&,(*A)-&data[m].data);
if(col==p)
{col=0; row++;}
else if(n1==0)
if(col==p)
{col=0;row++;}
(*A)-&m=g;
(*A)-&n=p;
(*A)-&len=z;
void print(matrix *A)
char putname[20];
char ch1='0';
char ch2=' ';
printf(&是否将结果显示在屏幕上?(建议大矩阵保存在文件中。)\t是[0]/否[1]\n&);
scanf(&%d&,&j);
{ system(&cls&);
for(row=0;row&A-&m;row++)
for(col=0;col&(A-&n);col++)
if(A-&data[i].col==col&&A-&data[i].row==row)
printf(&%d &,A-&data[i].data);
printf(&0 &);
printf(&\n&);
system(&cls&);
printf(&请输入要保存的文件名:&);
scanf(&%s&,&putname);
/*写入文件部分*/
if((put=fopen(putname,&w&))==NULL)
printf(&无法打开!&);
printf(&\a创建或打开文件 %s 成功!\n&,putname);
for(row=0;row&A-&m;row++)
for(col=0;col&A-&n;col++)
if(A-&data[i].col==col&&A-&data[i].row==row)
{ fprintf(put,&%d&,A-&data[i].data); fputc(ch2,put); i++; }
{fputc(ch1,put); fputc(ch2,put);}
fputc(10,put);
fclose(put);
printf(&已保存!\n&);
int value(matrix *a,int i,int j)
//矩阵相乘时 取出一行或一列
while(k&(a-&len)&&(a-&data[k].row!=i||a-&data[k].col!=j))
if(k&a-&len)
return a-&data[k].
void arr(matrix *a,matrix *b,matrix **c)
int i=0,j=0,k=0,p=0;
if(a-&m!=b-&n)
printf(&您输入的两个矩阵不满足相乘条件!&);
system(&pause&);
for(i=0;i&a-&n;i++)
for(j=0;j&b-&m;j++)
for(k=0;k&a-&m;k++)
tem=tem+value(a,i,k)*value(b,k,j);
if(tem!=0)
(*c)-&data[p].row=i;
(*c)-&data[p].col=j;
(*c)-&data[p].data=
(*c)-&n=a-&n;
(*c)-&m=a-&m;
(*c)-&len=p;
void add(matrix *a,matrix *b,matrix **c)
if(a-&m==b-&m&&a-&n==b-&n)
int i=0,j=0,k=0;
(*c)-&m=a-&m;
(*c)-&n=a-&n;
while(i&a-&len||j&b-&len)
if(i==a-&len&&j&b-&len)
(*c)-&data[k].col=b-&data[j].
(*c)-&data[k].row=b-&data[j].
(*c)-&data[k++].data=b-&data[j].
(*c)-&len++;
else if(i&a-&len&&j==b-&len)
(*c)-&data[k].col=a-&data[i].
(*c)-&data[k].row=a-&data[i].
(*c)-&data[k++].data=a-&data[i].
(*c)-&len++;
if(a-&data[i].row&b-&data[j].row)
(*c)-&data[k].col=b-&data[j].
(*c)-&data[k].row=b-&data[j].
(*c)-&data[k++].data=b-&data[j].
(*c)-&len++;
else if(a-&data[i].row&b-&data[j].row)
(*c)-&data[k].col=a-&data[i].
(*c)-&data[k].row=a-&data[i].
(*c)-&data[k++].data=a-&data[i].
(*c)-&len++;
if(a-&data[i].col==b-&data[j].col)
if(a-&data[i].data+b-&data[j].data!=0)
(*c)-&data[k].col=a-&data[i].
(*c)-&data[k].row=a-&data[i].
(*c)-&data[k++].data=a-&data[i].data+b-&data[j].
(*c)-&len++;
else if(a-&data[i].col&b-&data[j].col)
(*c)-&data[k].col=b-&data[j].
(*c)-&data[k].row=b-&data[j].
(*c)-&data[k++].data=b-&data[j].
(*c)-&len++;
else if(a-&data[i].col&b-&data[j].col)
(*c)-&data[k].col=a-&data[i].
(*c)-&data[k].row=a-&data[i].
(*c)-&data[k++].data=a-&data[i].
(*c)-&len++;
printf(&您输入的两个矩阵不满足运算条件!\n&);
system(&pause&);
void sub(matrix *A,matrix *B,matrix **C)
for(k=0;k&B-&k++) B-&data[k].data=-B-&data[k].
if(A-&m==B-&m&&A-&n==B-&n)
add(A,B,C);
for(k=0;k&B-&k++)
B-&data[k].data=-B-&data[k].
system(&pause&);
void Creat_f(matrix_f **A)
int n3,n4;
char getname[20];
int row=0;
int col=0;
FILE *in1;
FILE *in2;
print_menu();
1.手动创建
2.从文件载入
print_menu();
printf(&请选择矩阵创建方式:&);
scanf(&%d&,&j);
{ system(&cls&);
printf(&=========================请输入矩阵的行列数及非零元个数=========================&);
scanf(&%d%d%d&,&(*A)-&m,&(*A)-&n,&(*A)-&len);
for(i=0;i&(*A)-&i++)
printf(&请输入第 %d 个非零元素的行: &,i+1);
scanf(&%d&,&n3);
(*A)-&data[i].row=(n3-1);
printf(&请输入第 %d 个非零元素的列: &,i+1);
scanf(&%d&,&n4);
(*A)-&data[i].col=(n4-1);
printf(&请输入第 %d 个非零元素的值: &,i+1);
scanf(&%f&,&(*A)-&data[i].data);
printf(&\n&);
printf(&==================================矩阵创建完成==================================&);
system(&cls&);
printf(&==============================请输入要打开的文件名==============================&);
scanf(&%s&,&getname);
if((get=fopen(getname,&r&))==NULL)
printf(&打开文件出错!请检查文件是否存在。\n&);
system(&pause&);
printf(&打开完成!\n&);
printf(&正在从文件中载入矩阵...\n&);
in1=fopen(getname,&r&);
while(!feof(in1))
ch1=fgetc(in1);
if(ch1=='\n')
in2=fopen(getname,&r&);
while(!feof(in2))
ch2=fgetc(in2);
if(ch2==' ')
else if(ch2=='\n')
p=p+1; g=g+1;
printf(&矩阵载入成功!\n&);
printf(&\n文本行数为:%d\n&,g);
printf(&文本列数为:%d\n&,p);
printf(&非零元素信息如下:\n&);
while(!feof(get))
fscanf(get,&%f&,&n1);
(*A)-&data[m].data=n1;
(*A)-&data[m].row=
(*A)-&data[m].col=
printf(&行:%d
&,(*A)-&data[m].row+1);
printf(&列:%d
&,(*A)-&data[m].col+1);
printf(&值:%0.1f
\n&,(*A)-&data[m].data);
//检测载入是否成功。
if(col==p)
{col=0; row++;}
else if(n1==0)
if(col==p)
{col=0;row++;}
(*A)-&m=g;
(*A)-&n=p;
(*A)-&len=z;
void print_f(matrix_f *A)
char putname[20];
char ch1='0';
char ch2=' ';
int t_row=0,t_col=0;
printf(&是否将结果显示在屏幕上?(建议大矩阵保存在文件中。)\t是[0]/否[1]\n&);
scanf(&%d&,&j);
{ system(&cls&);
for(i=0;i&A-&i++)
printf(&%0.1f
&,A-&data[i].data);
if(t_col==A-&n)
printf(&\n&);
system(&cls&);
printf(&请输入要保存的文件名:&);
scanf(&%s&,&putname);
/*写入文件部分*/
if((put=fopen(putname,&w&))==NULL)
printf(&无法打开!&);
printf(&\a创建或打开文件 %s 成功!\n&,putname);
for(i=0;i&A-&i++)
fprintf(put,&%0.1f&,A-&data[i].data);
fputc(ch2,put);fputc(ch2,put);fputc(ch2,put);
if(t_col==A-&n)
fputc(10,put);
fclose(put);
printf(&已保存!\n&);
void main()
matrix *A;
matrix *B;
matrix *C;
matrix_f *S;
matrix_f *T;
S=Init_f();
T=Init_f();
print_menu2();
scanf(&%d&,&num);
while(num&=8)
switch(num)
system(&cls&);
printf(&创建矩阵A...\n&);
Creat(&A);
system(&pause&);
system(&cls&);
print_menu2();
system(&cls&);
printf(&创建矩阵B...\n&);
Creat(&B);
system(&pause&);
system(&cls&);
print_menu2();
system(&cls&);
printf(&创建矩阵S...\n&);
Creat_f(&S);
system(&pause&);
system(&cls&);
print_menu2();
printf(&正在执行加法运算...\n&);
add(A,B,&C);
system(&pause&);
system(&cls&);
print_menu2();
printf(&正在执行减法运算...\n&);
sub(A,B,&C);
system(&pause&);
system(&cls&);
print_menu2();
printf(&正在执行乘法运算...\n&);
arr(A,B,&C);
system(&pause&);
system(&cls&);
print_menu2();
if(A-&m!=A-&n)
printf(&矩阵行数不等于列数,没有逆矩阵!\n&);
printf(&正在执行求逆运算...\n&);
qiuni(S,&T);
print_f(T);
system(&pause&);
system(&cls&);
print_menu2();
}//switch结束
scanf(&%d&,&num);
}//while结束
scanf(&%d&,&num);
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
排版有问题
没有分页内容
视频无法显示
图片无法显示大小:0.33MB更新时间:软件类型:C语言&免费软件
coreldraw x6注册机是一款能够帮助用户快速生成CorelDRAW Graphics Suite X6 V16.0 注册码的工具,而且软件压缩包中还附带了一些coreldraw x6注册码,简单又实用。
coreldraw x6注册机的操作非常简单,首先用户需要安装coreldraw x...
大小:0.02MB更新时间:软件类型:C语言&免费软件
Visual C++ 6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C++是一个功能强大的可视化软件开发工具。...
大小:9.22MB更新时间:软件类型:C语言&免费软件
完美集成中文环境的精巧强大的C/C++语言编程学习工具! “Turbo C++ 3.0”软件是Borland公司在1992年推出的强大的——C语言程序设计与C++面向对象程序设计 的集成开发工具。它只需要修改一个设置选项,就能够在同一个IDE集成开发环境下...
大小:31.01MB更新时间:软件类型:C语言&免费软件
Visual C++ 6.0 完整中文绿色版完美支持Win7系统,重装系统后直接就可以使用非常方便!Visual C++ 6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C++是一个功能强大...
大小:43.54MB更新时间:软件类型:C语言&共享软件
原名《Turbo C/C++ for Windows 集成实验与学习环境》,支持32位与64位的WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、学习与实验软件(支持TC2/T...
大小:4.43MB更新时间:软件类型:C语言&免费软件
完美集成中文环境的精巧强大的C/C++语言编程学习工具! “Turbo C++ 3.0”软件是Borland公司在1992年推出的强大的——C语言程序设计与C++面向对象程序设计 的集成开发工具。它只需要修改一个设置选项,就能够在同一个IDE集成开发环境下...
大小:100.8MB更新时间:软件类型:C语言&试用软件
易语言主要特性﹕ *全中文支持。用户无需掌握任何英文知识,轻松迈过这道进入计算机编程的最大门坎! *全可视化支持。具有可视化程序接口和可视化程序代码设计支持,不具备编程基础的用户可快速学会编写程序。 *强有力的数据库、数据绑定、...
大小:0.15MB更新时间:软件类型:C语言&免费软件
C实现的俄罗斯方块程序(源码)...
大小:0.49MB更新时间:软件类型:C语言&免费软件
小巧但功能极其强大的本地化工具,可以直接修改 VC++ 及 DELPHI 编制的 PE 格式文件的资源,包括菜单、对话框、字符串和位图等,也可与其它本地化工具配合使用。在汉化中不推荐使用 eXeScope 作为汉化工具,仅作为汉化辅助工具。6.50...
大小:3.16MB更新时间:软件类型:C语言&免费软件
C++编程助手将一些常用或不常用的编程命令等添加到了列表中,方便用户使用,对于那些英文不怎么好的人是一种极大的帮助。...
大小:6.7MB更新时间:软件类型:C语言&免费软件
汇编语言入门教程PPT,共10章,另附习题...
大小:1.23MB更新时间:软件类型:C语言&免费软件
C 完全手册,用winrar解压,pdf格式, 解压密码: www.u2mcse.net...
大小:97.99MB更新时间:软件类型:C语言&试用软件
易语言5.0 相对于易语言4.x更新说明增加静态编译功能,支持挂接第三方链接器(比如VC6中的link.exe)。静态编译后的易语言可执行程序(exe)和动态链接库(dll),运行时不再依赖任何支持库文件,文件尺寸更小(相对以前的独立编译),PE结构...
大小:16.77MB更新时间:软件类型:C语言&免费软件
Microsoft Visual C++使用指南...
大小:2.55MB更新时间:软件类型:C语言&免费软件
VC++编程100例...
大小:0.03MB更新时间:软件类型:C语言&免费软件
经典c程序100例,WORD文档...
大小:1.66MB更新时间:软件类型:C语言&共享软件
如果你是C程序员,是不是会和我有同感?用VS编写代码让整个机子变得很慢?而用苗条的CsharpDevelop又存在编译不方便?而“C编译工具”恰好解决了这个问题,希望各位高手与我交流。。如果不能用,请确认自己安装了.net framework...
大小:2.49MB更新时间:软件类型:C语言&试用软件
CodePlus是一款为C数据库程序员设计的自动“笨代码”生成器,CodePlus生成的代码基于三层结构设计思想,主要实现数据库中对表、视图的选择(select)、修改(update)、删除(delete)、新建(Insert)和存在(Exist)的存储过程的自动生...
大小:7.31MB更新时间:软件类型:C语言&免费软件
本软件为《易语言》的外挂辅助编程工具,需要安装了《易语言》后才能使用其大部分的功能。在运行易语言后,本软件将直接在易语言编辑窗口中动态生成一个程序功能窗口,使用起来非常方便,将是您易语言编程、学习的得力助手。 软件具体功能...
大小:47.16MB更新时间:软件类型:C语言&共享软件
PlotLab是一个Visual C + +组件集合,使用非常容易并且可以快速数据可视化。可缩放组成部分,导航,直接打印,剪贴板复制,保存到文件等等。非常快的优化绘图数据,支持多线程。...
可用“&”或“&”方向键快速翻页
12345678910
1234567891008-2409-1709-0508-29
09-2509-2509-2509-25
◇本站云标签

我要回帖

更多关于 c语言课程设计 的文章

 

随机推荐