# 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);
}