2011-10-21 64 views
3

我正在制作一个程序,它需要一个三位整数并将其分成两个整数。 224将变成2204114将变为1104c程序,指针

基本上,你用模数来做。我写了我认为应该工作的东西,编译器一直说在&big之前有一个缺失的括号,但是任何更改都会导致更多的错误发生。

#include <stdio.h> 

void split_num(int complete, int *big, int *little){ 
    *little = complete%10; 
    *big = complete - *little; 
    return; 
} 


int main() 
{ 
    int complete, big, little; 

    printf("Give an integer to split: \n"); 
    scanf("%d", &complete); 

    void split_num(complete, &big, &little); 
    printf("Num split into 2 is : %d and %d", big, little); 

    return 0; 
} 
+0

看起来你不想在'main'中调用'split_num'前的'void'这个词。看看会发生什么,如果你删除对这个修复感兴趣的 – marnir

+0

...仍然学习指针我的自我。 –

回答

3

取出split_num()调用中的“void”。它只用于函数声明(表示它不返回值),而不是实际调用它。

0

线(在main())

void split_num(complete, &big, &little); 

应该读

split_num(complete, &big, &little); 
0

除去空隙的线 “空隙split_num”。在调用方法时,您不指定返回值(void)。

0

你有以下行错误:

void split_num(complete, &big, &little); 

删除返回void类型和调用功能,像这样:

split_num(complete, &big, &little); 

的回报; split_num(...)函数中的语句也是不必要的。

+0

你可以给我一个例子,当一个函数不会是“无效的”,并且需要返回一个数字吗?谢谢你告诉我删除虚空,我很高兴它的工作原理! –

+1

@Arthur你指的是函数返回类型。当一个函数有一个void返回类型时,它不会返回任何东西。返回一个整数的函数的一个例子是int main(),如果C程序成功执行,则返回零,否则返回非零值。 – Garee