當前位置:首頁 » 編程語言 » 怎麼用c語言做偽碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

怎麼用c語言做偽碼

發布時間: 2022-06-30 13:16:03

A. c語言的偽碼怎麼寫 有什麼規則嗎

其實要判斷閏年很容易,就是一個語句if(((year%4==0)&&(year%100!=0))||(year%400==0))如果成立就是閏年了,如果你要更詳細的,或是其他的內容,請追問

B. 用c語言做一個登錄窗口,下面是偽碼,怎麼實現

#include<stdio.h>
#include<stdlib.h>
#include"string.h"

voidmain()
{
charname[10];
intpassword;
printf("請輸入用戶名和密碼! ");
scanf("%s",name);
scanf("%d",&password);
if((strcmp(name,"hh")!=0)&&(password==123))
printf("用戶名錯誤! ");
if((strcmp(name,"hh")==0)&&(password!=123))
printf("用戶名錯誤! ");

}

C. 如何用C的代碼寫偽代碼

:所謂偽代碼,就是那些用來表示演算法的文欄位落。
你想寫一個程序,不可能就直接寫代碼,你得先寫思路,用來暫時記錄你思路的文字元號一般用簡單的詞語來。
比如:
初始化
字元串
A;
輸入字元串
A;
如果
檢測字元串
A
成功

打開文件

D. 請大神幫忙設計一個C語言代碼和偽代碼

設計思路:
程序分二步做,用戶輸入數組和查找比較輸入結果。
首先輸入用循環方式把用戶輸入的數保存在A數組中,直到按下CTRL+Z結束輸入。
最後把所有的數逐一比較查找,主要方法是比max變數還大的數,放入max,次大變數max2等於先前max值,其中還要考慮到一個數等於max和大於max2的情況。

#include <stdio.h>
#include <stdlib.h>

void main( )
{
int A[100], n, val, max, max2;

n = 0;
//CTRL + Z 終止輸入
while (scanf("%d", &val) != EOF)
{
A[n] = val;
n++;
if (n >= sizeof(A)) break;
}

//比較查找最大和次大數
max2 = max = 0;
for (int i = 0; i < n; i++)
{
if (A[i] > max)
{
max2 = max;
max = A[i];
}
else if (A[i] != max && A[i] > max2)
{
max2 = A[i];
}
}
printf("max=%d, max2=%d", max, max2);
}

這段代碼不知道是不是按你的要求來,如果你不要用戶輸入數組,直接把數組輸入在代碼中,那代碼就更簡單了,你可以自己在這個代碼基礎上改下。

E. 用C語言描述的偽代碼怎麼看,怎麼寫

偽代碼主要是為了方便各種語言來實現,像你這里的用C實現就是:

structNode{
intnumber;
structNode*Next;
};

ElementType :元素類型

Element:元素名

Position :位置,定義Next指針


QQ已私信給你~

F. c語言程序設計的演算法用偽代碼描述過程是怎樣的

偽代碼(Pseudocode)是一種演算法描述語言。使用偽代碼的目的是為了使被描述的演算法可以容易地以任何一種編程語言(Pascal,C,Java,etc)實現。因此,偽代碼必須結構清晰、代碼簡單、可讀性好,並且類似自然語言。 介於自然語言與編程語言之間。
它以編程語言的書寫形式指明演算法的職能。相比於程序語言(例如Java, C++,C, Dephi 等等)它更類似自然語言。它是半形式化、不標準的語言。我們可以將整個演算法運行過程的結構用接近自然語言的形式(這里,你可以使用任何一種你熟悉的文字,中文,英文 等等,關鍵是你把你程序的意思表達出來)描述出來. 使用偽代碼, 可以幫助我們更好的表述演算法, 不用拘泥於具體的實現.
人們在用不同的編程語言實現同一個演算法時意識到,他們的實現(注意:這里是實現,不是功能)很不同。尤其是對於那些熟練於不同編程語言的程序員要理解一個(用其他編程語言編寫的程序的)功能時可能很難,因為程序語言的形式限制了程序員對程序關鍵部分的理解。這樣偽代碼就應運而生了。
當考慮演算法功能(而不是其語言實現)時,偽代碼常常得到應用。計算機科學在教學中通常使用虛擬碼,以使得所有的程序員都能理解。
例如,類Pascal語言的偽代碼的語法規則是: 在偽代碼中,每一條指令佔一行(else if,例外)。指令後不跟任何符號(Pascal和C中語句要以分號結尾)。書寫上的「縮進」表示程序中的分支程序結構。這種縮進風格也適用於if- then-else語句。用縮進取代傳統Pascal中的begin和end語句來表示程序的塊結構可以大大提高代碼的清晰性;同一模塊的語句有相同的縮進量,次一級模塊的語句相對與其父級模塊的語句縮進。
偽代碼只是像流程圖一樣用在程序設計的初期,幫助寫出程序流程。簡單的程序一般都不用寫流程、寫思路,但是復雜的代碼,最好還是把流程寫下來,總體上去考慮整個功能如何實現。寫完以後不僅可以用來作為以後測試,維護的基礎,還可用來與他人交流。但是,如果把全部的東西寫下來必定可能會讓費很多時間,那麼這個時候可以採用偽代碼方式。比如:

