//C语言程序,实现输入的两个实数的加减乘除
#include <stdioh>
void main()
{
float x,y;
//提示输入需要计算的两个数
printf("\n 请输入两个非0的实数x、y:");
do {
scanf("%f,%f",&x,&y);
if (x==0 || y==0) printf("\n 你输入的数字不能为零,请重新输入");
} while (x==0 || y==0);
//实现加减乘除运算
printf("\n %f+%f=%f\n",x,y,x+y);
printf("\n %f-%f=%f\n",x,y,x-y);
printf("\n %f×%f=%f\n",x,y,xy);
printf("\n %f÷%f=%f\n",x,y,x/y);
}
参考代码如下:
#include<stdioh>
#define N 5
int main()
{
int a[N]={25,10,10,2,1};
int mul=1,i;
for(i=0;i<N;++i)
mul=a[i];
printf("%d",mul);
return 0;
}
#include <iostream>
int main()
{
int p = new int ;
int p1 = new int ;
printf("输入第一个向量\n");
scanf("%d",p1);
printf("输入第二个向量\n");
scanf("%d",p);
printf("乘积为""%d\n",(p)(p1));
delete p;
delete p1;
system("pause");
}
#include<iostreamh>
#include<stdlibh>
#include<iomaniph>
void caidan();
#define max 12500
typedef struct{
int e;
int i; //行下标
int j; //列下标
}triple;
typedef struct{
triple data[max+1];
int rpos[10];
int m,n,t;
}ts;
//矩阵的转置实现函数
void fasttransposesmatrix(ts M,ts &T)
{
int col,num[10],cpot[10]={0},p,q;
Tm=Mn;
Tn=Mm;
Tt=Mt;
if(Tt){
for(col=1;col<=Mn;++col)
num[col]=0;
for(int t1=1;t1<=Mt;++t1)
++num[Mdata[t1]j];
cpot[1]=1;
for(col=2;col<=Mn;++col)
cpot[col]=cpot[col-1]+num[col-1];
for(p=1;p<=Mt;++p){
col=Mdata[p]j;
q=cpot[col];
Tdata[q]i=Mdata[p]j;
Tdata[q]j=Mdata[p]i;
Tdata[q]e=Mdata[p]e;
++cpot[col];
}
}
}
//矩阵的乘法Y=MQ实现函数
void multsmatrix(ts M,ts Q,ts &Y){
int arow,brow=0,p,q,i1,tp,t1,ctemp[10],ccol;
if(Mn!=Qm)
cout<<"错误!"<<endl;
Ym=Mm;
Yn=Qn;
Yt=0;
if(MtQt!=0)
{
for(arow=1;arow<=Mm;++arow)
{
for(i1=1;i1<=Mm;i1++)
ctemp[i1]=0;
Yrpos[arow]=Yt+1;
if(arow<Mm)
tp=Mrpos[arow+1];
else
tp=Mt+1;
for(p=Mrpos[arow];p<tp;++p)
{
brow=Mdata[p]j;
if(brow<Qm)
t1=Qrpos[brow+1];
else
t1=Qt+1;
for(q=Qrpos[brow];q<t1;++q)
{
ccol=Qdata[q]j;
ctemp[ccol]+=Mdata[p]eQdata[q]e;
}
}
for(ccol=1;ccol<=Yn;++ccol)
if(ctemp[ccol]){
++Yt;
if(++Yt>max)
cout<<"错误"<<endl;
Ydata[Yt]i=arow;
Ydata[Yt]j=ccol;
Ydata[Yt]e=ctemp[ccol];
cout<<Ydata[Yt]i<<Ydata[Yt]j<<Ydata[Yt]e<<endl;
}
}
}
}
//将数组转换成三元组
void exchange1(int a,ts &M,int m,int n)
{
int i1,j1,z=1,pos[10];
for(i1=0;i1<=n;i1++)
{
pos[i1]=0;
Mrpos[i1]=0;
}
pos[0]=1;
for(i1=0;i1<m;i1++)
for(j1=0;j1<n;j1++)
if(a[i1][j1])
{
Mdata[z]i=i1+1;
Mdata[z]j=j1+1;
Mdata[z]e=a[i1][j1];
z++;
pos[i1+1]++;
}
for(i1=0;i1<=m;i1++)
{
Mrpos[i1+1]=Mrpos[i1]+pos[i1];
}
Mt=z-1;
Mm=m;
Mn=n;
}
//将三元组转换成数组形式
void exchange2(int a,ts &T)
{
int i1,j1,z1;
for(i1=0;i1<Tm;i1++)
for(j1=0;j1<Tn;j1++)
{
a[i1][j1]=0;
}
for(z1=1;z1<=Tt;z1++)
for(i1=0;i1<Tm;i1++)
for(j1=0;j1<Tn;j1++)
if((i1==Tdata[z1]i-1)&&(j1==Tdata[z1]j-1))
{
a[i1][j1]=Tdata[z1]e;
}
}
//输出结果
void output(int a,int m,int n)
{
int i1,j1;
for(i1=0;i1<m;i1++)
{
for(j1=0;j1<n;j1++)
{
cout<<a[i1][j1]<<',';
}cout<<endl;
}
}
//转置的 *** 作函数
void zhuanzhi(){
int i1,j1,m,n;
cout<<"初始矩阵:"<<endl;
cout<<"请输入你要输入的数组的行数:"<<endl;
cin>>m;
cout<<"请输入你要输入的数组的列数:"<<endl;
cin>>n;
intpp=new int[m];
for(i1=0;i1<m;i1++)
pp[i1]=new int[n];
cout<<"请依次输入矩阵的元素:"<<endl;
for(i1=0;i1<m;i1++)
for(j1=0;j1<n;j1++)
{
cin>>pp[i1][j1];
}
cout<<endl;
ts M,T;
exchange1(pp,M,m,n);
fasttransposesmatrix(M,T);
intpp1=new int[Tm];
for(i1=0;i1<Tm;i1++)
pp1[i1]=new int[Tn];
exchange2(pp1,T);
cout<<"转置后的矩阵是:"<<endl;
output(pp1,Tm,Tn);
delete pp;
delete pp1;
caidan();
}
//相乘的 *** 作函数
void xiangcheng(){
ts M,Q,Y;
int i1,j1,m,n;
cout<<"请输入你要输入的数组的行数:"<<endl;
cin>>m;
cout<<"请输入你要输入的数组的列数:"<<endl;
cin>>n;
intp=new int[m];
for(i1=0;i1<m;i1++)
p[i1]=new int[n];
cout<<"请依次输入矩阵的元素:"<<endl;
for(i1=0;i1<m;i1++)
for(j1=0;j1<n;j1++)
{
cin>>p[i1][j1];
}
cout<<endl;
exchange1(p,M,m,n);
cout<<"请再次输入一个矩阵(即乘数):"<<endl;
cout<<"请输入你要输入的数组的行数:"<<endl;
cin>>m;
cout<<"请输入你要输入的数组的列数:"<<endl;
cin>>n;
intp2=new int[m];
for(i1=0;i1<m;i1++)
p2[i1]=new int[n];
cout<<"请依次输入矩阵的元素:"<<endl;
for(i1=0;i1<m;i1++)
for(j1=0;j1<n;j1++)
{
cin>>p2[i1][j1];
}
cout<<endl;
exchange1(p2,Q,m,n);
multsmatrix(M,Q,Y);
intp1=new int[Ym];
for(i1=0;i1<Ym;i1++)
p1[i1]=new int[Yn];
exchange2(p1,Y);
cout<<"两矩阵相乘结果为:"<<endl;
output(p1,Ym,Yn);
delete p2;
delete p1;
caidan();
}
//菜单
void caidan()
{
int i;
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;
cout<<" 1矩阵的转置 2两个矩阵的乘法 3退出 "<<endl;
cout<<"请选择:"<<endl;
cin>>i;
switch(i){
case 1:zhuanzhi();
break;
case 2:xiangcheng();
break;
case 3: exit(0);
}
}
//主函数
void main()
{
caidan();
}
以上就是关于编写一个C语言程序,从键盘输入两个实数,求它们的乘积并输出,要求12位有效数字,小数点后保留4位。全部的内容,包括:编写一个C语言程序,从键盘输入两个实数,求它们的乘积并输出,要求12位有效数字,小数点后保留4位。、编写程序统计a数组中所有元素的乘积、利用指针形式编写一个程序,求两个向量的乘积。C++等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)