2024-01-14 09:37来源:m.sf1369.com作者:宇宇
#include<stdio.h>
void main()
{
float a,b,m,n,p,q;
scanf(%f,%f,&a,&b);
m=a+b;n=a-b;p=a*b;q=a/b;
printf(%.4f,%.4f,%.4f,%.4f,m,n,p,q);
}
就这样。。。不明白的话。。可以问我。。
我写了一个,你参考一下吧,本人亲测无误
#include <stdio.h>
int f(int m,int k)
{
int sum=0,i;
if(m<k-1)
return 0;
else if(m==k-1)
return 1;
else
for(i=k;i>=1;--i)
sum+=f(m-i,k);
return sum;
}
int main()
{
int m,k,a;
scanf(%d%d,&m,&k);
a=f(m,k);
printf(%d\n,a);
return 0;
}
其实这只是普通斐波那契的一个扩充,这个程序并不是最优的,因为递归过程中有些项的值要重复计算,时间消耗较大,可以采用存储已计算过的的项到一个表里,每次计算前先查表的方法避免重复计算。这属于以空间换时间,改进就留给你吧,递归部分大体就是我写的这个样子了
#include stdio.h
#include stdlib.h
#define M 3
#define N 3
//指针数组
int a[M][N];
int b[M][N];
int c[M][N];
void matrixMul(int b[][M],int c[][N]);
void matrixAdd(int b[][N],int c[][N]);
void matrixSub(int b[][N],int c[][N]);
int main()
{
int i,j,temp=0;
printf(Please input int matrix b[%d][%d]\
,M,N);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
scanf(%d,&temp);
b[i][j]=temp;
}
printf(Please input int matrix c[%d][%d]\
,M,N);
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
scanf(%d,&temp);
c[i][j]=temp;
}
}
//输出原矩阵
printf(Now print resource matrix b[%d][%d]=,M,N);
for(i=0;i<M;i++){
printf(\
);
for(j=0;j<N;j++)
printf(%d ,b[i][j]);
}
printf(\
);
printf(Now print resource matrix c[%d][%d]=,M,N);
for(i=0;i<M;i++){
printf(\
);
for(j=0;j<N;j++)
printf(%d ,c[i][j]);
}
if (M == N)
{
matrixMul(b,c); //调用矩阵相乘
//输出矩阵相乘结果
printf(\
);
printf(Now printm matrixMul results matrix a[%d][%d]=B*C:,M,N);
for(i=0;i<M;i++)
{
printf(\
);
for(j=0;j<N;j++)
printf(%d ,a[i][j]);
}
}
else
{
printf(matrix Error,check and try again!!! );
}
//输出矩阵相加结果
matrixAdd(b,c);
printf(\
);
printf(Now printm matrixAdd results matrix a[%d][%d]=B+C:,M,N);
for(i=0;i<M;i++)
{
printf(\
);
for(j=0;j<N;j++)
printf(%d ,a[i][j]);
}
//输出矩阵相减结果
matrixSub(b,c);
printf(\
);
printf(Now printm matrixSub results matrix a[%d][%d]=B-C:,M,N);
for(i=0;i<M;i++)
{
printf(\
);
for(j=0;j<N;j++)
printf(%d ,a[i][j]);
}
return 0;
}
void matrixMul(int b[][M],int c[][N])
{
int i,j,k;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{
for(k=0;k<N;k++)
a[i][j]+=b[i][k]*c[k][j];
}
}
void matrixAdd(int b[][M],int c[][N])
{
int i,j;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
a[i][j]=b[i][j]+c[i][j];
}
}
}
void matrixSub(int b[][M],int c[][N])
{
int i,j;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
a[i][j]=b[i][j]-c[i][j];
}
}
}
我大概看了下,加减乘都能实现
网上资料