鱼C论坛

 找回密码
 立即注册
查看: 1980|回复: 11

[已解决]C语言课程设计作业·,求求了·,救救孩子

[复制链接]
发表于 2020-11-30 11:03:52 | 显示全部楼层 |阅读模式
30鱼币
课程设计的题目,救救孩子吧
最佳答案
2020-11-30 11:03:53
发代码被审核了
a3735a8078dd0e6913c2d08e4563b6ae.jpg

最佳答案

查看完整内容

发代码被审核了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-30 11:03:53 | 显示全部楼层    本楼为最佳答案   
发代码被审核了

未命名1.zip

1.54 KB, 下载次数: 10

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-30 22:16:48 | 显示全部楼层
你要的这7个程序,我这里都有现成的,可是你发的是悬赏帖,我除了得到你这30个鱼币外,什么也得不到啊。可是,鱼币对我来说也没有什么用呀
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-30 22:23:31 | 显示全部楼层
风过无痕1989 发表于 2020-11-30 22:16
你要的这7个程序,我这里都有现成的,可是你发的是悬赏帖,我除了得到你这30个鱼币外,什么也得不到啊。可 ...

有现成的吗哥,发其他的贴不就更加啥也没有了吗,求一个源代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-30 22:35:23 | 显示全部楼层
冯云星 发表于 2020-11-30 22:23
有现成的吗哥,发其他的贴不就更加啥也没有了吗,求一个源代码

发普通的求助帖子,你选为最佳答案,系统给我的奖励是:鱼币+3,荣誉+2,技术+1
先说鱼币,在论坛久了,自然不缺,还是购买了会员,鱼币也就一文不值了
再说荣誉,每天登录回帖子,也不那么重要
在论坛,最重要的是技术值,它是买不来的,通过每一个最佳答案,得一个,所以就很重要了。

算了,反正也没有其他的事,我将这7个程序整合到一块,再调试好,一个小时后,你再来领取吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-30 22:38:00 | 显示全部楼层
风过无痕1989 发表于 2020-11-30 22:35
发普通的求助帖子,你选为最佳答案,系统给我的奖励是:鱼币+3,荣誉+2,技术+1
先说鱼币,在论坛久了, ...

原来如此,懂了懂了,谢谢哥
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-30 22:49:09 | 显示全部楼层
冯云星 发表于 2020-11-30 22:23
有现成的吗哥,发其他的贴不就更加啥也没有了吗,求一个源代码

三个数排序是什么规则?由大到小,还是由小到大?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-30 22:59:58 | 显示全部楼层
风过无痕1989 发表于 2020-11-30 22:49
三个数排序是什么规则?由大到小,还是由小到大?