G. C語言中的「偽碼」到底是啥

要耐心看啊!別看字多,容易讀的!!!要分成3段讀,不要一口氣看完!
1.scanf就是輸入一個數然後回車結束。聽不懂不好意思、
別理

------
---------------------------------------------------------------------
舉個例子:
int
i;
//定義i
然後我們提示用戶輸入,
printf("請輸入一個數:");
接著,我們使用scanf("%d",&i);
輸入
完數
後,我們跟用戶說聲你剛才輸的數
printf("您剛才輸入的數是%d",i);
----------------------------------------------------------------------------
分析:
首先定義int
i是沒有問題要問的。
之後用printf也是沒有問題要問的,要問的是在printf之後。
電腦執行到printf看到後面的
scanf函數
,便停了下了,等待用戶輸入。所以在一個
c語言程序
里,
有scanf函數就要停下來等待用戶輸入。但是用戶輸入完後要怎麼跟電腦說:」我輸入完了「?
就是用scanf函數本身要
按回車鍵
的功能。
scanf函數意思」總結「:電腦碰到scanf要停下,等待用戶輸入,用戶輸入後按回車告訴
電腦輸入
ok,電腦
繼續執行
下面的代碼。
樓主你說的沒有設置,是不可能設置的。
2.這個問題簡單。
scanf("%d",&i);
首先我們輸入88,這之後一個空格,很好,你沒有用回車鍵告訴電腦,而是用空格鍵。
88之後空格,然後不管你輸入多少,比如88
544還是88
9990,或者在一個空格88
878
897
這些數字里,
翻譯器
只取88,為什麼呢?其實空格和回車差不多,講講區別吧!
空格:我們輸入空格之後,可以繼續輸入數字,不管是多少,都可以。
回車:而我們輸入回車後,電腦就立即把回車鍵之前你所寫的看做數,就如,88然後回車,電腦把回車之前的88看做用戶所輸入的數。但是,如果包含空格鍵,直接把後面的數省略!就如:
88
99,88後面有空格,空格和99將被忽略。
講了這么多,總而言之,輸入88,然後按空格的時候,電腦已經把88看做一個數了,所以後面的99是另一個數,所以不寫入&i。
擴展知識:如果要輸入倆個數甚至n個數,代碼如下:
#include
"stdio.h"
main()
{
int
i;
int
a;
pirntf("請輸入倆個數(輸入第二個數用空格鍵隔開!)");
scanf("%d
%d",&i,&a);
printf("這倆個數分別是:%d和%d",i,a);
}
3.上面已經說了,空格和回車差不多個功能,按空格時電腦把前面所輸入的看作是數,
例如輸入88然後空格,然後99,空格前的88已經賦給i了,99不能賦值,直接忽略。
不過,樓主是空格空格,但是空格之前沒有用戶所輸入的,等於沒有。所以給88.
----------------------------------------------------------------------------------------------------------------------
如果是新手,可以看擴展知識,裡面有一個錯誤,大家去找找;如果是高手,就可以忽略這個錯誤。

H. C語言,偽代碼問題!!!求幫助,感激!

因為我們看到一些講解演算法的書很多都用偽代碼讓很多人很痛苦,因為偽代碼跟能運行的程序是有很大區別的。我覺得還是看你面對的受眾是些什麼人了,如果是一些學生的話我覺得偽代碼還可以接受,但如果是實用性要求比較高,還是不太贊同使用偽代碼。你看看國外那些好一點的書籍直接提供源代碼的多於偽代碼

I. c語言偽碼書寫的規范是什麼

偽碼書寫可以參考C代碼規范。
1.
1.1符號命名規則
1.1.1符號名包括模塊名、常量名、標號名、子程序名等。這些名字應該能反映它所代表的實際東西,具有一定的意義,使其能夠見名知義,有助於對程序功能的理解。命名採用匈牙利命名法。規則如下:
(1)所有宏定義、枚舉常數和const變數,用大寫字母命名。在復合詞里用下劃線隔開每個詞。
(2)復合詞中每個單詞的第一個字母大寫。除了規則5.1.1.1以外,避免使用下劃線。
(3)類、類型定義和枚舉型名的第一個字母大寫。
(4)函數名是復合詞的,第一個詞採用全部小寫,隨後每個單詞採用第一個字母大寫,其它字母小寫方式;如果是單個詞的,採用全部小寫方式。
(5)循環變數可採用i,
j,
k等,不受上述規則限制。
(6)
類的成員變數應採用m_開頭。
(7)
全局變數詞頭為g_

(8)
臨時變數詞頭為tmp_

(9)
對結構體內的變數命名,
遵循變數的具體含義命名原則
(10)用小寫字母的前綴表示變數的類型,前綴的下一個字母用大寫。

1
詞頭
類型
詞頭
類型
ch
char
l
long
i
integer
u
unsigned
b
boolean
p
pointer
f
float
lp
long
pointer
d
double
s
string
st
structure
sz
ASCII
string
by
byte
n
short
int
H
handle
x,y
分別為x,y坐標
dw
DWORD
fn
function

2
詞頭
變數名
詞頭
變數名
task
task
sig
signal
sb
binary
semaphores
wd
watchdog
sm
mutual
exclusion
tm
timer
sc
counting
semaphores
msg
message
pipe
pipe
例:
#define
ARRAY_SIZE
24
/*規則5.1.1.1*/
int
g_iFlag;
class
MyClass
/*規則5.1.1.3*/
{
};
void
someFunc(
)
/*規則5.1.1.2和5.1.1.4*/
{
int
nArray[ARRAY_SIZE];
unsigned
char
uchByte;
char
szName[
];
char
*pszName
=
szName;
}
(11)有些詞頭(如p和u)可以和其它詞頭組合。
例:WDOG_ID
wdId;
WDOG_ID
g_wdId;
/*全局watchdog
Id,故以g_開頭*/
1.1.2名字的長度一般不要過長或過短。過長的名字會增加工作量,使程序邏輯流程變得模糊;過短的名字無法表達符號的實際意義。約定長度范圍:3-31;
1.2數據和函數說明
1.2.1數據說明次序應當規范化,使數據屬性容易查找,也有利於測試、排錯和維護。說明的先後次序應固定,應按邏輯功能排序,邏輯功能塊內建議採用下列順序:整型說明、實型說明、字元說明、邏輯量說明。
1.2.2如果設計了一個復雜的數據結構,應當通過注釋對其變數的含義、用途進行說明。
1.2.3在函數的聲明中使用異常聲明。
如:void
f()
throw(toobig,
toosmall,
divzero);
在聲明一個函數時,將它所拋出的異常列出,便於函數的使用者了解可能會發生哪些異常。
1.3
程序注釋
1.3.1程序注釋是程序員與日後的程序讀者之間通信的重要手段之一,注釋分為文件注釋、函數注釋和功能注釋。
1.3.2正規程序的注釋應注意:
——注釋行的數量佔到整個源程序的1/3到1/2。
1.3.3文件注釋位於整個源程序的最開始部分,注釋後空兩行開始程序正文。它包括:
——程序標題。
——目的、功能說明。
——文件作者、最後修改日期等說明。
例:
./********************************************************************
(空一行)
標題:
Demo.c
功能:
測試VxWorks的各種系統調用.
說明:
該程序測試各種VxWorks的系統調用函數。包括任務(taks)的創建、掛起及任務間通過信號燈實現同步,通過消息隊列
進行通訊。
程序創建了兩個任務:一個高優先順序的任務和一個低優先順序的任務。兩個任務間通過一個二進制的信號燈進行同步,通過消息隊列進行通訊。
當前版本:
x.x
修改信息:
2000.06.05
John,
Initial
Version
2000.07.05
Tom,
Bug
xxxx
fixed
**************************************************************/
(空2行,開始程序正文)
1.3.4
函數注釋通常置於每函數或過程的開頭部分,它應當給出函數或過程的整體說明對於理解程序本身具有引導作用。一般包括如下條目:
——模塊標題。
——有關本模塊功能和目的的說明。
——調用格式
——介面說明:包括輸入、輸出、返回值、異常。
——演算法。如果模塊中採用了一些復雜的演算法。
例:
file://(/注釋開頭應和上一函數空兩行)
(注釋開頭與上一函數最後一行間隔兩行)
/********************************************************************
標題:assignmentComplete
功能:BSC=>MSC消息生成函數,生成assignment_complete指配完成消息(BSMAP消息)
.
格式:
int
assignmentComplete(int
iCellId,
int
iServiceChannnelNum,
char
*pszMSGData)
throw(exception1,
exception2)
輸入:
int
iCellId:
MS所在的小區識別
iCellId取值:0x00-——0xff
int
iServiceChannnelNum:MS所佔的業務信道號碼
輸出:
char
*
pszMSGData:指配完成消息數據
返回值:
0x00正常
異常:exception1異常情況1,
exception2異常情況2
********************************************************************/
(
注釋後直接開始程序正文,不空行。)
1.3.5功能性注釋嵌在源程序體中,用於描述其後的語句或程序段做什麼工作,也就是解釋下面要做什麼,或是執行了下面的語句會怎麼樣。而不要解釋下面怎麼做,因為解釋怎麼做常常與程序本身是重復的。
例:
/*把
amount
加到
total中*/
total
=
amount
+
total;
這樣的注釋僅僅是重復了下面的程序,對於理解它的工作並沒有什麼作用。而下面的注釋,有助於讀者理解。
/*將每月的銷售額amount加到年銷售額total中*/
total
=
amount
+
total;
1.4
函數編寫應盡可能短小精悍,一般不超過兩屏,以便於調試和理解。
1.5語句結構
為保證語句結構的清晰和程序的可讀性,在編寫軟體程序時應注意以下幾個方面的問題:
——在一行內只寫一條語句,並採用空格、空行和移行保證清楚的視覺效果。
——每一個嵌套的函數塊,使用一個TAB縮進(可以設定為4個空格),大括弧必須放在條件語句的下一行,單獨成一行,便於匹對:
如,有一段程序如下:
for(i=1;i<n-1;i++){
t=1;
for(j=i+1;j<n;j++){
if(a[j]<a[t]
)
t=j;
if(t!=i
){work=a[t];a[t]=a[I];a[I]=work;}}}
應寫為
for(
i=1;
i<n-1;
i++)
{
t=1;
for(j
=
i+1;
j<n;
j++)
{
if(a[i]<a[j])
t=j;
if(t!=1)
{
.5.
Q/ECC/BJ
010—2001
work=a[t];
a[t]=a[i];
a[i]=work;
}
}
}
——文件之中不得存在無規則的空行,比如說連續十個空行。
一般來講函數與函數之間的空行為2-3行;
在函數體內部,在邏輯上獨立的兩個函數塊可適當空行,一般為1-2行。
——程序編寫首先應考慮清晰性,不要刻意追求技巧性而使得程序難以理解。
——每行長度盡量避免超過屏幕寬度,應不超過80個字元。
——除非對效率有特殊要求,編寫程序要作到清晰第一,效率第二。
——盡可能使用函數庫。
——盡量用公共過程或子程序去代替重復的功能代碼段。要注意,這個代碼應具有一個獨立的功能,不要只因代碼形式一樣便將其抽出組成一個公共過程或子程序。
——使用括弧清晰地表達算術表達式和邏輯表達式的運算順序。如將
x=a*b/c*d
寫成
x=(a*b/c)*d可避免閱讀者誤解為x=(a*b)/(c*d)。
——避免不必要的轉移。
——避免採用過於復雜的條件測試。
——避免過多的循環嵌套和條件嵌套。
——建議不要使用
*=,^=,
/=等運算符。
——一個函數不要超過200行。一個文件應避免超過2000行。
——盡量避免使用go
to語句。
——避免採用多賦值語句,如x
=
y
=
z
;
——不鼓勵採用?:操作符,如z
=
(a>b)?a:b;
——不要使用空的if
else
語句。如
if(cMychar
>=
『A』)
if(cMychar
<=
『Z』)
printf(「This
is
a
letter
\n」);
else
printf(「This
is
not
a
letter
\n」);
else到底是否定哪個if容易引起誤解。可通過加{}避免誤解。
——盡量減少使用「否定」條件的條件語句。如:

if(
!(
(cMychar<』0』)
||
(cMychar>』9』)
)
)
改為if(
(cMychar>=』0』)
&&
(cMychar<=』9』)
)

J. 怎麼把這些偽代碼用c語言編程,求大神

這本身已經是一個C語言的代碼了:
int SearchSequential(int st[],int n,int k)
//在有n個元素st[1]~st[n]的int數組中查找值為k的下標,找到則返回下標值,未找到則返回0