0

我在使用下面的代码时遇到了一些问题;我知道这对于您更有经验的编码人员来说是基本的东西,但这是我第一次尝试用 C 编码一些东西,所以请多多包涵。

#include <stdio.h>

int main()
{
    printf("This program, or function, substitutes one given number for another given number, and then places the former with the latter number. ");

    float y1 = 10;  /* Assign value to variable 1*/
    float y2 = 20;  /* Assign value to variable 2*/
    float y3 = 30;  /* Assign value to variable 3*/
    float y4 = 40;  /* Assign value to variable 4*/

    void sub( float *, float *, float *, float * );                 /*declare function prototype*/

    printf("\nThe numbers' given values before the aforementioned function:  Number 1 = %f , Number 2 = %f\n , Number 3 = &f , Number 4 = %f", y1, y2, y3, y4 );
    sub( &y1, &y2, &y3, &y4 );   /*This is where the function, to move the numbers, is called */
    printf("\nThe numbers' given values after the aforementioned function:   Number 1 = %f , Number 2 = %f\n , Number 3 = &f , Number 4 = %f", y1, y2, y3, y4 );
}

void sub(float *z1, float *z2, float *n3, float *n4)
{
    int z;
    int n;
    z = *z1;
    *z1 = *z2;
    *z2 = z;
    n = *n3;
    *n3 = *n4;
    *n4 = n;
}

输出是:

This program, or function, substitutes one given number for another given number, and then places the former with the latter number. 

The numbers' given values before the aforementioned function:  Number 1 = 10.000000 , Number 2 = 20.000000  , Number 3 = &f , Number 4 =
30.000000

The numbers' given values after the aforementioned function:   Number 1 = 20.000000 , Number 2 = 10.000000  , Number 3 = &f , Number 4 =
40.000000

我的问题是:如何更改代码,以便“数字 3”像其他变量一样替换自己。

4

2 回答 2

3

您只是有一个错字:将 &f 更改为 %f for

数字 3 = &f

于 2013-05-02T04:45:23.773 回答
0

问题出在你的 printf 上。请在您的 printf 语句中更改为 3 号&f%f

于 2013-05-02T04:48:32.490 回答