鱼C论坛

 找回密码
 立即注册
查看: 2416|回复: 2

求大神指教(─.─|||

[复制链接]
发表于 2017-12-2 09:22:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

x
一共有三个小问题
题1找鞍点
遇到问题:为什么只能比较前两行而已是我算法哪里错了吗
  1. #include<stdio.h>
  2. #define h 3
  3. #define l 3
  4. main()
  5. {int a[h][l];
  6. int i,j,k,z,max,min,judge=0;
  7. for(i=0;i<h;i++)
  8. for(j=0;j<l;j++)
  9. scanf("%d",&a[i][j]);getchar();

  10. for(i=0;i<h;i++)
  11. {for(j=l-1;j>0;j--)
  12. {
  13. if(a[i][j]>a[i][j-1])
  14. {
  15. max=a[i][j];
  16. k=j;}
  17. else
  18. {max=a[i][j-1];
  19. k=j-1;}

  20. for(j=h-1;j>0;j--)
  21. {if(a[j][k]<a[j-1][k])
  22. {min=a[j][k];
  23. z=j;
  24. }
  25. else
  26. {min=a[j-1][k];
  27. z=j-1;
  28. }
  29. }
  30. if(max==min)
  31. {printf("有鞍点,为:%d \n在第%d行,第%d个\n",min,z+1,k+1);
  32. judge=1;}
  33. }
  34. if(judge==1)
  35. break;}
  36. if(judge==0)
  37. printf("没有");
  38. return 0;
  39. }

复制代码

QQ截图20171202090917.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-12-2 09:27:32 | 显示全部楼层
题2折半法找数
遇到问题:第一个数显示为什么是21,还有输入不在数列的数就不能运行了
  1. #include <stdio.h>
  2. #include <time.h>
  3. int main()
  4. {
  5.     int a[20];
  6.     int i,j,min,max,n,site=0;
  7.   time_t t;
  8.    srand((unsigned) time(&t));
  9.    for(i=0; i<20; i++)
  10.        printf("%d ", a[i]=rand() % 100);
  11.    printf("\n");

  12.   for(i=0;i<20;i++)
  13.     {
  14.         if(max<a[i])
  15.             max=a[i];
  16.         if(min>a[i])
  17.             min=a[i];
  18.     }
  19.     //printf("最大值%d,最小值%d\n",max,min);

  20.     printf("请输入要找查的数:");
  21.     scanf("%d",&n);getchar();
  22.     max=min=a[0];


  23.     i=0;
  24.     i<=20;
  25.     while(max>=min)
  26.     {
  27.         j=(max+min)/2;
  28.         a[i]=j;
  29.         i++;
  30.         if(a[i]>n)
  31.             max=j;
  32.         else if(a[i]<n)
  33.             min=j;
  34.         else if(a[i]==n)
  35.         {
  36.             site=i+1;
  37.             break;
  38.         }
  39.     }
  40.     if(site==0)
  41.         printf("该数不在数列中\n");
  42.     else
  43.         printf("该数在数列中第%d个\n",site);
  44.     return 0;
  45. }
复制代码

QQ截图20171202091014.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-2 09:32:06 | 显示全部楼层
问题3strcmp函数比较字符串
遇到问题:根据ASCII码貌似比较不对啊
emmm因为权限图片没法上传
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5.     char str1[20],str2[20];
  6.     printf("请输入第一个句子:");
  7.     gets(str1);

  8.     printf("请输入第二个句子:");
  9.     gets(str2);
  10.     printf("\n");
  11.     strcmp(str1,str2);
  12.     if(strcmp(str1,str2)>0)
  13.         printf("结果:最大的是第一个句子");
  14.     else if(strcmp(str1,str2)<0)
  15.         printf("结果:最大的是第二个句子");
  16.     else if(strcmp(str1,str2)==0)
  17.         printf("结果:一样大\n");
  18.     return 0;
  19. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-1 00:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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