當前位置:首頁 » 編程語言 » 差分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));
}
熱點內容
2008編程入門經典 發布:2025-07-15 18:58:44 瀏覽:602
艾派密碼是什麼 發布:2025-07-15 18:47:40 瀏覽:587
密碼鎖如何在裡面開門 發布:2025-07-15 18:35:00 瀏覽:520
額溫演算法 發布:2025-07-15 18:18:14 瀏覽:727
ie客戶端事件腳本執行異常 發布:2025-07-15 18:10:13 瀏覽:24
自製壓縮兔糧 發布:2025-07-15 18:09:25 瀏覽:11
腳本病毒的危害 發布:2025-07-15 18:04:00 瀏覽:259
簡單的解壓 發布:2025-07-15 17:42:25 瀏覽:148
lol最強腳本 發布:2025-07-15 17:41:45 瀏覽:290
安卓手機測量工具在哪裡 發布:2025-07-15 17:41:39 瀏覽:241