編譯出錯 什么問題?



/*
aa.c - 編寫一個函數,函數的3個參數是一個字符和兩整數,字符參數是需要輸出的字符,第一個整數說明了在每行中該字符輸出的個數,而第二個整數指的是需要輸出的行數,編寫一個調用該函數的程序。
*/
#include <stdio.h>

        void ch_function(char ch;int nLine;int nLow); // 聲明 char_function();
        int main(void)
{
    int i,j;
    char ch;

    printf("輸入字符:\n");
    ch = getchar();
    printf("輸入行和列:\n");
    scanf("%d %d",&i,&j);
    void ch_function(ch,i,j);  //函數調用

    return 0;
}
        void ch_function(char ch;int nLine;int nLow) // 輸入字符打印出指定的行和列數 
{
    int i,k;
       
        for (i = 0;i < nLine;i++)
        for (k = 0;k < nLow;)
        if(putchar(ch) == ch ) k++;
}

6 个解决方案

#1



aa@MCenter:~$ gcc -o aa aa.c -Wall 
aa.c:18: error: parameter ‘nLine’ has just a forward declaration
aa.c:18: error: parameter ‘ch’ has just a forward declaration
aa.c: In function ‘main’:
aa.c:28: warning: parameter names (without types) in function declaration
aa.c: At top level:
aa.c:32: error: parameter ‘nLine’ has just a forward declaration
aa.c:32: error: parameter ‘ch’ has just a forward declaration
aa.c: In function ‘ch_function’:
aa.c:36: error: ‘nLine’ undeclared (first use in this function)
aa.c:36: error: (Each undeclared identifier is reported only once
aa.c:36: error: for each function it appears in.)
aa.c:38: error: ‘ch’ undeclared (first use in this function)

#2


  void ch_function(char ch;int nLine;int nLow); // 聲明 char_function();
聲明和實現把逗號搞成分號了

#3


謝謝,再問個不算問題的問題,如何避免語法錯誤,,
 請高手指教下, 

#4


/*謝謝樓上的指教,現在更正了程序的錯誤*/

#include <stdio.h>
void ch_fun(char ch,int nLine,int nLow);   //  
int main(void)
{
    int i,j;
    char ch; 

    printf("input char: \n");
    
    ch = getchar();
    printf("input line and low :\n");
    scanf("%d %d",&i,&j);
    ch_fun(ch,i,j);
    return 0;
}
void ch_fun(char ch,int nLine,int nLow)
{
    int i,k;
    for (i = 0;i<nLine ;i++)
    {   
      for(k = 0;k<nLow;)
        if(putchar(ch) == ch)k++;
      putchar('\n');
    }   

#5


關於函數定義(聲明)與函數調用
函數定義(聲明)的函數頭寫法:
函數返回類型 函數名(函數形參列表)
其中函數形參須有參數類型與參數名

函數調用表達式格式:
函數名(實參列表)
注意:前面不需要用函數返回類型
其中實參只用名

就LZ問題而言,問題在函數調用表達式上
void ch_function(ch,i,j);//這即不是函數調用,也不是函數聲明

另外程序中

#6


引用 3 樓 cnetlook 的回復:
謝謝,再問個不算問題的問題,如何避免語法錯誤,,
  請高手指教下,

這個只有自己多實踐吧,另外,敲代碼的時候細心一點就好啦

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com