C39-函数完结练习

[复制链接]
发表于 2025-9-6 10:58:50 | 显示全部楼层 |阅读模式
一 第一题


  • 题目:输入10个数,找出最大数及最大数的下标.
  • 代码示例
  1. #include <stdio.h>
  2.     //定义全局变量
  3. int position;
  4.     //封装初始化二维数组的函数
  5. void  InitArr(int arr[],int len)
  6. {
  7.     int i;
  8.     for(i=0;i<len;i++)
  9.     {
  10.             printf("请输入第%d个的元素:",i+1);
  11.             scanf("%d",&arr[i]);      
  12.     }
  13. }
  14.     //定义找对最大值的函数
  15. int FoundMax(int arr[],int len)
  16. {
  17.     int i;
  18.     int max;
  19.     max=arr[0];
  20.     for(i=0;i<len;i++)
  21.     {
  22.         if(max<arr[i])
  23.         {
  24.             max=arr[i];
  25.             position=i+1;   
  26.         }
  27.     }
  28.     return max;
  29. }
  30.     //主函数
  31. int main()
  32. {
  33.     //二维数组的定义
  34.     int arr[10];
  35.     int max;
  36.    
  37.     //求二维数组的长度
  38.     int len;
  39.     len=sizeof(arr)/sizeof(arr[0]);
  40.     //调用初始化数组的函数
  41.     InitArr(arr,len);
  42.     //调用找最大值的函数
  43.     max=FoundMax(arr,len);
  44.     //输出最大元素的相关信息
  45.     printf("第%d个的数最大,是:%d",position,max);
  46.    
  47.     return 0;
  48. }
复制代码

  • 结果展示


  • 报错与总结

    • 忘记在主函数接收被调用函数的返回值,导致最大值无法正常输出


    • 测试了定义数组后但未初始化数组时,数组的长度是可以计算的


二 第二题


  • 题目:封装冒泡排序的函数
  • 代码示例
  1. #include <stdio.h>
  2.     //封装初始化数组的函数
  3. void  InitArr(int arr[],int len)
  4. {
  5.     int i;
  6.     for(i=0;i<len;i++)
  7.     {
  8.             printf("请输入第%d个的元素:",i+1);
  9.             scanf("%d",&arr[i]);      
  10.     }
  11. }
  12.     //封装冒泡排序函数
  13. void BubbleSort(int arr[],int len)
  14. {
  15.     int i;
  16.     int j;
  17.     int temp;
  18.      for(i=0;i<len-1;i++)
  19.     {
  20.         for(j=0;j<len-1;j++)
  21.         {
  22.             if(arr[j]<arr[j+1])
  23.             {
  24.                 temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;
  25.             }
  26.         }
  27.     }
  28. }
  29.     //封装打印数组函数
  30. void PrintArr(int arr[],int len)
  31. {
  32.     int i;
  33.     puts("数组arr里的元素从大到小遍历输出为:");
  34.     for(i=0;i<len;i++)
  35.     {
  36.         printf("%d,",arr[i]);
  37.     }
  38. }
  39.     //主函数
  40. int main()
  41. {
  42.     //定义数组及相关数据
  43.     int arr[5];
  44.     int len=sizeof(arr)/sizeof(arr[0]);
  45.     //调用初始化数组函数
  46.     InitArr(arr,len);
  47.     //调用冒泡排序函数
  48.     BubbleSort(arr,len);
  49.     //调用打印函数
  50.     PrintArr(arr,len);
  51.     return 0;
  52. }
复制代码

  • 结果展示


  • 报错总结

三 第三题


  • 题目:封装选择排序的函数
  • 代码示例
  1. #include <stdio.h>
  2.     //封装初始化数组的函数
  3. void  InitArr(int arr[],int len)
  4. {
  5.     int i;
  6.     for(i=0;i<len;i++)
  7.     {
  8.             printf("请输入第%d个的元素:",i+1);
  9.             scanf("%d",&arr[i]);      
  10.     }
  11. }
  12.     //封装冒泡排序函数
  13. void BubbleSort(int arr[],int len)
  14. {
  15.     int i;
  16.     int j;
  17.     int temp;
  18.     for(i=0;i<len-1;i++)
  19.     {
  20.         for(j=i+1;j<len;j++)
  21.         {
  22.             if(arr[i]<arr[j])
  23.             {
  24.                 temp=arr[i];
  25.                 arr[i]=arr[j];
  26.                 arr[j]=temp;
  27.             }
  28.         }
  29.     }
  30. }
  31.                         
  32.     //封装打印数组函数
  33. void PrintArr(int arr[],int len)
  34. {
  35.     int i;
  36.     puts("数组arr里的元素从大到小遍历输出为:");
  37.     for(i=0;i<len;i++)
  38.     {
  39.         printf("%d,",arr[i]);
  40.     }
  41. }
  42.     //主函数
  43. int main()
  44. {
  45.     //定义数组及相关数据
  46.     int arr[5];
  47.     int len=sizeof(arr)/sizeof(arr[0]);
  48.     //调用初始化数组函数
  49.     InitArr(arr,len);
  50.     //调用冒泡排序函数
  51.     BubbleSort(arr,len);
  52.     //调用打印函数
  53.     PrintArr(arr,len);
  54.     return 0;
  55. }
复制代码

  • 结果展示


  • 报错总结


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表