在代码块中编译但不在hackerrank中编译

时间:2018-08-24 05:52:47

标签: c string

我的程序在代码块上运行正常,没有警告,但是当我将代码提交给hackerrank时显示错误

 solution.c: In function ‘main’:
 solution.c:21:6: error: ‘main’ is normally a non-static function [- 
 Werror=main]
 int  main()
  ^~~~
cc1: some warnings being treated as errors

这是我的实际代码,是关于数据类型和字符串的简单问题

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char* concat(const char *s1, const char *s2)
{
    char *result = malloc(strlen(s1) + strlen(s2)+1 ); // +1 for the null-terminator
    // in real code you would check for errors in malloc here
    strcpy(result, s1);
    strcat(result, s2);
    return result;
}
int main(){
    int i=4.0,x;
    double d=4.0,y;
    char result[301],z[100];
    char* p=result;
    char s[50]="HackerRank ";
    scanf("%d",&x);
    scanf("%lf ",&y);

    int sum1=i+x;
    double sum2=d+y;
    p=concat(s,z);
    printf("%d\n",sum1);
    printf("%lf\n",sum2);
    printf("%s",p);



      return 0;



}

2 个答案:

答案 0 :(得分:1)

solution.c:21:6: error: ‘main’ is normally a non-static function [- Werror=main]

该错误通常是由于左括号和右括号之间的不匹配引起的。 因此,在编译之前,请检查所有方括号是否再次匹配。

请参阅此question,其中提到了相同的问题。

答案 1 :(得分:-1)

如果您要在main内部创建main,那么您也可能会遇到相同的问题