需要帮助在我的C项目中找到错误

时间:2017-12-04 15:51:30

标签: c

该项目是编写一个程序,读取三个整数,然后按顺序打印并反转。使用四个函数:main,一个用于读取数据,一个用于按顺序读取它们,另一个用于打印它们 我得到了错误:

功能'main':

[错误]输入结束时的预期声明或声明

目标'main.o'的配方失败

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

/* run this program using the console pauser or add your own getch, 
system("pause") or input loop */

int main(int argc, char *argv[]) {

int getData ( );
void printForward (int first, int second, int third);
void printReversed (int first, int second, int third);

int main (void)
{

int a;
int b;
int c;

a=getData();
b=getData();
c=getData();
printForward ( a, b, c);
printReversed ( a, b, c);

int getData();
{

int num;
printf ("Enter an integer: ");
scanf ("%d", &num);
return num;
} 

void printForward (int a, int b, int c);

{ 
printf ("\nNumbers in order: %d, %d, and %d\n", a, b, c);
return;
}

void printReversed (int a, int b, int c);
{
printf ("\nNumbers reversed: %d, %d, and %d\n",
c, b, a);
return;
}   
return 0;
}

3 个答案:

答案 0 :(得分:0)

好像你错过了关闭主要功能的简单}。 如果我不能强调这一点,那么你可以更容易地观察代码中的缩进。这是你应该考虑做更多的事情,它将帮助你和其他人,你的代码的可读性。

int main (void)
{

    int a;
    int b;
    int c;

    a=getData();
    b=getData();
    c=getData();
    printForward ( a, b, c);
    printReversed ( a, b, c);
} // THIS RIGHT HERE

int getData();
{
   // rest is the same

答案 1 :(得分:0)

除了嵌套函数定义外,函数定义中还有许多散列分号。即使您的编译器允许嵌套函数,您也需要删除那些

int getData();  <<<<===== remove trailing ;
{
...
}

printReversedprintForward相同。

答案 2 :(得分:0)

如果您的项目要求使用四个函数,我不知道您使用命令行参数的原因。我给出了以下适用于您的项目的代码。 不需要为前向数据和反向数据编写两个单独的函数。你可以通过对两者使用相同的功能来实现。只是传递tha值将是相反的。 不要在函数定义的第一行使用分号。

相关问题