2017-04-17 13 views
-2
#include<stdio.h> 
#include<stdlib.h> 
int* twoSum(int* nums, int numsSize, int target) { 
    int *a=(int *)malloc(2*sizeof(int)); 
    int i,j; 
    for(i=0;i<numsSize;i++) 
     for(j=i+1;j<numsSize;j++) 
    if(nums[i]+nums[j]==target) 
    {a[0]=i;a[1]=j;} 
    return a; 
} 
void main(){ 
    int target,i; 
    int numsSize; 
    int b[2]; 
    int num[10]; 
    int *s; 
    s=b; 
    printf("Please input numsSize"); 
    scanf("%d",&numsSize); 
    for(i=0;i<numsSize;i++) 
    scanf("%d",&num[i]); 
    printf("Please input target"); 
    scanf("%d",&target); 

    s=twoSum(num,numsSize,target); 
    printf("【%d,%d】",s[0],s[1]); 
} 

私のコードには何が問題なのですか? Visual Basic C++ではスムーズに実行できますが、プラットフォーム上では、行58: 'main'の競合する型がわかります。何が起こったのかわかりません。leetcodeプラットフォームの 'main'と競合するタイプ

+2

ここには58行はありません。 –

+0

**正確**のエラーメッセージを表示してください。 – abelenky

答えて

0

このように、コードには何も問題はありませんが、微妙な問題があります。

Leetcodeの問題をここで説明する必要があるかどうかはわかりません。しかし、あなたが得ているエラーは、エラーメッセージ "Conflicting types for main"に明示されています。

leetcodeにmain()関数を書く必要はありません。事はleetcodeがすでに署名

int main(int argc, char **argv) 

ですから、別の署名で二main()関数を定義し、それはエラー出て、我々は今、2(メイン矛盾があるため)との暗黙のmain()関数を持っているということです関数宣言(leetcodeと別の定義で定義されています)。

main()のコードを削除して、単にそのプラットフォームにtwoSum()関数を追加すれば正常に動作します。

関連する問題