h1366474214 2020-11-17 00:28 采纳率: 0%
浏览 109

c语言找鞍点问题(求救)

#include<stdio.h>
int main()
{
    int m,n;
    printf("请输入列数:");  
    //输入列数 
    scanf("%d",&m);
    printf("\n");   
    printf("请输入行数:");  
    //输入行数 
    scanf("%d",&n);
    int a[m][n],i,j,max,b[m],c[m],i1;//数组a[m][n].自增i,j; max为行最大的数 
    for(i=0;i<m;i++)    //每行假设有鞍点 
    b[i]=0;
    printf("输入%d*%d个数:\n",m,n);
    //输入m*n个数 
    for(i=0;i<m;i++)
    for(j=0;j<n;j++)
    scanf("%d",&a[i][j]);
    for(i=0;i<m;i++){
        max=a[i][0];
        for(j=0;j<n;j++){
            if(max<a[i][j]){
            max=a[i][j];  //每行最大的数赋值给max 
        } 
    }
        for(i1=0;i1<m;i1++){
        if(a[i1][j]<max){ //假设该列存在小于max的数 
        b[i]=1;  //用来记录该行不鞍点 
    }
    }
    c[i]=max; //每行的max存到c[i]里
 } 
 for(i=0;i<m;i++){
 if(b[i]==0){
 printf("第%d行存在鞍点为:%d\n",(i+1),c[i]);
}
 if(b[i]==1)
 printf("%d行无鞍点\n",(i+1));
}
 return 0;
}

能帮我看看哪里出错了吗?救救孩子!

  • 写回答

1条回答 默认 最新

  • leoking96 2020-11-17 16:05
    关注
    #include<stdio.h>
    int main()
    {
        int m,n;
        printf("请输入列数:");  
        //输入列数 
        scanf("%d",&m);
        printf("\n");   
        printf("请输入行数:");  
        //输入行数 
        scanf("%d",&n);
        int a[m][n],i,j,max,b[n],c[n],i1,k;//数组a[m][n].自增i,j; max为行最大的数 
        for(i=0;i<n;i++)    //每行假设有鞍点 
        b[i]=0;
        printf("输入%d个数:\n",m*n);
        //输入m*n个数 
        for(i=0;i<n;i++)
        for(j=0;j<m;j++)
        scanf("%d",&a[i][j]);
          for(i=0;i<n;i++){
               for(j=0;j<m;j++)
        printf("%d",a[i][j]);
               printf("\n");
          }
        for(i=0;i<n;i++){
            max=a[i][0];
            for(j=0;j<m;j++)
                if(max<a[i][j]){
                max=a[i][j]; 
                k=j;
                printf("%d\n",max);//每行最大的数赋值给max 
            } 
        
            for(i1=0;i1<n;i1++)
            if(a[i1][k]<max){ //假设该列存在小于max的数 
            b[i]=1;
            printf("%d\n",a[i1][j]);//用来记录该行不鞍点 
        }
        c[i]=max; //每行的max存到c[i]里
     } 
     for(i=0;i<n;i++){
     if(b[i]==0)
     printf("第%d行存在鞍点为:%d\n",i+1,c[i]);
    
     if(b[i]==1)
     printf("第%d行无鞍点\n",i+1);
    }
     return 0;
    }

    你的注释像屎一样。

    评论

报告相同问题?