主题:帮帮忙看看我的程序问什么错误?
			
 tcxgsy
				 [专家分:450]  发布于 2005-08-09 14:45:00							
			#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个回复)
		
								
				沙发
				
					
warmharted [专家分:700]  发布于 2005-08-10 17:21:00				
				给你修改好了,你看一下吧,记得评分哦呵呵
#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);
        }  
   }
}
							 
						
				板凳
				
					
tcxgsy [专家分:450]  发布于 2005-08-10 23:18:00				
				但是还是错误
							 
						
				3 楼
				
					
warmharted [专家分:700]  发布于 2005-08-11 08:45:00				
				不会的,我在机子上已经调过了,你告诉我什么情况?????也许编译器
							 
						
				4 楼
				
					
tcxgsy [专家分:450]  发布于 2005-08-11 10:47:00				
				你在http://acm.pku.edu.cn
上运行一下你就知道了
							 
						
				5 楼
				
					
warmharted [专家分:700]  发布于 2005-08-11 12:36:00				
				我是在cygwin下运行的,要不你把报错信息发给我.我再看一下,奇怪了
							 
						
				6 楼
				
					
tcxgsy [专家分:450]  发布于 2005-08-11 12:41:00				
				#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 楼
				
					
tcxgsy [专家分:450]  发布于 2005-08-11 12:42:00				
				分析报告 是没有 就一个wrong answer
							 
						
				8 楼
				
					
warmharted [专家分:700]  发布于 2005-08-11 12:47:00				
				我把上面函数有加了提示符,你在别的环境,如 tc 或者 vc 上试一下,我刚在cygwin下又试了,可是没问题啊...是不你的那个编译环境对代码有什么特殊要求啊
							 
						
				9 楼
				
					
tcxgsy [专家分:450]  发布于 2005-08-11 12:48:00				
				你可以打开他的系统看看
							 
						
				10 楼
				
					
tcxgsy [专家分:450]  发布于 2005-08-11 12:49:00				
				http://acm.pku.edu.cn/JudgeOnline/
							 
									
			
我来回复