当前位置:首页 » 编程语言 » 差分c语言

差分c语言

发布时间: 2023-01-16 00:02:47

c语言二差分算法问题

没有初始化low,就会报运行时错误,初始化一下low就好了
#include "stdio.h"
#define List_Size 20
struct RecordType
{
int key; //简单查找
char otherkey;
};
struct RecordList
{
RecordType r[List_Size+1];
int length;
}list1,*p;
void init_list()
{

int i; //初始化数据
p=&list1;
for(i=0;i<List_Size+1;i++)
{
p->r[i].key =i;
p->r[i].otherkey =i+1;
}
p->length =List_Size+1;

for(i=0;i<List_Size+1;i++) //确认初始化数据
{
printf("list.r[%d].key=%d,list.r[%d].otherkey=%d\n",i,p->r[i].key,i,p->r[i].otherkey);
}
printf("list.length=%d\n",p->length);
}
int BinSrch(RecordList L,int k) //二分差算法
{
int low,high,mid;
int i=0;
low = 0; //初始化low
high=L.length-1;
while(low<=high)
{
mid=(low+high)/2;
if(k==L.r[mid].key)
{
i=mid;break;
}
else
{
if(k < L.r[mid].key)
{
high=mid-1;
}
else
low=mid+1;
}
}
// if((low==high)&&(k!=L.r[mid].key))
// {
// return (0);
// }
return (i);
}
void main()
{
int result=0;
p=&list1;
init_list();
result=BinSrch(list1,7);
printf("the reslut=%d",result);
getchar();
}

Ⅱ 用c语言计算差分方程c(k+2)=1.025c(k+1)-0.4733c(k)+0.2385r(k+1)+0.2089r(k)

#include <stdio.h> int r(int k){ if(k<0)return 0; return 1;}double TC(int k){ if(k<=0)return 0; if(k==1)return 0.238; return 1.025*TC(k-1)-0.4733*TC(k-2)+0.2385*r(k-1)+0.2089*r(k-2);}void main(){ int i; for(i=0;i<=30;i++) printf("%lf\n",TC(i));}图发给你了

Ⅲ 用C语言画差分方程 C(K+2)=1.025C(K+1)-0.4733C(K)+0.2385R(K+1)+0.2089R(K)图象

#include <stdio.h>
#include <conio.h>

#define N 100

main()
{
int i;
double c[N+1];

FILE *fp;
fp=fopen("d:\\.txt","w");
if (!fp)
{
printf("File Open ERROR:\nPress any to exit:");
getch();
exit(1);
}

c[0]=0;
c[1]=0.238;
fprintf(fp,"0\t%g\n",c[0]);
fprintf(fp,"1\t%g\n",c[1]);

for (i=2;i<=N;i++)
{
c[i]=1.025*c[i-1]-0.4733*c[i-2]+0.2385*1+0.2089*1;
fprintf(fp,"%d\t%g\n",i,c[i]);
}
fclose(fp);
printf("OK");
getch();
}
得到数据文件.txt后用origin或excel进行作图。
注:
你的C(0)我直接用0代替,因为你的没有给全。

Ⅳ C语言解下面的差分方程,求大神指导哇!

求ax^2+bx+c=0方程的根:
(输入a回车,输入b回车,输入c回车,最后回车出结果)
#include<stdio.h>
#include<math.h>
main()
{
float
a,b,c,x1,x2;
printf("已知方程为:ax^2+bx+c=0.\n请输入a,b,c:");
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c>=0)
{
x1=(-b+(sqrt(b*b-4*a*c)))/2*a;

x2=(-b-(sqrt(b*b-4*a*c)))/2*a;

printf("x1=%f\nx2=%f\n",x1,x2);
}
else
printf("此方程无解\n");
getchar();
return
0;
}

Ⅳ 怎么用C语言实现向前向后差分算法