都可以,老师没要求
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-30 23:10:20 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3. #include <math.h>
  4. #include <limits.h>
  5. #define max(a,b) (a > b ? a : b)
  6. #define min(a,b) (a > b ? b : a)

  7. void init(){
  8.         printf("\t\t\t1) 将3个数排序\n\
  9.                         2) 闰年识别\n\
  10.                         3) 三角形面积计算\n\
  11.                         4) 简单四则运算\n\
  12.                         5) 求10个数的最大最小值\n\
  13.                         6) 用选择法将10个数排序\n\
  14.                         7) 用二分法算法查找\n\
  15.                         8) 退出\n\n");
  16. }

  17. void SelectSort(int a[],int n)
  18. {
  19.     int i,j,temp,max;
  20.     for(i=0;i<n-1;i++)
  21.     {
  22.         max=i;
  23.         for(j=i+1;j<n;j++)
  24.         {
  25.             if(a[max]<a[j])
  26.             {
  27.                 max=j;
  28.             }
  29.         }
  30.         if(max!=i)
  31.         {
  32.             temp=a[max];
  33.             a[max]=a[i];
  34.             a[i]=temp;
  35.         }
  36.     }
  37. }

  38. void print(int arr[], int n){
  39.         if(n == 0)return ;
  40.         printf("%d",arr[0]);
  41.         for(int i = 1; i < n; ++i){
  42.                 printf(" %d",arr[i]);
  43.         }
  44.         putchar('\n');
  45. }

  46. void leap_year(){
  47.         int year;
  48.         printf("请输入一个年份: ");
  49.         scanf("%d",&year);
  50.         if(year%4==0&&year%100!=0||year%400==0)
  51.                 printf("%d是润年",year);
  52.         else printf("%d不是润年");
  53.         putchar('\n');
  54. }

  55. void triangle(){
  56.         double a, b, c;
  57.         printf("请输入三角形的三条边: ");
  58.     scanf("%lf %lf %lf", &a, &b, &c);
  59.     if( a + b > c && a + c > b && b + c > a )
  60.     {
  61.         double area , s ;
  62.         s = ( a + b + c ) / 2.0;
  63.         area = sqrt ( s * ( s - a ) * ( s - b ) * ( s - c ) );
  64.         printf("三角形的面积为: %.2f\n", area);
  65.     }
  66.     else printf("输入的三条边不能构成三角形\n");
  67. }

  68. void compute(){
  69.         double a,b;
  70.         printf("请输入2个数字: ");
  71.     scanf("%lf%lf",&a,&b);
  72.     printf("%.2lf + %.2lf = %.2lf\n\
  73. %.2f - %.2f = %.2f\n\
  74. %.2f * %.2f = %.2f\n\
  75. %.2f / %.2f = %.2f\n",a,b,a+b,a,b,a-b,a,b,a*b,a,b,a/b);
  76.                
  77. }

  78. void maxmin(int *arr, int n){
  79.         int mx = INT_MIN, mi = INT_MAX;
  80.         for(int i = 0; i < n; ++i){
  81.                 mx = max(arr[i],mx);
  82.                 mi = min(arr[i],mi);
  83.         }
  84.         printf("最大值为: %d\n最小值为: %d\n",mx,mi);
  85. }

  86. int binarySearch(int *nums, int n, int target){
  87.   if(n == 0)
  88.     return -1;

  89.   int left = 0, right = n - 1;
  90.   while(left <= right){
  91.     // Prevent (left + right) overflow
  92.     int mid = left + (right - left) / 2;
  93.     if(nums[mid] == target){ return mid; }
  94.     else if(nums[mid] < target) { left = mid + 1; }
  95.     else { right = mid - 1; }
  96.   }

  97.   // End Condition: left > right
  98.   return -1;
  99. }

  100. int main(void){
  101.         while(true){
  102.                 init();
  103.                 int choose;
  104.                 scanf("%d",&choose);
  105.                 switch(choose){
  106.                         case 1 :
  107.                                 {
  108.                                         printf("请输入3个数: ");
  109.                                         int arr1[3] = {0};
  110.                                         for(int i = 0; i < 3; ++i){
  111.                                                 scanf("%d", &arr1[i]);
  112.                                         }
  113.                                         SelectSort(arr1,3);
  114.                                         print(arr1,3);
  115.                                         break;
  116.                                 }
  117.                         case 2 :
  118.                                 leap_year();
  119.                                 break;
  120.                         case 3 :
  121.                                 triangle();
  122.                                 break;
  123.                         case 4 :
  124.                                 compute();
  125.                                 break;
  126.                         case 5 :
  127.                         {
  128.                                         int arr2[10] = {0};
  129.                                         printf("请输入10个数: ");
  130.                                         for(int i = 0; i < 10; ++i){
  131.                                                 scanf("%d",&arr2[i]);
  132.                                         }
  133.                                         maxmin(arr2,10);
  134.                                         break;
  135.                         }
  136.                         case 6 :
  137.                         {
  138.                                 int arr3[10] = {0};
  139.                                 printf("请输入10个数: ");
  140.                                 for(int i = 0; i < 10; ++i){
  141.                                         scanf("%d",&arr3[i]);
  142.                                 }
  143.                                 SelectSort(arr3,10);
  144.                                 print(arr3,10);
  145.                                 break;
  146.                         }
  147.                                
  148.                         case 7 :
  149.                         {
  150.                                 int arr4[10] = {0};
  151.                                 printf("请输入10个数: ");
  152.                                 for(int i = 0; i < 10; ++i){
  153.                                         scanf("%d",&arr4[i]);
  154.                                 }
  155.                                 int x;
  156.                                 printf("请输入要查找的值: ");
  157.                                 scanf("%d",&x);
  158.                                 int index = binarySearch(arr4,10,x);
  159.                                 if(index == -1){
  160.                                         printf("数组中没有%d",x);
  161.                                 }else {
  162.                                         printf("%d的下标为%d",x,index);
  163.                                 }
  164.                                 putchar('\n');
  165.                                 break;
  166.                         }
  167.                         case 8 :
  168.                                 return 0;
  169.                 }
  170.         }
  171.         return 0;
  172. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-30 23:20:33 | 显示全部楼层
这些程序都不难, 平时多练习基本都会
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-12-1 01:23:30 | 显示全部楼层
本帖最后由 风过无痕1989 于 2020-12-1 13:09 编辑

上面的朋友已经给出了答案,而我在第 8 段那里费了几个小时,都没能成功,代码还是给你吧(前面的 7 种 case,加上文件头,都可以是单独的程序)
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include<math.h>
  4. int sort(int n,int a[]);

  5. int sort(int n,int a[])     // 因第 6、7 段程序的需要,定义排序函数
  6. {
  7.     int i, j, p, temp;
  8.     for(i=0; i < n; i++)
  9.     {
  10.         p = i;
  11.         for(j = i + 1; j < n; j++)    //找出数组中的最大值
  12.             if(a[p] > a[j])    // 由小至大排序
  13.                 p = j;
  14.         if(p != i)    //将最大值与a[0]调换
  15.         {
  16.             temp = a[i];
  17.             a[i] = a[p];
  18.             a[p] = temp;
  19.         }
  20.     }
  21.     return 0;
  22. }


  23. int main()
  24. {
  25.         int n;
  26.         printf("请选择:1、三个排序;2、闰年识别;3、三角形面积计算;4、四则运算;");
  27.         printf("5、10个数的最大值与最小值;6、选择法排序;7、二分法查找;8、退出程序;");
  28.         scanf("%d", &n);

  29.         switch (n)
  30.         {
  31.         case 1:
  32.         {
  33.                 int a, b, c,max, mid, min;
  34.                 printf("请输入3个数: ");
  35.                 scanf("%d%d%d", &a, &b, &c);
  36.                 max = a;
  37.                 min = a;
  38.                 if (max < b)
  39.                         max = b;
  40.                 if (max < c)
  41.                         max = c;
  42.                 if (min > b)
  43.                         min = b;
  44.                 if (min > c)
  45.                         min = c;
  46.                 mid = a + b + c - max - min;
  47.                 printf("%d %d %d\n", max,mid,min);
  48.                 break;
  49.         }
  50.         case 2:
  51.         {
  52.                 int year;
  53.                 printf("请输入待查询的年份:");
  54.                 scanf("%d", &year);
  55.                 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
  56.                 {
  57.                         printf("输入的年份 %d 是闰年\n", year);
  58.                 }
  59.                 else
  60.                         printf("输入的年份 %d 不是闰年\n", year);
  61.                 break;
  62.         }
  63.         case 3:
  64.         {
  65.                 double a, b, c, s, area;
  66.                 printf("输入三角形的三条边:");
  67.                 scanf("%lf%lf%lf", &a, &b, &c);
  68.                 s = (a + b + c) / 2.0;
  69.                 area = sqrt(s*(s - a)*(s - b)*(s - c));
  70.                 printf("面积 = %.2lf\n", area);
  71.                 break;
  72.         }
  73.         case 4:
  74.         {
  75.                 int i;
  76.                 double a, b;
  77.                 char c, str[4];
  78.                 printf("请输入因数及运算符:");
  79.                 scanf("%lf%lf%s", &a, &b, str);
  80.                 for (i = 0;i < 4;i++)
  81.                 {
  82.                         if (str[i] == '+' || str[i] == '-' || str[i] == '*' || str[i] == '/')
  83.                         {
  84.                                 c = str[i];
  85.                         }
  86.                 }
  87.                 if (c == '+')
  88.                 {
  89.                         printf("%.2f\n", a + b);
  90.                 }
  91.                 else if (c == '-')
  92.                 {
  93.                         printf("%.2f\n", a - b);
  94.                 }
  95.                 else if (c == '*')
  96.                 {
  97.                         printf("%.2f\n", a*b);
  98.                 }
  99.                 else if (c == '/')
  100.                 {
  101.                         if (b != 0)
  102.                         {
  103.                                 printf("%.2f\n", a / b);
  104.                         }
  105.                         else
  106.                         {
  107.                                 printf("除数不能为0 !\n");
  108.                         }
  109.                 }
  110.                 break;
  111.         }
  112.         case 5:
  113.         {
  114.                 int i, j, min = 0, max = 0;
  115.                 int a[2][5] = {0};
  116.                 printf("请输入10个数:");
  117.                 for (i = 0;i < 2;i++)
  118.                 {
  119.                         for (j = 0;j < 5;j++)
  120.                         {
  121.                                 scanf("%d", &a[i][j]);
  122.                         }
  123.                 }

  124.                 max = a[0][0];
  125.                 min = a[0][0];
  126.                 for (i = 0;i < 2;i++)
  127.                 {
  128.                         for (j = 0;j < 5;j++)
  129.                         {
  130.                                 if (max < a[i][j])
  131.                                 {
  132.                                         max = a[i][j];
  133.                                 }
  134.                                 if (min > a[i][j])
  135.                                 {
  136.                                         min = a[i][j];
  137.                                 }
  138.                         }
  139.                 }
  140.                 printf("最大的值是:%d ", max);
  141.                 printf("最小的值是:%d ", min);
  142.                 break;
  143.         }
  144.         case 6:
  145.         {
  146.                 int i, n, a[11];
  147.                 printf("enter data: ");
  148.                 for (i = 0;i < 10;i++)
  149.                 {
  150.                      scanf("%d", &a[i]);
  151.                 }
  152.    
  153.                 n = sizeof(a) / sizeof(int);
  154.                 sort(n,a);    // 调用函数,实现选择法排序

  155.                 printf("The sorted numbers: ");
  156.                 for (i = 0;i < 10;i++)
  157.                 printf("%d ", a[i]);
  158.                 printf("\n");
  159.                 break;
  160.         }
  161.         case 7:
  162.         {
  163.                 int a[] = { 1,5,66,8,55,9,1,32,5,65,4,8,5,15,64,156,1564,15,1,8,9,7,215,
  164.                         16,45,5,6,164,15,236,2,5,55,6,4,1,59,23,4,5,314,56,15,3,54,
  165.                         1,54,54,2,4,4,5,15,698,486,56,26,98,78,456,1894,564,26,56,5 };
  166.                 int left = 0;
  167.                 int right = 9;
  168.                 int mid;
  169.                 int n;  //存放数组a中元素的个数
  170.                 int m;  //查找的数字
  171.                 int i;  //循环变量
  172.                
  173.                 n = sizeof(a) / sizeof(int);  //求出数组中所有元素的个数
  174.                 sort(n,a);

  175.                 printf("请输入待查找的数字: ");
  176.                 scanf("%d", &m);
  177.                 while (left <= right)           // 二分法查找
  178.                 {
  179.                     mid = (left + right) / 2;
  180.                     if (a[mid] > 1.5)
  181.                     {
  182.                         right = mid-1;
  183.                     }
  184.                     else if (a[mid] < 1.5)
  185.                     {
  186.                            left = mid + 1;
  187.                     }
  188.                     else
  189.                     {
  190.                            printf("在位于:%d 找到了所输入的数\n", mid);
  191.                            break;
  192.                     }
  193.                 }
  194.                 if (left > right)
  195.                 {
  196.                        printf("找不到所输入的数");
  197.                 }
  198.                 return 0;
  199.                 break;
  200.         }
  201.         case 8:
  202.         {
  203.                    // 退出控制台程序
  204.         }
  205.         }
  206. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-12-1 11:12:11 | 显示全部楼层
风过无痕1989 发表于 2020-12-1 01:23
上面的朋友已经给出了答案,而我在第 8 段那里费了几个小时,都没能成功,代码还是给你吧(前面的 7 种 cas ...

谢谢哥
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-9 02:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表