當前位置:菜譜大全網 - 菜譜 - 用C語言寫菜單的例子?

用C語言寫菜單的例子?

# include & ltstdio.h & gt

# include & ltwindows.h & gt

# include & ltstring.h & gt

# include & ltstdlib.h & gt

#定義最大1000

void main1()

{

int a,* p;

p = & ampa;

printf("請輸入壹個數字:");

scanf("%d ",p);//為p指向的地址A輸入壹個值。

printf("a=%d\n*p=%d\n ",a,* p);//輸出地址A存儲的值,輸出p指向的地址A的內容。

}

void main2()

{

int a,* p;

p = & ampa;

printf("請輸入壹個數字:");

scanf("%d ",& ampa);//為p指向的地址A輸入壹個值。

printf("p=%p *p=%d\n ",p,* p);//輸出P指向的A的第壹個地址號不足的位數要用00填充,以完成輸出P指向的地址A的內容。

printf("%4d%4d %x\n ",(*p)++, ++(*p),p);//現在輸出P所指向的地址,P所指向的地址中的值加1,P所指向的地址中的值加1加1。

printf("%4d%4d\n "、*p++、* p);//最後壹個程序加1後輸出P所指地址的內容。

printf("p=%x\n ",p);//輸出P現在指向的地址號。

}

void sub(int x,int y,int *z)

{

* z = y-x;

}

void main3()

{

int a,b,c;

sub(10,5 & amp;a);//分別給X 10和5的rich值,Y將A的地址作為Z在sub中指向的A的地址的rich值傳遞。

sub(7,a,& ampb);//將7和A的值分別給X,Y將B的地址作為a *z在sub中傳遞,在z指向的B的地址中比較豐富。

子(a,b,和ampc);//將A的值和Bar的值分別給X,Y將C的地址作為a *z在sub中傳遞,富含z指向的C的地址。

printf("a=%d\nb=%d\nc=%d\n ",a,b,c);//輸出指定的a b c

}

void main4()

{

int a[] = {1,2,3,4,5 };

int * p = NULL

p = a;// p指向a的第壹個地址。

printf("%d ",* p);//輸出p指向的A的第壹個地址的第壹個元素的內容。

printf("%d ",*(++p));// p移動指向A的第二個元素,輸出她的內容。

printf("%d ",* ++ p);// p移動指向A的第二個元素,輸出她的內容。

printf(" % d " ,*(p-));// p輸出值前移壹個元素後指向的位。

printf("%d ",* p++);//輸出p的值,然後將p的點向後移動壹個元素。

printf("%d ",* p);//輸出P移位後所指向地址的值。

printf(" % d " ,++( * p));//P指向的地址值加1,輸出該值。

printf("%d\n ",* p);//現在輸出P指向的地址的值。

}

f(int *t)

{

* t = 10;

}

void main5()

{

int *p,a;

a = 2;

p = & ampa;// p指向a的地址。

f(p);//將P指向的A的地址傳遞給*t,在子函數中重新賦值A;

printf("a=%d\n ",a);//輸出a重新分配的值。

}

void main6()

