c語言演算法描述
可行性,確定性,有窮性,擁有足夠的情報(擁有一個或多個輸出,有零個或多個輸入)
『貳』 c語言中什麼是演算法有哪些描述演算法的例子
1、有窮性(有限性)。任何一種提出的解題方法都是在有限的操作步驟內可以完成的。
如果在有限的操作步驟內完不成,得不到結果,這樣的演算法將無限的執行下去,永遠不會停止。除非手動停止。例如操作系統就不具有有窮性,它可以一直運行。
2、一個演算法應該具有以下七個重要的特徵:
1)有窮性(finiteness)
演算法的有窮性是指演算法必須能在執行有限個步驟之後終止
2)確切性(definiteness)
演算法的每一步驟必須有確切的定義;
3)輸入項(input)
一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定出了初始條件;
4)輸出項(output)
一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果.沒有輸出的演算法是毫無意義的;
5)可行性(effectiveness)
演算法中執行的任何計算步都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成;
6)
高效性(high
efficiency)
執行速度快,佔用資源少;
7)
健壯性(robustness)
健壯性又稱魯棒性,是指軟體對於規范要求以外的輸入情況的處理能力。所謂健壯的系統是指對於規范要求以外的輸入能夠判斷出這個輸入不符合規范要求,並能有合理的處理方式。
『叄』 C語言簡單演算法介紹
第一步:p=1,第二步:i=2,第三步:應該是p*i賦值給p,所以p*i=1*2 賦值給p
也就是現在的p=1*2,第四步:把i+1賦值給i,此時i=3,第五步:判斷i是否大於五,沒有返回到第三步:把p*i賦值給p,所以p*i=1*2*3 賦值給p
也就是現在的p=1*2*3,第四步:把i+1賦值給i,此時i=4,第五步:判斷i是否大於五,沒有返回到第三步:把p*i賦值給p,所以p*i=1*2*3*4 賦值給p
也就是現在的p=1*2*3*4,第四步:把i+1賦值給i,此時i=5,第五步:判斷i是否大於五,沒有返回到第三步:把p*i賦值給p,所以p*i=1*2*3*4*5 賦值給p
也就是現在的p=1*2*3*4*5,第四步:把i+1賦值給i,此時i=6,第五步:判斷i是否大於五,有,結束。此時p=1*2*3*4*5=5!
這樣i+1就是為了使得後面的乘3,乘4,乘5做准備的!
『肆』 c語言演算法的四種描述方法的特點
列表:普通的數組形式、鏈表形式隊列:先進先出,刪除在隊首,添加在隊尾棧:後進先出,添加和刪除都在棧頂實現線性的數據結構的主要特點是首無前驅,尾無後繼,中間的元素有唯一的前驅和後繼
『伍』 請寫下以下c語言的演算法描述
#include "stdio.h"
int myfun(int (*p)[4])
{
int i,j,k;
for(i=0;i<4;p[i][3-i]=p[i][i++]=1); //將二條對角線的元素全部置為1
for(k=i=0;i<4;i++) //求所有元素的和
for(j=0;j<4;k+=p[i][j++]);
return k-8; //返回值為除8個對角線(值均為1)以外所有元素的和
}
void main(void){
int a[4][4],i,j,k,t=2; //t=2,結合下面的while循環,循環2次
while(t--)
{
printf("請輸入16個數值作為4*4的數組\n");
for(i=0;i<4;i++) //輸入4*4數組
for(j=0;j<4;scanf("%d",&a[i][j++]));
k=myfun(a); //調用函數
for(i=0;i<4;i++){ //輸出調用後的數組
for(j=0;j<4;printf("%3d",a[i][j++]));
printf("\n");
}
printf("其餘元素之和為:%d\n",k); //輸出返回值,除二條對角線以外各元素的和
}
}
『陸』 c語言問題: 什麼是演算法試從日常生活中找3個例子,描述它們的演算法。 詳細點,謝謝!
c語言中的演算法是指:一系列解決問題的清晰指令,用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。通俗說就是解決問題的方法和步驟。
描述演算法的例子:
問題:從上海去到北京。
其中的演算法:做汽車、做飛機、或者徒步。
問題:喝茶。
其中的演算法:先找到茶葉,再燒一壺開水,然後將茶葉放到杯子里,將開水倒入杯中,等茶葉泡好。
問題:開車。
其中的演算法:首先要打開車門,駕駛員坐好,插上車鑰匙,發動汽車。
『柒』 C語言編程程序的演算法描述
#include<stdio.h>
#define N 4
int set1(i?nt a[][N],int n)
{
int i,j,sum=0;
for(i=0;i<n;i++)
{
//將二維數組中的對角線全部設置數為1
a[i][i]=1;
a[n-1-i][i]=1;
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(!(i==j ||i+j==n-1))
{
sum+=a[i][j];//求數組中除對角線以外所有元素之和
}
return sum;
}
void main()
{
int n=4,a[N][N],i,j,sum;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);//聲明一個數組,並給它賦值
sum=set1(a,n);//調用set1()函數,重新設置數組中元素
printf("%d \n",sum);
}
希望對你有幫助,望採納,祝你學習愉快
『捌』 c語言程序設計的演算法用偽代碼描述過程是怎樣的
就是不是很符合C語言的編碼規范,把演算法的過程描述出來,可以用中文,英文,或者不全的代碼。都可以