0

学习 C,尝试编写一个程序,输出输入数字的立方和平方和。

#include <stdio.h>

main()
{
int a;
scanf("%d",a);
printf("%d",cube(a)+sqr(a));
}

cube(int x)
{
return(x*x*x);
}

sqr(int arg)
{
return(arg*arg);
}

当我运行程序时,它会在我输入一个数字后输出一些看似随机的数字串。有什么方法可以在不更改返回分配变量的用法的情况下修复它?

4

4 回答 4

5

scanf需要一个指针:

scanf("%d",&a);

代替

scanf("%d",a);
于 2013-07-23T10:02:41.587 回答
4
int a;
scanf("%d",a);

          ^

必须是&ad的转换说明符scanf需要一个指向int参数的指针。

于 2013-07-23T10:02:18.337 回答
0

您没有在 scanf 函数中给出“a”的地址。

请用:

scanf("%d", &a);
于 2013-07-23T10:09:24.303 回答
0

您需要为您的函数定义一个返回类型!

#include <stdio.h>

int main()
{
  int a;
  scanf("%d",a);
  printf("%d",cube(a)+sqr(a));
  return 0;
}

int cube(int x)
{
  return(x*x*x);
}

int sqr(int arg)
{
  return(arg*arg);
}
于 2013-07-23T10:00:58.507 回答