user-0 提问: 求不少于120行的c语言程序及注释..简单一点，才大一

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 引用 1 楼 自信男孩 的回复：没有什么需求吗？只是要代码吗？如果这样，建议百度一下吧，比如找求素数等等。没有特别的需求，只要代码，但是需要项目简介

user: user-0
content: 引用 1 楼 自信男孩 的回复：没有什么需求吗？只是要代码吗？如果这样，建议百度一下吧，比如找求素数等等。我看了找素数的，只有50多行

user: user-2
content: 没有什么需求吗？只是要代码吗？如果这样，建议百度一下吧，比如找求素数等等。

user: user-2
content: ﻿//////////////////////////////////////////////////////////////////////// //文件名: void_pointer.c //作者: cfjtaishan //日期: 2013-03-21 //描述: 泛型函数指针的运用. //说明: //    1. 实现了整型数组的求最大元素和字符串数组汇总求最大的字串; //    2. 实现了对整型数组和字符串数组进行冒泡排序; ////////////////////////////////////////////////////////////////////////  #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h>  //这两个宏用于作为编译开关 #define INTEGE #define STRING   #define LEN 10 #define DAYS 7  //声明泛型函数指针 typedef int (*pfunc)(const void *, const void *); typedef void (*fswap)(void *, void *);  //函数声明 int compare_intege(const void *a, const void *b); int compare_string(const void *a, const void *b); void swap_for_intege(void *p, void *q); void swap_for_string(void *p, void *q); void *my_max(void *pbuf, const int len, const int size, pfunc cmp); void bubble_sort(void *pbuf, const int len, const int size, pfunc cmp, fswap swap); void initize_arr(int *arr, const int len); void show_arr(const int *arr, const int len);  int main(int argc, char *argv[]) { #ifdef INTEGE     int arr[LEN], *max;     initize_arr(arr, LEN);     printf("Show the arr arguments: \n");     show_arr(arr, LEN);     max = (int *)my_max(arr, LEN, sizeof(int), compare_intege);     printf("Max integer is %d\n", *max);     bubble_sort(arr, LEN, sizeof(int), compare_intege, swap_for_intege);     printf("After sort: \n");     show_arr(arr, LEN); #endif  #ifdef STRING     int i;     char *week[DAYS] =      { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};     char **max_str = (char **)my_max(week, DAYS, 4, compare_string);    //指针长度为4 	printf("--------------------------------------------------------------\n"); 	printf("Max string is ");     puts(*max_str);     bubble_sort(week, DAYS, 4, compare_string, swap_for_string);    //指针长度为4     printf("After bubble sort: \n");      for (i = 0; i < DAYS; i++)     {         printf("%s  ", week[i]);     }     putchar('\n'); #endif          return 0; }  ////////////////////////////////////////////////////////////////////////// // 函数名: initize_arr // 描述 : 初始化数组。 // 参数:  //    [in/out] arr -- 整型数组的首地址; //    [in] len -- 整型数组最大长度; // 返回值: 无。 // 说明:  ////////////////////////////////////////////////////////////////////////// void initize_arr(int *arr, const int len) {     int i;     srand(time(NULL));          for (i = 0; i < len; i++)     {         arr[i] = rand() % 1000;    //产生1000以内的随机数     } }  ////////////////////////////////////////////////////////////////////////// // 函数名: show_arr // 描述 : 打印数组元素值。 // 参数:  //    [in] arr -- 整型数组的首地址; //    [in] len -- 整型数组最大长度; // 返回值: 无。 // 说明:  ////////////////////////////////////////////////////////////////////////// void show_arr(const int *arr, const int len) {     int i;          for (i = 0; i < len; i++)     {         printf("%d  ", arr[i]);     }     putchar('\n'); }  ////////////////////////////////////////////////////////////////////////// // 函数名: compare_intege // 描述 : 比较两个整数的大小。 // 参数:  //    [in] a -- 一个整型数据的地址; //    [in] b -- 另一个整型数据的地址; // 返回值:  //    若*a > *b，则返回正整数； //    若*a == *b 则返回0； //    若*a < *b，则返回负正整数; // 说明:  ////////////////////////////////////////////////////////////////////////// int compare_intege(const void *a, const void *b) {     return *(int*)a - *(int *)b; }  ////////////////////////////////////////////////////////////////////////// // 函数名: compare_string // 描述 : 比较两个字符串的大小。 // 参数:  //    [in] a -- 一个字符串的地址; //    [in] b -- 另一个字符串的地址; // 返回值:  //    和strcmp的返回相同. // 说明:  ////////////////////////////////////////////////////////////////////////// int compare_string(const void *a, const void *b) {     return strcmp(*(char **)a, *(char **)b); }  ////////////////////////////////////////////////////////////////////////// // 函数名: my_max // 描述 : 求数据集中的最大值。 // 参数:  //    [in/out] pbuf -- 泛型数据的首地址; //    [in] len -- 泛型数据的最大长度; //    [in] size -- 泛型数据的长度; //    [in] cmp -- 回调函数; // 返回值:  //    最大数据的首地址. // 说明:  ////////////////////////////////////////////////////////////////////////// void *my_max(void *pbuf, const int len, const int size, pfunc cmp) {     char *max = pbuf;     int i;     for (i = 0; i < len; i++)     {         if (cmp(max, pbuf + i * size) < 0)         {             max = pbuf + i * size;         }     } 	     return max; }  ////////////////////////////////////////////////////////////////////////// // 函数名: bubble_sort // 描述 : 冒泡排序。 // 参数:  //    [in/out] pbuf -- 泛型数据的首地址; //    [in] len -- 泛型数据的最大长度; //    [in] size -- 泛型数据的长度; //    [in] cmp -- 回调函数; //    [in] swap -- 回调函数; // 返回值: 无. // 说明:  ////////////////////////////////////////////////////////////////////////// void bubble_sort(void *pbuf, const int len, const int size, pfunc cmp, fswap swap) {     int i, j;          for (i = 0; i < len - 1; i++)     {         for (j = 0; j < len - i -1; j++)         {             if (cmp(pbuf + j * size, pbuf + (j + 1) * size) > 0)             {                 swap(pbuf + j * size, pbuf + (j + 1) * size);             }         }     } }  ////////////////////////////////////////////////////////////////////////// // 函数名: swap_for_intege // 描述 : 交换两个数据。 // 参数:  //    [in] p -- 一个整型数据的地址; //    [in] q -- 另一个整型数据的地址; // 返回值: 无. // 说明:  ////////////////////////////////////////////////////////////////////////// void swap_for_intege(void *p, void *q) {     int tmp;     tmp = *(int*)p;     *(int *)p = *(int *)q;     *(int *)q = tmp; }  ////////////////////////////////////////////////////////////////////////// // 函数名: swap_for_string // 描述 : 交换两个数据。 // 参数:  //    [in] p -- 一个字符串的地址; //    [in] q -- 另一个字符串的地址; // 返回值: 无. // 说明:  ////////////////////////////////////////////////////////////////////////// void swap_for_string(void *p, void *q) {     char *str;     str = *(char **)p;     *(char **)p = *(char **)q;     *(char **)q = str; } 供参考～