0

C を学習し、入力された数値の 3 乗と 2 乗の和を出力するプログラムをコーディングしようとしています。

#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

関数に戻り値の型を定義する必要があります!

#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 に答える
0

scanf 関数で「a」のアドレスが指定されていません。

使ってください:

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