没有初始化low,就会报运行时错误,初始化一下low就好了
#include
"stdio.h"
#define
List_Size
20
struct
RecordType
{
int
key;
//简单查找
char
otherkey;
};
struct
RecordList
{
RecordType
r[List_Size+1];
int
length;
}list1,*p;
void
init_list()
{
int
i;
//初始化数据
p=&list1;
for(i=0;i<List_Size+1;i++)
{
p->r[i].key
=i;
p->r[i].otherkey
=i+1;
}
p->length
=List_Size+1;
for(i=0;i<List_Size+1;i++)
//确认初始化数据
{
printf("list.r[%d].key=%d,list.r[%d].otherkey=%d\n",i,p->r[i].key,i,p->r[i].otherkey);
}
printf("list.length=%d\n",p->length);
}
int
BinSrch(RecordList
L,int
k)
//二分差算法
{
int
low,high,mid;
int
i=0;
low
=
0;
//初始化low
high=L.length-1;
while(low<=high)
{
mid=(low+high)/2;
if(k==L.r[mid].key)
{
i=mid;break;
}
else
{
if(k
<
L.r[mid].key)
{
high=mid-1;
}
else
low=mid+1;
}
}
//
if((low==high)&&(k!=L.r[mid].key))
//
{
//
return
(0);
//
}
return
(i);
}
void
main()
{
int
result=0;
p=&list1;
init_list();
result=BinSrch(list1,7);
printf("the
reslut=%d",result);
getchar();
}

Ⅵ 怎么用C语言实现向前向后差分算法

没有初始化low,就会报运行时错误,初始化一下low就好了
#include "stdio.h"
#define List_Size 20
struct RecordType
{
int key; //简单查找
char otherkey;
};
struct RecordList
{
RecordType r[List_Size+1];
int length;
}list1,*p;
void init_list()
{

int i; //初始化数据
p=&list1;
for(i=0;i<List_Size+1;i++)
{
p->r[i].key =i;
p->r[i].otherkey =i+1;
}
p->length =List_Size+1;

for(i=0;i<List_Size+1;i++) //确认初始化数据
{
printf("list.r[%d].key=%d,list.r[%d].otherkey=%d\n",i,p->r[i].key,i,p->r[i].otherkey);
}
printf("list.length=%d\n",p->length);
}
int BinSrch(RecordList L,int k) //二分差算法
{
int low,high,mid;
int i=0;
low = 0; //初始化low
high=L.length-1;
while(low<=high)
{
mid=(low+high)/2;
if(k==L.r[mid].key)
{
i=mid;break;
}
else
{
if(k < L.r[mid].key)
{
high=mid-1;
}
else
low=mid+1;
}
}
// if((low==high)&&(k!=L.r[mid].key))
// {
// return (0);
// }
return (i);
}
void main()
{
int result=0;
p=&list1;
init_list();
result=BinSrch(list1,7);
printf("the reslut=%d",result);
getchar();
}

Ⅶ c语言 m = (++i,++j);怎么差分

赋值号右侧是一个逗号表达式,表达式执行时,顺序执行逗号分隔的式子,最后一个式子的结果为表达式取值,因此计算顺序为:

++i;
++j;
m=j;

Ⅷ 请教c程序 差分求导

我是学的c++,可能不太一样吧,但是大体应该是一样的。
那个调用的函数,被调用的那个long double dcmtcf(x,y),在c++中应该是在xy前面加上定义的类型的。long double dcmtcf(double x,double y)

Ⅸ 差分方程的C语言怎么编程

楼主写错了吧,后面两项偶可以合并了

Ⅹ 请问: 用C语言编写(TC) 差分方程:c(k+2)=1.025c(k+1)-0.4733c(k)+0.2385r(k+1)+0.2089r(k)

这是一道递归的题,计算的代码给你。图就不画了。

#include<stdio.h>

intr(intk)
{
if(k<0)return0;
return1;
}
doubleTC(intk)
{
if(k<=0)return0;
if(k==1)return0.238;
return1.025*TC(k-1)-0.4733*TC(k-2)+0.2385*r(k-1)+0.2089*r(k-2);
}
voidmain()
{
inti;
for(i=0;i<=30;i++)
printf("%lf ",TC(i));
}
热点内容
开票人的权限配置如何选择 发布:2025-07-15 14:51:22 浏览:130
怎么把服务器变成普通电脑 发布:2025-07-15 14:39:45 浏览:957
甘肃天水首选服务器地址云主机 发布:2025-07-15 14:34:32 浏览:715
我的世界java版好玩的外国服务器网址 发布:2025-07-15 14:20:17 浏览:110
电脑的外存储器 发布:2025-07-15 14:19:42 浏览:526
淘淘源码 发布:2025-07-15 14:12:07 浏览:881
自己的主机可以搭建服务器吗 发布:2025-07-15 14:09:58 浏览:775
atilinux 发布:2025-07-15 14:01:42 浏览:822
硬盘缓存越大越好 发布:2025-07-15 13:53:22 浏览:388
苹果六怎么设置密码锁 发布:2025-07-15 13:43:28 浏览:33