2016-05-28 13 views
-4

たとえばM = 11-735 +それは[1-2] + [2-7]として6を与える 誰かが私にこれを解決する方法を助けてください??私は最大と最小を見つけるために配列を使用していますが、その後、私はどのように進めるか分からない。隣接する2つの数値の間の絶対差の合計は、配列内で最大である。

#include <stdio.h> 

int main() 
{ 
    long int a[100000]; 
    int n,i; 
    scanf("%d",&n); 
    for(int i=0;i<n;i++){ 
     scanf("%lu",&a[i]); 
    } 
    int max=a[0]; 
    int min=a[0]; 
    for(int i=0;i<n;i++){ 
     if(a[i]>max){ 
      max=a[i]; 
     }else if(a[i]<min){ 
      min=a[i]; 
     } 
    } 
    printf("%d\n",max); 
    printf("%d\n",min); 

    return 0; 
} 
+0

この質問はトピックとしてはっきりと私のコード要求を書いているので、質問ではありません。まず[Ask]ページをお読みください。 :) –

+0

あなたの研究努力を時間までに示してください。まず[Ask]ページをお読みください。 –

+1

sourav im so new so so inconvienianceにごめんなさい – CodeRed

答えて

1
#include <stdio.h> 
#include <stdlib.h> 
#include <limits.h> 

int main(void){ 
    long int a[100000], max = LONG_MIN; 
    int n; 

    scanf("%d", &n); 
    for(int i = 0; i < n; i++){ 
     scanf("%lu", &a[i]); 
     if(a[i] > max) 
      max = a[i]; 
    } 
    long long int sum = 0; 
    for(int i = 0; i < n; i++){ 
     sum += labs(a[i] - max); 
    } 
    printf("%lld\n", sum); 

    return 0; 
} 
1

"M=11を与える(1,2,7), M =[1-7]+[2-7}ために例えば" OPの指定された配列これは
(max - a[0]) + (max - a[1]) + ... + (max - a[n-1])であるための必要はありません - 私は閉じるために投票しています>n*max - sum(a[])

#include <stdio.h> 

int main(void) { 
    int max=INT_MIN; 
    int min=INT_MAX; 
    long long sum = 0; 
    int n; 
    scanf("%d",&n); 
    for(int i=0;i<n;i++){ 
     int a; 
     if (scanf("%d",&a) != 1) { 
     puts("fail"); 
     return -1; 
     } 
     if (a > max) max = a; 
     if (a > min) min = a; 
     sum += a; 
    } 
    printf("min %d\n", min); 
    printf("max %d\n", max); 

    printf("m %lld\n", 1LL*n*max - sum); 
    return 0; 
} 
関連する問題