我在使用指针时遇到了一些麻烦。
它的要点是,我试图在一个函数中定义指针并在我的 main 中调用该函数以使用这些指针。我的任务的确切说明如下:
编写两个函数,一个从键盘读取三个数字,另一个打印关于这三个数字的一些信息。
输入功能
编写一个具有三个整数指针参数的函数,并要求用户输入三个整数。在键盘上输入的值应该读入存储在指针参数中的地址。
注意:回想一下,scanf 需要变量的地址,而指针存储地址。
打印值
编写第二个名为 a2question2 的函数,它没有返回值,也没有参数。该函数应声明三个整数变量,然后使用您的输入函数将值读入这些变量。然后,该函数应打印总和、平均值、乘积以及这些数字中的最小和最大。
这是我到目前为止所拥有的:
int pntloc (int *x, int *y, int *z){
int a = 0;
int b = 0;
int c = 0;
printf("Please enter integer #1: ");
scanf ("%d", & a);
printf ("Please enter integer #2: ");
scanf ("%d", & b);
printf("Please enter integer #3: ");
scanf ("%d", & c);
*x = &a;
*y = &b;
*z = &c;
return *x, *y, *z;
}
// Fourth function
main (){
int x, y, z;
pntloc(x, y, z);
int sum = 0;
int average = 0;
int product = 0;
int smallest = 0;
int largest = 0;
printf ("%d", x);
}
但是,在程序向我询问三个整数之后,它什么也没做就崩溃了。
第一个函数本身可以正常工作(通过使其成为不带参数的主函数并打印指针值来对其进行测试),即:
printf ("%d", *x);
所以我猜这些值只是没有从一个函数传递到下一个函数。我尝试了各种编写第一个和第二个函数的方法,但似乎没有任何效果。
我得到的最好的结果是让程序不会崩溃,但打印的值与我之前输入的值相差无几。
任何想法如何做到这一点?