-2

このコードの main() は、呼び出された関数 (この場合は pro_afai) の変数の結果を認識しません。

#include <stdio.h>

ここで関数 pro_afai を作成します

int pro_afai(int x,int y){
int pro,afai;
pro=x+y;
afai=x-y;}

main(){

ここで、pro=0 と afai=0 を main に宣言しようとしましたが、0,0 を出力するため、まだ機能しません。printf は関数から結果を取得しません。

int i,j;
int pro,afai;
printf("2 num:");
scanf("%d %d",&i,&j);
pro_afai(i,j);
printf("\npro=%d\nafai=%d",pro,afai);})

ただし、printf は通常の結果を出力しません。どうすれば修正できますか??

4

1 に答える 1

3

pro関数へのポインターと関数へのポインターを渡す必要がありafaiます。pro_afai

int pro_afai(int* pro, int* afai, int x,int y){
  *pro=x+y;
  *afai=x-y;
}

int main()
{
  int i,j;
  int pro,afai;
  printf("2 num:");
  scanf("%d %d",&i,&j);
  pro_afai(&pro, &afai, i,j);
  printf("\npro=%d\nafai=%d",pro,afai);
  return 0;
}

既存のコードには、完全に独立した変数proとの2afaiつのペアがありました。それに変更を加えるには、既存のペアを main から pro_afai に渡す必要があります。その変数へのポインターを関数に渡すことでそれを行うことができます。pro_afaimainpro_afai

于 2013-09-23T12:32:13.310 に答える