鱼C论坛

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

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

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

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

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

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

for(i=0;i<h;i++)
{for(j=l-1;j>0;j--)
{
if(a[i][j]>a[i][j-1])
{
max=a[i][j];
k=j;}
else
{max=a[i][j-1];
k=j-1;}

for(j=h-1;j>0;j--)
{if(a[j][k]<a[j-1][k])
{min=a[j][k];
z=j;
}
else
{min=a[j-1][k];
z=j-1;
}
}
if(max==min)
{printf("有鞍点,为:%d \n在第%d行,第%d个\n",min,z+1,k+1);
judge=1;}
}
if(judge==1)
break;}
if(judge==0)
printf("没有");
return 0;
}
QQ截图20171202090917.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

  for(i=0;i<20;i++)
    {
        if(max<a[i])
            max=a[i];
        if(min>a[i])
            min=a[i];
    }
    //printf("最大值%d,最小值%d\n",max,min);

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


    i=0;
    i<=20;
    while(max>=min)
    {
        j=(max+min)/2;
        a[i]=j;
        i++;
        if(a[i]>n)
            max=j;
        else if(a[i]<n)
            min=j;
        else if(a[i]==n)
        {
            site=i+1;
            break;
        }
    }
    if(site==0)
        printf("该数不在数列中\n");
    else
        printf("该数在数列中第%d个\n",site);
    return 0;
}
QQ截图20171202091014.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

    printf("请输入第二个句子:");
    gets(str2);
    printf("\n");
    strcmp(str1,str2);
    if(strcmp(str1,str2)>0)
        printf("结果:最大的是第一个句子");
    else if(strcmp(str1,str2)<0)
        printf("结果:最大的是第二个句子");
    else if(strcmp(str1,str2)==0)
        printf("结果:一样大\n");
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-1 01:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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