程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> CÓïÑÔµÚʮһ¿Î

CÓïÑÔµÚʮһ¿Î

編輯:關於C語言

CÓïÑÔµÚʮһ¿Î


Ö÷ÒªÄÚÈÝ£ºº¯ÊýÖ¸Õë

Ò»¡¢º¯ÊýÖ¸ÕëµÄ¶¨Òå

int maxValue£¨int a£¬int b£©

{

return a > b ? a : b;

}

º¯ÊýÃûºÍÊý×éÃûÒ»ÑùÊǵØÖ·£¬´æÔÚÔÚ´úÂëÇø


int maxValue£¨int a£¬int b£©

int £¨*p£©£¨int£¬int£©= NULL

º¯ÊýÖ¸Õ붨Ò壬pÊDZäÁ¿£¬ÆäËûÊÇÀàÐÍ£¨Í¨³£Ã»ÓÐÐβÎa£¬b£©

p = maxValue£¨º¯ÊýÖ¸ÕëµÄʹÓ㺸³值º¯ÊýÃû£©

int m = p£¨3£¬5£©£¨Ö¸Õë¿Éµ±º¯ÊýÓã©


Á·Ï°£º¶¨ÒåÁ½¸öº¯Êý£¬Ò»¸öÇó×î´ó值£¬Ò»¸öÇóºÍ£¬Óû§´Ó¿ØÖÆ̨ÊäÈëÁ½¸öÕûÊý£¬ÔÚ´Ó¿ØÖÆ̨ÊäÈëmax»òsum·Ö±ðÇó3ºÍ5µÄ×î´ó值»òºÍ£¬£¨Ìáʾ£º¶¨ÒåÒ»¸öº¯ÊýÖ¸Õ룬¸ù¾ÝÊäÈëÄÚÈÝÖ¸Ïò²»Í¬µÄº¯Êý£¬×îºóÒ»´Îµ÷ÓÃÍê³É£©

int maxValue ( int a, int b ) / / Çó×î´ó值µÄº¯Êý

{

return a > b ? a : b;

}

int sumValue ( int a, int b ) / / ÇóºÍµÄº¯Êý

{

return a + b;

}


int main( int argc, const char *argv[])

{

void (*p) (int , int) = NULL; / / ¶¨ÒåÒ»¸öÖ¸Õë±äÁ¿

int a , b; / / ¶¨ÒåÁ½¸öÐèÒªÓõÄÕûÐͱäÁ¿

printf(" ÇëÊäÈëÁ½¸öÕûÊý£º "); / / ÈÃÓû§ÊäÈëÁ½¸öÕûÊý

scanf(" %d%d ",&a,&b); / / ±ê×¼µÄÊäÈ뺯Êý

printf(" ÇëÊäÈësum»òÕßmax£º "); / / ÈÃÓû§ÊäÈësum»òÕßmax

char *name = malloc(sizeof(char) * 10); / / ÉêÇëcharÀàÐ͵ijËÒÔ10µÄÄÚ´æ¿Õ¼ä

scanf(" %s ", name);

/ / ÅжÏÓû§ÊäÈëµÄÊÇsum»¹ÊÇmax

if (strcmp(name, " sum ") == 0){

p = sumValue;

}else if (strcmp(name, " max ") == 0){

p = maxValue;

}else {

printf(" ÊäÈë´íÎó£¬Ê§°Ü ");

}

free (name); / / ÊÍ·ÅÄڴ棬һ¶¨²»ÄÜÍü


int result = p(a, b); / / ¶¨Òåresult½ÓÊÕ½á¹û

printf(" %d ", result); / / Êä³ö½á¹û

}


¶þ¡¢»Øµ÷º¯Êý

º¯ÊýÖ¸Õë×ö²ÎÊý

int getValue(int a, int b, int (*p)(int , int));

getValue: º¯ÊýÃû

int (*p)(int ,int): º¯ÊýÖ¸Õë×ögetValueº¯ÊýµÄ²ÎÊý

int value = getValue(3, 5, maxValue);£¨º¯Êýµ÷ÓãºgetValueº¯ÊýÖ´Ðйý³ÌÖÐÔÙµ÷Ó㨻ص÷£©maxValue£©

ÈçͼËùʾ£º

\


Á·Ï°£ºÐ´Ò»º¯Êý²éÕҳɼ¨ÔÚ90·ÖÒÔÉϵÄѧÉú£¬ÊÇÓûص÷º¯ÊýÔÚÐÕÃûºóÃæ¼Ó¡°¸ß¸»Ë§¡±<†·Ÿ"http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+dHlwZWRlZiAgc3RydWN0IHsgICAgICAgICAgIC8gLyAgtqjS5dK7uPa94bm5zOU8L3A+CjxwPmNoYXIgbmFtZVsyMF07PC9wPgo8cD5pbnQgIGFnZTs8L3A+CjxwPmZsb2F0ICBzY29yZTs8L3A+CjxwPn0gU3R1ZGVudDs8L3A+CjxwPjwvcD4KPHA+dm9pZCAgcHJpbnRmU3R1ZGVudChTdHVkZW50ICAqc3R1LCBpbnQgIGNvdW50KaO7PC9wPgo8cD52b2lkICBwcmludGZTdHVkZW50KFN0dWRlbnQgICpzdHUsIGludCAgY291bnQpICAgLyAvICDJ+cP3sqKx4NC00ru49rTy06G94bm5zOXK/dfptcS6r8r9PC9wPgo8cD57PC9wPgo8cD5mb3IoaW50ICBpID0gMDsgaSA8IGNvdW50IDsgaSYjNDM7JiM0MzspezwvcD4KPHA+cHJpbnRmKA=="%s %d %.2f", (stu + i) ->name, (stu + i) ->age, (stu + i) ->score);

}

}


