你這是數(shù)據(jù)結(jié)構(gòu)中的隊(duì)列問(wèn)題,而不是棧的問(wèn)題。head代表的是隊(duì)列頭,刪除時(shí)刪的是隊(duì)列頭元素,tail代表的是隊(duì)列尾,插入時(shí)插的是隊(duì)列尾元素
創(chuàng)新互聯(lián)為您提適合企業(yè)的網(wǎng)站設(shè)計(jì)?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強(qiáng)的網(wǎng)絡(luò)競(jìng)爭(zhēng)力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計(jì)及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到成都網(wǎng)站制作、成都做網(wǎng)站, 我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。
程序中這條語(yǔ)句是錯(cuò)誤的。中括號(hào)只有一半,那一半呢? *p_y=qp++head];
至于要求的主函數(shù),如果是隊(duì)列問(wèn)題還要涉及的是一般隊(duì)列還是循環(huán)隊(duì)列,因此沒(méi)法寫(xiě)給你。
C語(yǔ)言中主函數(shù)指的是main函數(shù)
主函數(shù)的兩個(gè)形參形式中的形參,允許從執(zhí)行環(huán)境中傳遞任意的多字節(jié)字符串(它們通常被稱(chēng)為命令行參數(shù)),各個(gè)指針 argv.. argv[argc-1] 指向每個(gè)這些字符串的第一個(gè)字符。
argv[0] 是指向一個(gè)表示用于執(zhí)行該程序自身的名字的空結(jié)尾多字節(jié)字符串(或者當(dāng)執(zhí)行環(huán)境不支持時(shí),為空字符串 "")的開(kāi)頭字符的指針。這些字符串是可以改動(dòng)的,雖然對(duì)它們的改動(dòng)并不會(huì)被傳回給執(zhí)行環(huán)境:比如可以用 std::strtok 來(lái)使用它們。由 argv 所指向的數(shù)組的大小至少為 argc+1,其最后一個(gè)元素 argv[argc] 保證為一個(gè)空指針。
擴(kuò)展資料:
C++繼承了C語(yǔ)言的大部分特性,因此保留了“程序總是從main函數(shù)開(kāi)始執(zhí)行,且總是默認(rèn)從main函數(shù)的return語(yǔ)句或結(jié)尾處結(jié)束運(yùn)行”這一傳統(tǒng),但是要注意,C++中的main函數(shù)要想作為程序執(zhí)行的出入口,必須寫(xiě)在全局(Global)范圍,不能寫(xiě)成某個(gè)結(jié)構(gòu)體或某個(gè)類(lèi)的成員。雖然main函數(shù)可以作為結(jié)構(gòu)體或者類(lèi)的成員函數(shù),但相應(yīng)地會(huì)失去作為程序出入口的功能。
C++中全局main函數(shù)的書(shū)寫(xiě)格式與C語(yǔ)言完全相同,功能也完全相同,且同一C++程序同樣只能有一個(gè)全局main函數(shù)。
可以定義兩個(gè)字符數(shù)組;
一個(gè)存放正確密碼;
另一個(gè)數(shù)組內(nèi)的內(nèi)容由用戶(hù)輸入;
調(diào)用strcmp函數(shù),若返回值為0則說(shuō)明兩者完全相等;
列子:
char a[10]="4488" //保存正確密碼
char b[10];
gets(b) //用戶(hù)輸入
if(strcmp(a,b)==0)
printf(" 匹配成功 ");
else
printf("匹配失敗");
更多追問(wèn)追答
追問(wèn)
#include
void main()
{
char a[10]="8844";
char b[10];
gets(b)
if(strcmp(a,b)==0)
printf("yes");
else
printf("no");
getch();
主調(diào)函數(shù),作為程序如口,進(jìn)行程序運(yùn)算,其中部分語(yǔ)句調(diào)用已定義的其他函數(shù)的一段程序。
被調(diào)函數(shù):被調(diào)用的函數(shù)為被調(diào)函數(shù),調(diào)用該函數(shù)的函數(shù)為主調(diào)函數(shù)。它一般在主調(diào)函數(shù)的程序體內(nèi)使用函數(shù)名調(diào)用,在外部進(jìn)行定義。所以在主調(diào)函數(shù)內(nèi)不存在函數(shù)定義,只存在名字。
舉例:
main()
{ float a,b;
int c;
scanf("%f,%f",a,b);
c=max(a,b);
printf("Max is %d\n",c);
}
int max(float x, float y)
{ float z;
z=xy?x:y;
return(z);
}
其中main(){}是主調(diào)函數(shù),因?yàn)槠渲小癱=max(a,b);”調(diào)用了 被調(diào)函數(shù) max。
程序中只能有個(gè) main(){}(即主函數(shù)),但可以有多個(gè) 子函數(shù)。
主函數(shù)可以調(diào)用子函數(shù),子函數(shù)可以相互調(diào)用。
被調(diào)用的函數(shù)為被調(diào)函數(shù),調(diào)用該函數(shù)的函數(shù)為主調(diào)函數(shù)。
函數(shù)的調(diào)用
8.4.1 函數(shù)調(diào)用的一般形式
前面已經(jīng)說(shuō)過(guò),在程序中是通過(guò)對(duì)函數(shù)的調(diào)用來(lái)執(zhí)行函數(shù)體的,其過(guò)程與其它語(yǔ)言的子程序調(diào)用相似。
C語(yǔ)言中,函數(shù)調(diào)用的一般形式為:
函數(shù)名(實(shí)際參數(shù)表)
對(duì)無(wú)參函數(shù)調(diào)用時(shí)則無(wú)實(shí)際參數(shù)表。實(shí)際參數(shù)表中的參數(shù)可以是常數(shù),變量或其它構(gòu)造類(lèi)型數(shù)據(jù)及表達(dá)式。各實(shí)參之間用逗號(hào)分隔。
8.4.2 函數(shù)調(diào)用的方式
在C語(yǔ)言中,可以用以下幾種方式調(diào)用函數(shù):
1. 函數(shù)表達(dá)式:函數(shù)作為表達(dá)式中的一項(xiàng)出現(xiàn)在表達(dá)式中,以函數(shù)返回值參與表達(dá)式的運(yùn)算。這種方式要求函數(shù)是有返回值的。例如:z=max(x,y)是一個(gè)賦值表達(dá)式,把max的返回值賦予變量z。
2. 函數(shù)語(yǔ)句:函數(shù)調(diào)用的一般形式加上分號(hào)即構(gòu)成函數(shù)語(yǔ)句。例如: printf ("%d",a);scanf ("%d",b);都是以函數(shù)語(yǔ)句的方式調(diào)用函數(shù)。
3. 函數(shù)實(shí)參:函數(shù)作為另一個(gè)函數(shù)調(diào)用的實(shí)際參數(shù)出現(xiàn)。這種情況是把該函數(shù)的返回值作為實(shí)參進(jìn)行傳送,因此要求該函數(shù)必須是有返回值的。例如: printf("%d",max(x,y)); 即是把max調(diào)用的返回值又作為printf函數(shù)的實(shí)參來(lái)使用的。在函數(shù)調(diào)用中還應(yīng)該注意的一個(gè)問(wèn)題是求值順序的問(wèn)題。所謂求值順序是指對(duì)實(shí)參表中各量是自左至右使用呢,還是自右至左使用。對(duì)此,各系統(tǒng)的規(guī)定不一定相同。介紹printf 函數(shù)時(shí)已提到過(guò),這里從函數(shù)調(diào)用的角度再?gòu)?qiáng)調(diào)一下。
【例8.3】
main()
{
int i=8;
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
}
如按照從右至左的順序求值。運(yùn)行結(jié)果應(yīng)為:
8
7
7
8
如對(duì)printf語(yǔ)句中的++i,--i,i++,i--從左至右求值,結(jié)果應(yīng)為:
9
8
8
9
應(yīng)特別注意的是,無(wú)論是從左至右求值, 還是自右至左求值,其輸出順序都是不變的, 即輸出順序總是和實(shí)參表中實(shí)參的順序相同。由于Turbo C現(xiàn)定是自右至左求值,所以結(jié)果為8,7,7,8。上述問(wèn)題如還不理解,上機(jī)一試就明白了。
8.4.3 被調(diào)用函數(shù)的聲明和函數(shù)原型
在主調(diào)函數(shù)中調(diào)用某函數(shù)之前應(yīng)對(duì)該被調(diào)函數(shù)進(jìn)行說(shuō)明(聲明),這與使用變量之前要先進(jìn)行變量說(shuō)明是一樣的。在主調(diào)函數(shù)中對(duì)被調(diào)函數(shù)作說(shuō)明的目的是使編譯系統(tǒng)知道被調(diào)函數(shù)返回值的類(lèi)型,以便在主調(diào)函數(shù)中按此種類(lèi)型對(duì)返回值作相應(yīng)的處理。
其一般形式為:
類(lèi)型說(shuō)明符 被調(diào)函數(shù)名(類(lèi)型 形參,類(lèi)型 形參…);
或?yàn)椋?/p>
類(lèi)型說(shuō)明符 被調(diào)函數(shù)名(類(lèi)型,類(lèi)型…);
括號(hào)內(nèi)給出了形參的類(lèi)型和形參名,或只給出形參類(lèi)型。這便于編譯系統(tǒng)進(jìn)行檢錯(cuò),以防止可能出現(xiàn)的錯(cuò)誤。
例8.1 main函數(shù)中對(duì)max函數(shù)的說(shuō)明為:
int max(int a,int b);
或?qū)憺?
int max(int,int);
C語(yǔ)言中又規(guī)定在以下幾種情況時(shí)可以省去主調(diào)函數(shù)中對(duì)被調(diào)函數(shù)的函數(shù)說(shuō)明。
1) 如果被調(diào)函數(shù)的返回值是整型或字符型時(shí),可以不對(duì)被調(diào)函數(shù)作說(shuō)明,而直接調(diào)用。這時(shí)系統(tǒng)將自動(dòng)對(duì)被調(diào)函數(shù)返回值按整型處理。例8.2的主函數(shù)中未對(duì)函數(shù)s作說(shuō)明而直接調(diào)用即屬此種情形。
2) 當(dāng)被調(diào)函數(shù)的函數(shù)定義出現(xiàn)在主調(diào)函數(shù)之前時(shí),在主調(diào)函數(shù)中也可以不對(duì)被調(diào)函數(shù)再作說(shuō)明而直接調(diào)用。例如例8.1中,函數(shù)max的定義放在main 函數(shù)之前,因此可在main函數(shù)中省去對(duì)max函數(shù)的函數(shù)說(shuō)明int max(int a,int b)。
3) 如在所有函數(shù)定義之前,在函數(shù)外預(yù)先說(shuō)明了各個(gè)函數(shù)的類(lèi)型,則在以后的各主調(diào)函數(shù)中,可不再對(duì)被調(diào)函數(shù)作說(shuō)明。例如:
char str(int a);
float f(float b);
main()
{
……
}
char str(int a)
{
……
}
float f(float b)
{
……
}
其中第一,二行對(duì)str函數(shù)和f函數(shù)預(yù)先作了說(shuō)明。因此在以后各函數(shù)中無(wú)須對(duì)str和f函數(shù)再作說(shuō)明就可直接調(diào)用。
4) 對(duì)庫(kù)函數(shù)的調(diào)用不需要再作說(shuō)明,但必須把該函數(shù)的頭文件用include命令包含在源文件前部。
8.5 函數(shù)的嵌套調(diào)用
C語(yǔ)言中不允許作嵌套的函數(shù)定義。因此各函數(shù)之間是平行的,不存在上一級(jí)函數(shù)和下一級(jí)函數(shù)的問(wèn)題。但是C語(yǔ)言允許在一個(gè)函數(shù)的定義中出現(xiàn)對(duì)另一個(gè)函數(shù)的調(diào)用。這樣就出現(xiàn)了函數(shù)的嵌套調(diào)用。即在被調(diào)函數(shù)中又調(diào)用其它函數(shù)。這與其它語(yǔ)言的子程序嵌套的情形是類(lèi)似的。其關(guān)系可表示如圖。
圖表示了兩層嵌套的情形。其執(zhí)行過(guò)程是:執(zhí)行main函數(shù)中調(diào)用a函數(shù)的語(yǔ)句時(shí),即轉(zhuǎn)去執(zhí)行a函數(shù),在a函數(shù)中調(diào)用b 函數(shù)時(shí),又轉(zhuǎn)去執(zhí)行b函數(shù),b函數(shù)執(zhí)行完畢返回a函數(shù)的斷點(diǎn)繼續(xù)執(zhí)行,a函數(shù)執(zhí)行完畢返回main函數(shù)的斷點(diǎn)繼續(xù)執(zhí)行。
【例8.4】計(jì)算s=22!+32!
本題可編寫(xiě)兩個(gè)函數(shù),一個(gè)是用來(lái)計(jì)算平方值的函數(shù)f1,另一個(gè)是用來(lái)計(jì)算階乘值的函數(shù)f2。主函數(shù)先調(diào)f1計(jì)算出平方值,再在f1中以平方值為實(shí)參,調(diào)用 f2計(jì)算其階乘值,然后返回f1,再返回主函數(shù),在循環(huán)程序中計(jì)算累加和。
long f1(int p)
{
int k;
long r;
long f2(int);
k=p*p;
r=f2(k);
return r;
}
long f2(int q)
{
long c=1;
int i;
for(i=1;i=q;i++)
c=c*i;
return c;
}
main()
{
int i;
long s=0;
for (i=2;i=3;i++)
s=s+f1(i);
printf("\ns=%ld\n",s);
}
在程序中,函數(shù)f1和f2均為長(zhǎng)整型,都在主函數(shù)之前定義,故不必再在主函數(shù)中對(duì)f1和f2加以說(shuō)明。在主程序中,執(zhí)行循環(huán)程序依次把i值作為實(shí)參調(diào)用函數(shù)f1求i2值。在f1中又發(fā)生對(duì)函數(shù)f2的調(diào)用,這時(shí)是把i2的值作為實(shí)參去調(diào)f2,在f2 中完成求i2!的計(jì)算。f2執(zhí)行完畢把C值(即i2!)返回給f1,再由f1返回主函數(shù)實(shí)現(xiàn)累加。至此,由函數(shù)的嵌套調(diào)用實(shí)現(xiàn)了題目的要求。由于數(shù)值很大,所以函數(shù)和一些變量的類(lèi)型都說(shuō)明為長(zhǎng)整型,否則會(huì)造成計(jì)算錯(cuò)誤。
#include"stdio.h"
#include"string.h"
struct?account
{
char?name[20];
int?money;
}accounts;
void?plm()
{?
printf("您賬戶(hù)的余額:%d",accounts.money);
}
void?qwe()
{
int?cunkuan;??
printf("請(qǐng)輸入存款金額:");?
scanf("%d",cunkuan);?
accounts.money=cunkuan+accounts.money;
printf("???存款成功!\n賬戶(hù)余額:%d\n",accounts.money);
}
void?poi()
{?
int?qukuan,i;
printf("請(qǐng)輸入取款金額:");
while(1)
{
scanf("%d",qukuan);?
if(accounts.moneyqukuan)
{?
printf("賬戶(hù)余額不足!你的賬戶(hù)余額:%d\n請(qǐng)重新輸入:",accounts.money);?
}
else?
{
accounts.money=accounts.money-qukuan;
printf("取款成功!\n賬戶(hù)余額:%d\n",accounts.money);
break;
}?
}
}
void?main()
{
char?name[20];?
char?mima[20];?
int?q;
printf("====================================================\n");?
printf("====================================================\n");
printf("==================歡迎你使用銀行系統(tǒng)================\n");
printf("====================================================\n");?
printf("====================================================\n\n");
printf("請(qǐng)輸入你的賬戶(hù)名:");?
gets(name);
printf("請(qǐng)輸入密碼:");
gets(mima);
printf("\n");
if(strcmp(name,"zengxin")==0strcmp(mima,"12345")==0)
{?
printf("登陸成功!\n");
int?t=1;
while(t)//主函數(shù)加上一個(gè)while循環(huán)就好了,t表示是否繼續(xù)使用系統(tǒng),選擇0時(shí),t=1,即可退出系統(tǒng)了
{
printf("???1?存款???2?取款??3?開(kāi)戶(hù)\n");?
printf("???4?銷(xiāo)戶(hù)???5?查詢(xún)??0?退出\n請(qǐng)選擇:");?
scanf("%d",q);?
switch?(q)?
{?
case?1:
{
qwe();
break;
}?
case?2:
{
poi();
break;
}?
case?3:
break;?
case?4:
break;??
case?5:
{
plm();
break;
}?????
case?0:
{
t=0;
break;
}
}?
}
}
else?
printf("輸入的賬戶(hù)名和密碼錯(cuò)誤?。?);
網(wǎng)頁(yè)題目:c語(yǔ)言主函數(shù)調(diào)用密碼,C語(yǔ)言主調(diào)函數(shù)
轉(zhuǎn)載注明:http://chinadenli.net/article40/heeseo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、靜態(tài)網(wǎng)站、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、云服務(wù)器、軟件開(kāi)發(fā)、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)