{

int a[10],j,* p;

for(j = 0;j & lt10;j++)

a[j]= j+1;//給數組a賦值。

printf(" \ n使用[j]:\n "輸出數組);

for(j = 0;j & lt10;j++)

printf("%d ",a[j]);//輸出分配的。

p = a;// p指向數組a的首地址。

printf(" \ n使用p[j]:\n "輸出數組);

for(j = 0;j & lt10;j++)

printf("%d ",p[j]);//把指針P想象成輸出為P的數組所指向的A的每個元素。

printf(" \ n使用*( p+j):\n)輸出數組);

for(j = 0;j & lt10;j++)

printf(" % d " ,*(p+j));//把指針P想象成輸出為P的數組所指向的A的每個元素。

printf(" \ n使用*( a+j):\n)輸出數組);

for(j = 0;j & lt10;j++)

printf(" % d " ,*(a+j));//使用數組a的指針屬性。

printf(" \ n使用*p++輸出數組:\ n ");

for(j = 0;j & lt10;j++)

printf("%d ",* p++);//把指針P想象成輸出為P的數組所指向的A的每個元素。

printf(" \ n ");

}

void輸入(float *p,int n)

{

int I;

printf("請輸入%d分數: ",n);

for(I = 0;我& ltn;i++)

{

scanf("%f ",(p+I));

}

}

void輸出(float *q,int n)

{

int I;

printf("輸出分數:\ n ");

for(I = 0;我& ltn;i++)

{

printf(" % f \ n " ,*(q+I));

}

}

void FMax(float score[],int n,float *maxs,int *maxn)

{

int I;

* maxs = score[0];

for(I = 1;我& ltn;i++)

{

if(score[I]& gt;*最大值)

{

* maxs = score[I];

* maxn = I;

}

}

}

void FMin(浮點分數[],整數n,浮點*分鐘,整數*分鐘)

{

int I;

*分鐘=分數[0];

for(I = 1;我& ltn;i++)

{

if(score[I]& lt;*分鐘)

{

* mins = score[I];

* Minn = I;

}

}

}

void main7()

{

浮動分數[MAX],maxs,mins

int maxn,minn

輸入(分數,10);

輸出(分數,10);

FMax(分數,10,& amp馬克斯,和ampmaxn);

FMin(分數,10,& amp分鐘& ampMinn);

printf("maxscore=%.2f,\t\tmaxnum=%d\nminscore=%.2f,\t\tminnum=%d\n ",maxs,maxn,mins,Minn);

}

int aver(int (*p)[5],int q)

{

int j,m=0,b;

for(j = 0;j & lt5;j++)

{

m+= *(*(p+q-1)+j);

}

b = m/5;

返回(b);

}

void main8()

{

int i,j,(*pscore)[5],a,n,q[10][5];

PS core = q;

printf("請輸入十個學生的五個分數:\ n ");

for(I = 0;我& lt10;i++)

{

for(j = 0;j & lt5;j++)

{

scanf("%d ",& ampPS core[I * 5+j]);

}

}

printf("請輸入學生編號:");

scanf("%d ",& ampn);

a=aver(pscore,n);

Printf("這%d個學生的五個成績的平均值是:%d\n ",n,a);

}

void main9()

{

char *str1、*str2、*str3,a[100],b[100],c[100];

str 1 = & amp;a[0];

str2 = & ampb[0];

str3 = & ampc[0];

printf(" str 1 = ");

gets(str 1);

printf(" str 2 = ");

gets(str 2);

strcat(str1,str 2);//將字符串str2連接到字符串str1。

printf("str1=%s\n ",str 1);//輸出連接的字符串str1。

strcpy(str3,str 1);//在字符串str3後連接字符串str1。

printf("str3=%s\n ",str 3);//輸出連接的字符串str3。

}

void main10()

{

char * p = " abcdefghijklmnopq

while( *p++!='e')//指針P的指向地址向後移動壹個元素,判斷是否等於' e '

printf("%c\n ",* p);//如果判斷等於‘e’,則輸出P指向的地址中的字符。

}

void main11()

{

char b[] = "程序";

char * a = " PROGRAM

int I = 0;

printf("%c%s\n ",*a,b+1);//數組B加壹,然後輸出B,再輸出* A。

while (putchar(*(a+i)))

{

i++;

}

printf("i = %d\n ",I);//判斷A輸出了多少個字符。

while ( - i)

{

putchar(*(b+I));//反轉P字符串,不輸出最後壹個。

}

printf("\n%s\n ",& ampb[3]);//輸出B字符串的後四位。

}

void main12()

{

int a=1,*p,* * pp

pp = & ampp;

p = & ampa;

a++;

printf ("%d,%d,%d\n ",a,*p,* * PP);// a是A加1的值*P是指向的A地址中的值**pp是指向的*P是指向的A地址中的值。

}

void main13()

{

char *alpha[7]={ " ABCD "," EFGH "," IJKL "," MNOP "," QRST "," UVWX "," YZ " };

char * * p;

int I;

p =α;

for(I = 0;我& lt4;i++)

printf(" % c " ,*(p[I]);//輸出指向的前四個字符串的第壹個字母。

printf(" \ n ");

}

void main14()

{

char n[100];

char *s [ ]={ "零"、"壹"、"二"、"三"、"四"、"五"、"六"、"七"、"八"、"十" };

int i,x,len

Printf("輸入壹串阿拉伯數字:\ n ");

gets(n);

len = strlen(n);//計算輸入n的長度。

for(I = 0;我& ltleni++)

{

x = *(n+I)-48;/* 48是字符“0”的ASCII碼*/

printf("%s ",s[x]);//使用輸入的號碼作為地址號碼。

}

printf(" \ n ");

}

無符號整數MyStrlen(char s[ ])

{

char * p = s;

while (*p!='\0' )

{

p++;

}

返回(p-s);

}

void main15()

{

char a[1000];

int b;

printf("輸入字符數:");

獲取(a);

b = MyStrlen(a);

printf("數字的長度:%d\n ",b);

}

void reading(char (*a)[5],int *num)

{

int I = 0;

獲取(a[I]);

而(!strcmp(a[i],* * * *)= = 0)

{

獲取(a[I]);

}

* num = I;

}

void findmax(char (*a)[5],int *num,char **max)

{

int I;

對於(*max=a[0],I = 1;我& lt*數字;i++)

{

if(strcmp(a[i],*max)>0)

* max = a[I];

}

}

void main16()

{

char ss[10][5],* ps

int n;

閱讀(ss & amp;n);

find max(ss & amp;n & amp;PS);

printf("max=%s\n ",PS);

}

int *search1(int(*s)[4],int *len,int *n)

{

int i,j;

for(I = * n;我& lt* leni++)

{

for(j = 0;j & lt4;j++)

{

if(*(*(s+I)+j)& lt;60)

{

* n = I;

return s[I];//如果有失敗的返回地址。

}

}

}

返回NULL//如果不返回NULL,把沒有不及格的同學打出來就好了。

}

int *search2(int(*s)[4],int *len,int *n)

{

int i,j;

for(I = * n;我& lt* leni++)

{

for(j = 0;j & lt4;j++)

{

if(*(*(s+I)+j)& lt;90)

{

* n = I;

return s[I];//如果有失敗的返回地址。

}

}

}

返回NULL//如果不返回NULL,把沒有不及格的同學打出來就好了。

}

void main17()

{

int i,j,n,score[1000][4],count=0,x;

int * p;

p = & amp得分[0][0];

Printf("請輸入學生總數(小於1000):\ n ");

scanf("%d ",& ampn);

printf("請輸入每個學生的分數:\ n ");

for(I = 0;我& ltn;i++)

{

for(j = 0;j & lt4;j++)

{

scanf("%d ",& ampp[I * 4+j]);

}

}

printf(" 100請輸入100,150請輸入150:");

scanf("%d ",& ampx);

開關(x)

{

案例100:

I = 0;//從第壹個開始。

while(我& ltn+1)

{

p=search1(分數,& ampn & amp;I);

If (p)//如果有

{

Printf("第%d個人不及格,三科成績為:\n ",I+1);

for(j = 0;j & lt4;j++)

{

printf("%d,",* p++);

}

count++;//有幾條失敗的記錄。

printf(" \ n ");

}

i++;

}

如果(!寶潔公司。& ampCount==0)//如果不是,

{

Printf("沒有學生不及格\ n ");

}

打破;

案例150:

I = 0;//從第壹個開始。

while(我& ltn+1)

{

p=search2(score,& ampn & amp;I);

If (p)//如果有

{

Printf("第%d個人不及格,三科成績為:\n ",I+1);

for(j = 0;j & lt4;j++)

{

printf("%d,",* p++);

}

count++;//有幾條失敗的記錄。

printf(" \ n ");

}

i++;

}

如果(!寶潔公司。& ampCount==0)//如果不是,

{

Printf("沒有學生不及格\ n ");

}

打破;

默認值:

printf("輸入的字母不正確。");

}

}

#定義MAXI 16

#定義N 5

void sort(char (*s)[MAXI],int n)

{

int i,j;

char * temp =(char *)malloc(sizeof(char)* MAXI);

for(I = 0;我& ltn-1;i++)

{

for(j = I+1;j & ltn;j++)

{

if(strcmp(s[i],s[j])& gt;0) //這裏的排序不能使用s[i] = s[j],錯誤:賦值中的類型不兼容。

{

strcpy(temp,s[I]);

strcpy(s[i],s[j]);

strcpy(s[j],temp);

}

}

}

免費(臨時);

}

void print(char (*s)[MAXI],int n)

{

int I;

for(I = 0;我& ltn;i++)

{

printf("%s\n ",s[I]);

}

}

void main18()

{

int索引;

char str[N][MAXI];

for(索引= 0;index & ltn;index++)

{

Printf("請輸入%d字符串:\n ",index+1);

gets(str[index]);

}

sort(str,N);

print(str,N);

}

void main19()

{

Printf ("\ t \ t \ t歡迎");

printf(" \ n ");

printf(" \ t \ t * * * * * * * * * * * * * * * * * * * * * *);

printf(" \ n \ t \ t * \ t \ t \ t \ t \ t * ");

printf(" \ n \ t \ t * \ t \ t \ t \ t \ t * ");

printf(" \ n \ t \ t * \ t \ t輸入1。第壹個實驗\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入2。實驗②\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入3。第三個實驗\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入4。第四次實驗\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入5。實驗⑤\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入6。第6次實驗\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入7。實驗⑦\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入8。實驗\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入9。實驗⑨\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入10。實驗\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入11。實驗⑾\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入12。實驗\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入13。實驗\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入14。實驗\ t \ t * ";

printf(" \ n \ t \ t * \ t \ tEnter 15。實驗\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入16。實驗\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入17。⒄ th實驗\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入18。實驗⒅\ t \ t * ";

printf(" \ n \ t \ t * \ t \ t輸入0。end \ t \ t * ";

printf(" \ n \ t \ t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

}

void main()

{

int n,m;

做{

系統(“cls”);

main 19();

Printf("請輸入您要運行的程序的序列號:");

scanf("%d ",& ampn);

開關(n)

{

案例1:

main 1();

打破;

案例二:

main 2();打破;

案例三:

main 3();打破;

案例4:

main 4();打破;

案例5:

main 5();打破;

案例6:

main 6();打破;

案例7:

main 7();打破;

案例8:

main 8();打破;

案例9:

main 9();打破;

案例10:

main 10();打破;

案例11:

main 11();打破;

案例12:

main 12();打破;

案例13:

main 13();打破;

案例14:

main 14();打破;

案例15:

main 15();打破;

案例16:

main 16();打破;

案例17:

main 17();打破;

案例18:

main 18();打破;

默認值:

Printf("錯誤的選擇!!!!!!!\ n ");

}

Printf("不想繼續輸入0或輸入任何數字:");

scanf("%d ",& ampm);

}while(m!=0);

}