/ / ÉùÃ÷²¢±àд²éÕÒ90·ÖÒÔÉϵÄѧÉú²¢ÔÚÐÕÃûºóÃæ¼Ó¡°¸ß¸»Ë§¡±

void changeStudent(Student *stu, int count, void (*p)(Student *));

void changeStudent(Student *stu, int count, void(*p)(Student *))

{

for (int i = 0; i < count ; i++){

if ((stu + i) ->score >= 90){

p(stu + i);

}

}

}


void changeName(Student *stu);

void changeName(Student *stu)

{

strcat (stu ->name, " ¸ß¸»Ë§ ");

}


int main(int argc, const char*argv[]){

Student student = { / / ¶¨Òå½á¹¹Ìå±äÁ¿

{" ·½ÊÀÓñ ", 26, 92},

{" Áîºü³å ", 30, 89},

{" ΤС±¦ ", 27, 99}£¬

{" »¨ÏÉ×Ó ", 20, 80}£¬

{" ´ó½ÌÖ÷ ", 24, 80}

};

int count = sizeof(student) / sizeof(Student); / / Çó½á¹¹ÌåÊý×éµÄ³¤¶È


printfStudent(stuent, count); / / ´òӡû²éÕÒÇ°µÄ½á¹¹ÌåÊý×é


changeStudent(student, count, changeName); / / ÅжÏÊÇ·ñ·ûºÏÌõ¼þ90·ÖÒÔÉϵĽøÐиıä


printfStudent(student, count) / / ´òÓ¡²éÕÒºóµÄ½á¹¹ÌåÊý×é

}

Èý¡¢¶¯Ì¬ÅÅÐò

ÅÅÐòÐèÇ󲻶¨£¬ÎÞ·¨Ô¤²âµÄÐèÇó±ä¸ü

void sortArray(int *array, int count)

{

for (int i = 0; i < count - 1; i++){

for (int j = 0; j < count - 1 - i; j++){

if (Ìõ¼þ£¨ÐèÇó£©) {

½»»»

}

}

}

}

¾ö¶¨ÅÅÐò·½Ê½µÄÖØÒªÓï¾ä·â×°³Éº¯ÊýÔڴ˻ص÷


int Êý×鶯̬ÅÅÐò

typedef BOOL(* PFUNC)(int , int); / / Ϊº¯ÊýÖ¸ÕëÀàÐÍÆðÃûΪPFUNC

void sortArray(int *array, int count , PFUNC p); / / ¶¯Ì¬º¯ÊýÅÅÐòÉùÃ÷

ʾÀý£º

/ / 1£º´´½¨Ò»¸ö½á¹¹Ìå

typedef struct {

char name[20];

int age;

float score;

} Student;


/ / 3£º´òӡѧÉú½á¹¹ÌåÊý×éµÄº¯Êý

void printfStudent(Student *stu, int count);

void printfStudent(Student *stu, int count)

{

for (int i = 0; i < count; i++){

printf("%s %d %.2f",(stu + i) ->name, (stu + i) ->age, (stu + i) ->score);

}

printf("\n");

}


/ / 5£ºÐ´Ò»¸öº¯Êý¸ù¾Ý·ÖÊý´ÓСµ½´óÅÅÐò

void paiXuStudent(Student *stu, int count, BOOL (*PFUNC)(Student *stu1, Student *stu2));

void paiXuStudent(Student *stu, int count, BOOL (*PFUNC)(Student *stu1, Student *stu2))

{

for (int i = 0; i < count - 1; i++){

for (int j = 0; j < count - 1 - i; j++){

if (PFUNC((stu + j), (stu + j + 1))){

Student temp;

temp = *(stu + j);

*(stu + j) = *(stu + j + 1);

*(stu + j + 1) = temp;

}

}

}

}


/ / 6£º¶¨ÒåÒ»¸ö°´·ÖÊý±È½Ï´óСµÄº¯Êý

BOOL biJiaoScore(Student *stu1, Student *stu2);

BOOL biJiaoScore(Student *stu1, Student *stu2)

{

return stu1 ->score > stuff ->score;

}


/ / ¶¨ÒåÒ»¸ö°´ÄêÁäÅÅÐòµÄº¯Êý

BOOL compareAge(Student *stu1, Student *stu2);

BOOL compareAge(Student *stu1, Student *stu2)

{

return stu1 ->age > stuff ->age

}


int main(int argc, char * argv[]){

/ / 2£º´´½¨Ñ§Éú½á¹¹ÌåÊý×é

Student *student = {

{"Ë÷¡", 22, 93},

{"Ï㼪ʿ", 21, 97},

{"Ȯҹ²æ", 20, 80},

{"··É", 19, 70}

};

/ / 4£ºÅÅÐòÇ°µ÷ÓôòÓ¡º¯Êý´òÓ¡½á¹¹ÌåÊý×é

int count = sizeof(student) / sizeof(Student);

printfStudent(student, count);

/ / 7£ºµ÷Óú¯Êý

paiXuStudent(student, count , biJiaoScore);

/ / paiXuStudent(student, count , compareAge);°´ÄêÁäÅÅÐò£¨Ö»Ðè´«È뺯Êý¾Í¿É£©

/ / 8£º´òÓ¡ÅÅÐòºóµÄ½á¹¹ÌåÊý×é

printfStudent(student, count);

}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved