1. 演算法和程序的區別是什麼
演算法是處理解決問題的思路及辦法,程序語言是按照一定語法把演算法表達來。
演算法是一系列解決問題的清晰指令,也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。演算法常常含有重復的步驟和一些比較或邏輯判斷。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間復雜度與時間復雜度來衡量。
程序語言(programming language),是用來定義計算機程序的形式語言。它是一種被標准化的交流技巧,用來向計算機發出指令。一種計算機語言讓程序員能夠准確地定義計算機所需要使用的數據,並精確地定義在不同情況下所應當採取的行動。
2. 數據結構演算法與c語言的關系
數據結構,就是講述的數據的存儲結構,並模擬出多種形式,比如說線性表和樹,圖等等,C語言是說給計算機聽的一種語言,只有計算機聽的懂,演算法就是說話的技巧了,會說話的人幾句話就能把很多事情表達出來,不累贅不繁瑣。
3. C語言的高精度演算法與程序
。。
高精度加法:
#include <stdio.h>
main()
{ int a[240]={0},b[240]={0},c[241]={0};
int i,ka,kb,k;
char a1[240],b1[240];
gets(a1);ka=strlen(a1);
gets(b1);kb=strlen(b1);
if(ka>=kb) k=ka;
else k=kb;
for(i=0;i<ka;i++) a[i]=a1[ka-i-1]-'0';
for(i=0;i<kb;i++) b[i]=b1[kb-i-1]-'0';
for(i=0;i<k;i++)
{c[i]=a[i]+b[i]+c[i];<br> c[i+1]=c[i+1]+c[i]/10;<br> c[i]=c[i]%10;<br> }
if(c[k]) k++;
for(i=k-1;i>=0;i--) printf("%d",c[i]);
system("pause");
}
高精度減法。。
#include <stdio.h>
main()
{ int a[240]={0},b[240]={0};
int i,la,lb;
char a1[240],b1[240];
gets(a1);la=strlen(a1);
gets(b1);lb=strlen(b1);
for(i=0;i<la;i++) a[i]=a1[la-i-1]-'0';
for(i=0;i<lb;i++) b[i]=b1[lb-i-1]-'0';
if(la>lb)
{for(i=0;i<la;i++)<br> {if(a[i]<b[i])<br> {a[i+1]--; <br> a[i]+=10;<br> }
a[i]=a[i]-b[i];
}
while(!a[la-1])
{la--;<br> if(!la) {printf("0"); break;}
}
for(i=la-1;i>=0;i--) printf("%d",a[i]);
}
else
{for(i=0;i<lb;i++)<br> {if(b[i]<a[i])<br> {b[i+1]--; <br> b[i]+=10;<br> }
b[i]=b[i]-a[i];
}
while(!b[lb-1])
{lb--;<br> if(!lb) {printf("0"); break;}
}
printf("-");
for(i=lb-1;i>=0;i--) printf("%d",b[i]);
}
system("pause");
}
高精度乘法:
#include<stdio.h>
#include<string.h>
int a[2505],b[2505],x[5010]={0};
main()
{ int i,j,k,lena,lenb,t;
char temp[10010];
scanf("%s",temp);
lena=strlen(temp);
if(lena%4)
{ t=4-lena%4;
for(i=t+lena-1;i>=t;i--) temp[i]=temp[i-t];
temp[t+lena]='\0';
lena+=t;
for(i=0;i<t;i++) temp[i]='0';
}
for(i=0,j=1;i<lena;i+=4,j++)
a[j]=(temp[i]-'0')*1000+(temp[i+1]-'0')*100+(temp[i+2]-'0')*10+temp[i+3]-'0';
lena=j;
scanf("%s",temp);
lenb=strlen(temp);
if(lenb%4)
{
t=4-lenb%4;
for(i=t+lenb-1;i>=t;i--) temp[i]=temp[i-t];
temp[t+lenb]='\0';
lenb+=t;
for(i=0;i<t;i++) temp[i]='0';
}
for(i=0,j=1;i<lenb;i+=4,j++)
b[j]=(temp[i]-'0')*1000+(temp[i+1]-'0')*100+(temp[i+2]-'0')*10+temp[i+3]-'0';
lenb=j;
for(i=lena-1;i>0;i--)
for(j=lenb-1;j>0;j--)
{
t=i+j;
x[t]+=a[i]*b[j];
x[t-1]+=x[i+j]/10000;
x[t]=x[t]%10000;
}
while(!x[i]) i++;
printf("%d",x[i]);
i++; for(;i<lena+lenb-1;i++)
if(x[i]>1000) printf("%d",x[i]);
else
if(x[i]>100) printf("0%d",x[i]);
else
if(x[i]>10) printf("00%d",x[i]);
else printf("000%d",x[i]);
system("pause");
}
。。
4. C語言與演算法和數據結構分別有什麼關系
數據結構的主要作用是幫助你提升自己的編程思維!使你編寫程序的時候有一個好的思維和框架!使你寫的代碼和程序有一個好的框架!數據結構研究的是數據的邏輯結構、存儲結構(物理結構)和數據的運算.其中的數據運算就是指演算法
演算法只是具體的實現步驟的指令集合!但是演算法也是數據結構最重要的一部份!設計一個好的演算法可以提高自己程序的運行效率!(演算法不一定要求能夠在計算機上直接運行,但程序必須要求能在計算機中運行)
C語言只是對演算法或者數據結構的描述!描述數據結構和演算法不局限於C語言,也可以是C++語言和其他的計算機語言甚至也可以用人的自然語言!
所以只是說學習好C語言能夠使自己學習的數據結構理論更好的在計算機中描述和表達!
5. 計算機演算法和C語言編程的關系
通俗點的說法,可以把解決問題方法的過程叫做演算法。有了演算法之後,可以讓張三、李四或者是其他人,去按照這個演算法去解決問題。那麼 C語語言(還有C#、java、VB等) 在這里可以理解成張三、李四去實現演算法的人。
6. 正學C語言,不明白程序和演算法有什麼區別我理解的是演算法是解決問題的步驟,可是看看程序似乎也是如此啊
有一句經典的話:程序=演算法+數據結構。演算法是解決問題的步驟,演算法是一種思想。比如:計算1加到100的和,那麼(1)你可以從1開始一個一個的加,直到100;(2)(1+100)*50;這兩種解決問題的方法就是演算法。而這種描述計算機不能理解,因此,可以用C語言或其它語言把它寫出來,讓它可以在計算機上運行,這就是一個程序。程序可以理解為對演算法的一種包裝,目的就是讓它可以在計算機上能運行。
7. C語言與演算法的區別是什麼
C語言是一門編程語言
而演算法是指解題方案的准確而完整的描述
區別的話,舉個例子,有一個演算法,他既可以在C語言上實現,也可以在B語言,java,c++,python上實現。演算法是程序設計的一部分,而編程語言就是實現演算法的工具
8. C語言中演算法是程序的什麼
程序設計=數據結構+演算法。所謂演算法是指解決問題的具體方法是什麼。而數據結構是指所要解決的問題在計算機中的表示形式。所以在學C語言的時候只要先掌握演算法是如何實現的,即能夠把解決問題的方法用C語言描述出來,且描述的「好」即可.具體關於演算法的含義,有一門課叫「數據結構」有機會可以自學,計算機專業這門課都是必修課。
9. 數據結構演算法(C語言描述)和C或C++程序具體什麼關系啊
用C語言或C++等語言寫程序時,經常要用到一些通用的數據結構(比如隊列、棧、鏈表等)和通用的演算法(比如快速排序演算法、堆排序演算法、樹或圖的遍歷演算法等),這些都在數據結構演算法中有描述。此外,在數據結構演算法中還能學到對程序進行優化的知識,有利於編寫出更加優秀的程序。
10. 根據題意編寫演算法和用C語言編寫程序有什麼區別唯一的區別只是演算法中可以包含中文漢字嗎
演算法是靈魂,語言是工具,舉個不像樣的例子,問你3+5等於幾,你可以用具象的3個蘿卜+5個蘿卜得知一共8個蘿卜,但也可以用抽象的阿拉伯數字3+5=8。演算法思想是一樣的,但所使用的計算工具不同。編程語言也一樣,演算法是靈魂,我有了演算法,可以用任何一種語言來實現,C,Java,C#,C++ 不知道你明白沒有。如果你是學習軟體編程的,一開始會學一個語言來入門,學到後來一定會學習《數據結構》它就是一些演算法思想的歸納總結。如果繼續深挖你還要學 線性代數,數學分析法,圖論等