C语言 : Need an explanation for errors in using function

标签 c function

我是这个网站和编程的新手,所以请耐心等待。我决定从学习 C 开始学习编程。现在,我仍然对 stdio.h 之外一无所知。不管怎样,我现在遇到了一个新话题,那就是函数,我想尝试用它来做点什么。

但是,我从来没有机会知道我的算法是否正确 由于编译时的错误,我真的不明白 编译器的错误信息试图告诉我。我不知道是什么导致了这些错误。 因此,我需要有人看一下我的代码并指导/解释/教我, 任何东西。

我正在尝试使用函数以棋盘方式打印出 X 和 O,这是 我的代码。


int function_X;                                                         
int function_O;                                                               
int size_controller;                                                          

main()                                                            
{                                                                             
    int i;                                                                     
    int j;                                                                     
    int width;                                                                
    int height;

    clrscr();                                                                  

    printf("Width: \n");                                                       
    scanf("%d", &width);

    printf("Height: \n");                                                      
    scanf("%d", &height);

    for(j=0; j<height; j++)                                                   
    {                                                                          
        for(i=0; i<width; i++)                                                  
        {                                                                      
            if(size_controller(i) )                                              
            {                                                                 
                printf("\n");                                                     
            }                                  

            if(function_X(i, j) )                                              
            {           
                printf("X");                                                    
            } 

            if(function_O(i, j) )                                                      
            {                                                                
                printf("O");                                     
            }                                                                
        }                                                                  
    } 

    return 0;
}


int size_controller(int i)                                                    
{                                                                           
    if(i%width == 0)                                                           
    {                                                                          
        return 1;                                                               
    }                                                                          
    else                                                                       
    {                                                                          
        return 0;                                                              
    }                                                                         
}                                                                             


int function_X(int i, int j)                                                 
{                                                                             
    if((j%2 != 0) && (i%2 != 0) || (j%2 == 0) && (i%2 == 0))                   
    {                                                                          
        return 1;                                                               
    }                                                                          
    else                                                                      
    {                                                                          
        return 0;
    }   
}

int function_O(int i, int j)                                                  
{                                                                             
    if((j%2 != 0) && (i%2 == 0) || (j%2 == 0) && (i%2 != 0))                  
    {                                                                          
        return 1;                                                               
    }                                                                        
    else                                                                     
    {                                                                          
        return 0;                                                             
    }                                                                      
}                                                                          

当我尝试运行该程序时,编译器声明了 7 个错误和 1 个警告:

错误 01.C 27:调用非函数
错误 01.C 32:调用非函数
错误 01.C 37:调用非函数
错误 01.C 48:重新声明“size_controller”时类型不匹配 错误 01.C 49: undefined symbol “宽度”
警告 01.C 57:从未使用过参数“i”
错误 01.C 60:重新声明“function_X”时类型不匹配
错误 01.C 72:重新声明“function_O”时类型不匹配

请帮帮我!

最佳答案

更改这些(看起来像普通变量):

int function_X;                                                         
int function_O;                                                               
int size_controller;

对于这些(看起来像函数声明):

int size_controller(int i, int width); /* Needs width parameter. */
int function_X(int i, int j);
int function_O(int i, int j);

但唯一真正明智的建议是找到一本像样的书并学习,这些确实是您本可以避免的问题。

关于C语言 : Need an explanation for errors in using function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9051749/

相关文章:

c - 在 C 编程中使用 Influxdb 连接引发对 influxdb_client new 的 undefined reference

JavaScript:编写函数,将一个对象和一个函数数组作为输入参数并返回一个数组

C - 指针作为参数

c - Windows 套接字错误代码 10055

c - C 中 PriorityQueue 的问题

c - 如何修复 'for' 循环,使其一直循环直到我输入 x?

c - 解释 shellcode

python - 在python中缓存函数的最后k个结果

c++ - 为什么这段代码不起作用? (原型(prototype)中的 &array)

c# - 显示消息框后如何停止功能