
#include<stdioh>
#include<mathh>
float f1(float x)
{
return(10+x);
}
float f2(float x)
{
return(20x+30);
}
float f3(float x)
{
return(exp(x)+1);
}
float f4(float x)
{
return(pow(1+x,2));
}
float f5(float x)
{
return(pow(x,3));
}
float fsimp(float a,float b,float (p)(float))
{
float c,s;
c=(a+b)/2;
s=(b-a)/6(p(a)+4p(c)+p(b));
return s;
}
int main()
{
float a,b;
printf("请输入积分下限a的值:");
scanf("%f",&a);
printf("请输入积分上限b的值:");
scanf("%f",&b);
printf("%f\n",fsimp(a,b,f1));
printf("%f\n",fsimp(a,b,f2));
printf("%f\n",fsimp(a,b,f3));
printf("%f\n",fsimp(a,b,f4));
printf("%f\n",fsimp(a,b,f5));
}
C语言程序:求1+3+5+…+99的方法:
int main()
{
int i,sum=0;
for(i=1;i<100;i+=2)
sum+=i;
printf("1+3+5+……+99=%d\n",sum);
return 0;
}
扩展资料:
C语言是普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,因此相对于其它编程语言,它具有自己独特的特点。具体体现在以下三个方面:
1、广泛性。
C 语言的运算范围的大小直接决定了其优劣性。C 语言中包含了34种运算符,因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十分丰富。此外,C 语言包含了字符型、指针型等多种数据结构形式,因此,更为庞大的数据结构运算它也可以应付。
2、简洁性。
9类控制语句和32个KEYWORDS是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性,不仅可以适用广大编程人员的 *** 作,提高其工作效率,同时还能够支持高级编程,避免了语言切换的繁琐。
3、结构完善。
C语言是一种结构化语言,它可以通过组建模块单位的形式实现模块化的应用程序,在系统描述方面具有显著优势,同时这一特性也使得它能够适应多种不同的编程要求,且执行效率高。
void fun (char s[][5]);
int main()
{
char s[5][5];
int i,j;
printf("请输入5行5列的矩阵:");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
scanf("%d",&s[i][j]);
}
fun(s);
system("pause");
}
void fun (char s[][5])
{
long int sum=1, i,j;
for(i=0;i<5;i++)
for(j=i;j<5;j++)
{
sum=s[i][j];
}
printf("%ld",sum);
}
1、首先在电脑中,打开Dev-c++软件,点击“新建源代码”,如下图所示。
2、具体程序如下,如下图所示。
3、此次的程序最终目的是求出3x3的整型矩阵对角线元素之和,所以要向计算机输入3x3矩阵中的所有元素。
4、其次要对输入的矩阵的元素进行放置于相应的位置,以便于之后的计算其对角元素之和。
5、最后需要向计算机指出要计算机计算出哪些元素之和,和需要计算元素的具体位置在哪儿。
6、程序写完之后,点击运行即可求出所要求出的结果了。
#include<stdioh>
void main()
{
int a,b,c,d,e,s;
printf("请输入五个数以#结束:\n");scanf("%d",&a);scanf("%d",&b);scanf("%d",&c);scanf("%d",&d);scanf("%d",&e);s=abcde;printf("五个数乘积为%d",s);
}
如果需要精确计算16和27的阶乘需要编写大整数计算,至少要实现大整数加法,大整数乘以短整数,大整数除以短整数,大整数转换为字符串用于显示结果。当然如果不需要精确计算可以使用浮点数来计算。
#include <stdioh>#include <stringh>
#include <malloch>
#include <ctypeh>
typedef int BOOL;
typedef unsigned short LINT_B;
typedef unsigned long LINT_B2;
typedef LINT_B LINT;
typedef const LINT_B CLINT;
#define TRUE 1
#define FALSE 0
#define BASE 0x10000ul
#define BASEDIV2 0x8000ul
#define BASEMINONE 0xFFFFul
#define DIGITLEN 64 // 当 DIGITLEN = 64 时可以实现200以内的阶乘
#define Max(a, b) ((a) < (b) (b) : (a))
#define Rmldzrs(l, h) do {while((--h) == 0); ++h; h = Max(l, h);} while(0);
const int sBitperdgt = sizeof(LINT_B) 8;
// 复制大数
LINT copy(CLINT f, CLINT l, LINT x)
{
while(f != l) x++ = f++;
return x;
}
// 大数是否为0
inline BOOL isZero(CLINT l, CLINT h)
{
Rmldzrs(l, h);
return (l == h) TRUE : FALSE;
}
// 调换字符串的顺序
void reverse(char s)
{
char t;
char sl = s;
char sh = sl + strlen(s);
while(sl < sh) {t = sl; sl++ = (--sh) ; sh = t;}
}
// 交换大数指针
void swapCLINT(CLINT a, CLINT b)
{
CLINT t;
t = a; a = b; b = t;
}
// 加法 C = A + B
LINT add(CLINT al, CLINT ah, CLINT bl, CLINT bh, LINT cl)
{
LINT_B2 carry = (LINT_B2)0;
LINT ch = cl;
if((ah - al) < (bh - bl)) swapCLINT(&al, &bl), swapCLINT(&ah, &bh); // 保证A的长度大于或等于B
// 两个数相加
while (bl < bh)
ch++ = (LINT_B)(carry = (LINT_B2)al++ + (LINT_B2)bl++ + (LINT_B2)(LINT_B)(carry >> sBitperdgt));
// 处理 A 比 B 多出的长度
while (al < ah)
{
if(carry >= BASE) ch++ = (LINT_B)(carry = (LINT_B2)al++ + (LINT_B2)(LINT_B)(carry >> sBitperdgt));
else ch++ = al++;
}
// 处理进位
if(carry & BASE) ch++ = (LINT_B)1;
return ch;
}
// 短乘法 C = A b
LINT umul(CLINT al, CLINT ah, LINT_B b, LINT cl)
{
LINT ch;
LINT_B2 pc;
CLINT pa;
LINT_B2 carry, bv;
if(b == 0 || isZero(al, ah)) {if(cl) cl = 0; return cl;}
if(ah - al == 1) // A 的长度只有一个数字
{
pc = (LINT_B2 )cl;
pc = (LINT_B2)al (LINT_B2)b;
ch = cl + 2;
Rmldzrs(cl, ch);
return ch;
}
ch = cl;
pa = al;
carry = (LINT_B2)0, bv = (LINT_B2)b;
// 循环计算
while(pa < ah) ch++ = (LINT_B)(carry = bv (LINT_B2)pa++ + (LINT_B2)(LINT_B)(carry >> sBitperdgt));
// 处理进位
ch++ = (LINT_B)(carry >> sBitperdgt);
Rmldzrs(cl, ch);
return ch;
}
// 短除 A = b C + d
// cl 或 d 可以是空指针
LINT udiv(CLINT al, CLINT ah, LINT_B b, LINT cl, LINT d)
{
int lenA, lenC;
LINT bufC = NULL, ch, pch;
LINT_B c;
CLINT pah;
LINT_B2 rdach, bv, rv;
// 处理特殊情况
if(b == 0)
{
printf("带余短除出现除以0错误");
if(d) d = 0;
if(cl) cl = 0;
return cl;
}
lenA = ah - al;
if(lenA == 0) {if(d) d = 0; if(cl) cl = 0; return cl;} // 被除数等于0,结果商等于0,余数等于0
if(lenA == 1) // 被除数也只有1位
{
if(al < b) {if(d) d = al; if(cl) cl = 0;} // 被除数小于除数,商等于0,余数等于被除数
else
{
c = al / b;
if(cl) cl++ = c;
if(d) d = al - c b;
}
return cl;
}
lenC = lenA - 1; // 计算长度
if(cl == NULL)
{
bufC = (LINT)malloc((lenC + 1) sizeof(LINT_B)); // 申请内存,保证cl不为NULL
if(bufC == NULL)
{
printf("带余短除申请临时内存发生错误!\n");
if(d) d = 0;
return NULL;
}
cl = bufC;
}
ch = cl + lenC;
// 开始计算
pah = ah - 1;
pch = ch;
bv = b, rv = 0;
while(al <= pah)
{
pch = (LINT_B)((rdach = ((rv << sBitperdgt) + (LINT_B2)pah--)) / bv);
rv = (rdach - bv (LINT_B2)pch--);
}
if(d) d = (LINT_B)rv;
if(bufC)
{
free(bufC);
return NULL;
}
return (ch == 0) ch : ++ch;
}
// 大整数变成数字串
const char LInt2Str(char o, CLINT l, CLINT h, LINT_B base, BOOL uppercase)
{
const char sVecUpper = "0123456789ABCDEF";
const char sVecLower = "0123456789abcdef", Vec;
char po;
LINT_B x, t[DIGITLEN], ii[DIGITLEN];
LINT th, tl, il, ih;
CLINT xl, xh;
BOOL flag = TRUE;
po = o;
il = ii;
ih = copy(l, h, il);
Rmldzrs(il, ih);
if(isZero(il, ih))
{
o++ = '0';
o++ = 0;
return po;
}
Vec = uppercase sVecUpper : sVecLower;
xl = &x;
xh = xl + 1;
th = tl = t;
switch(base)
{
case 2: case 8: case 10: case 16: break;
default: base = 10;
}
while(1)
{
if(flag)
{
th = udiv(il, ih, base, tl, &x);
flag = FALSE;
}
else
{
ih = udiv(tl, th, base, il, &x);
flag = TRUE;
}
o++ = Vec[x];
if(th == tl || ih == il) break;
}
o++ = 0;
reverse(po);
return po;
}
// 阶乘,可以精确计算200以内的阶乘,定义更大的DIGITLEN可以实现更大数字的阶乘
LINT jiecheng(LINT l, LINT_B x)
{
LINT h = l + 1, tl, th;
LINT_B i = 1, t[DIGITLEN];
BOOL flag = TRUE;
l = 1;
th = tl = t;
while(i <= x)
{
if(flag) {flag = FALSE; th = umul( l, h, i++, tl);}
else {flag = TRUE; h = umul(tl, th, i++, l);}
}
if(!flag) h = copy(tl, th, l);
return h;
}
int main()
{
char buf[512];
LINT_B a[DIGITLEN], b[DIGITLEN], c[DIGITLEN], i = 5;
LINT al, ah, bl, bh, cl, ch;
ah = al = a, bh = bl = b, ch = cl = c;
while(i < 30)
{
printf("%d! ", i);
ch = add(al, ah, bl, jiecheng(bl, i), cl);
ah = copy(cl, ch, al);
i += 11;
if(i < 30) printf("+ ");
}
printf("= %s\n", LInt2Str(buf, al, ah, 10, FALSE));
return 0;
}
以上就是关于用C语言编写一个求定积分的程序,用它分别求以下5个函数的定积分:全部的内容,包括:用C语言编写一个求定积分的程序,用它分别求以下5个函数的定积分:、C语言程序:求1+3+5+…+99、C语言编写程序求5行5列矩阵的上三角元素之积。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)