回 帖 发 新 帖 刷新版面

主题:帮帮忙看看我的程序问什么错误?

#define  M  1024
#include"stdio.h"
#include"math.h"

int com(int a[M],int n)
{ int i,j=0,max,min;
    for(i=0;i<n;i++)
      for(j=0;j<n;j++)
        { if(a[i]>=a[j])
                   max=i;
             else continue;
        }

   for(i=0;i<n;i++)
     for(j=0;j<n;j++)
        {if(a[i]<=a[j])
            min=i;
         else continue;
          }
if(max>min)  return(max-min);
    else  return("-1");
}
main()
{int i,n,k,j;
int a[M],b[M];
  
for(j=0;j<2;j++)
   {  scanf("%d",&n);   
if(n>0&&n<=5000)
       {   for(i=0;i<n;i++)
           scanf("%d",&a[i]);
           k=com(a,n);
                    printf("%d\n",k);
    
          }  
   }
}



  题目:  http://acm.pku.edu.cn/JudgeOnline/中的2452

回复列表 (共12个回复)

沙发

给你修改好了,你看一下吧,记得评分哦呵呵
#define  M  1024
#include"stdio.h"
#include"math.h"

int com(int a[M],int n)
{ int i, temp_max, temp_min, max, min;
    temp_max = temp_min = a[0];
    max = min = 0;
    for(i=1;i<n;i++) {//这样就可以在一遍循环中求到max和min
        if(a[i] > temp_max){
             temp_max = a[i];
            max = i;
        }
        if(a[i] < temp_min){
            temp_min = a[i];
            min = i;
        }
    }
    if(max>min)  return(max-min);
        else  return(-1);//不要加引号 ,否则返回字符串而非整数
}
main()
{
    int i,n,k,j;
    int a[M],b[M];  
    for(j=0;j<2;j++){
        puts("\ninput the dimision\n");
        scanf("%d",&n);   
        if(n>0&&n<=5000)
           {   
               for(i=0;i<n;i++) {
            printf("input the %dth elem:   ", i);
                   scanf("%d",&a[i]);
               }
               k=com(a,n);
            printf("``%d``\n",k);
        }  
   }
}

板凳

但是还是错误

3 楼

不会的,我在机子上已经调过了,你告诉我什么情况?????也许编译器

4 楼

你在http://acm.pku.edu.cn
上运行一下你就知道了

5 楼

我是在cygwin下运行的,要不你把报错信息发给我.我再看一下,奇怪了

6 楼

#define  M  1024
#include"stdio.h"
#include"math.h"

int com(int a[M],int n)
{ int i, temp_max, temp_min, max, min;
    temp_max = temp_min = a[0];
    max = min = 0;
    for(i=1;i<n;i++) {
        if(a[i] > temp_max){
             temp_max = a[i];
            max = i;
        }
        if(a[i] < temp_min){
            temp_min = a[i];
            min = i;
        }
    }
    if(max>min)  return(max-min);
        else  return(-1);
}
main()
{
    int i,n,k,j;
    int a[M],b[M];  
    for(j=0;j<2;j++){
        scanf("%d",&n);   
        if(n>0&&n<=5000)
           {   
               for(i=0;i<n;i++)
                   scanf("%d",&a[i]);
               k=com(a,n);
            printf("%d\n",k);
        }  
   }
}

Problem Id:2452  User Id:tcxgsy
Memory:84K  Time:0MS
Language:C  Result:Wrong Answer

7 楼

分析报告 是没有 就一个wrong answer

8 楼

我把上面函数有加了提示符,你在别的环境,如 tc 或者 vc 上试一下,我刚在cygwin下又试了,可是没问题啊...是不你的那个编译环境对代码有什么特殊要求啊

9 楼

你可以打开他的系统看看

10 楼

http://acm.pku.edu.cn/JudgeOnline/

我来回复

您尚未登录,请登录后再回复。点此登录或注册