在ci中交换两个数字只是google c程序中的编码然后我写的代码是不同的

问题描述 投票:-2回答:1

我想在c中编写一个程序来交换两个数字。我只是谷歌编程c程序然后我写的代码是不同的。有一些误解我无法弄清楚。请有人强调我的问题,谢谢。

在这里我把num1,num2,temp作为变量。然后我将临时值分配给num1,知道后来temp将其分配给num2的值(我认为第4行和第5行将第7行printf作为num1由于交换而将值设为num2。然后,第6行将第8行printf作为num2的值作为num1的值。不幸的是,结果不同

int num1,num2,temp;
    printf("give no 1 and no 2  ");
    scanf("%d %d",&num1, &num2);
   num1=temp;
   temp=num2;
   num2=num1;
 printf("\n After swapping,num1=%d" ,num1);
    printf("\n afterswapping, num2=%d",num2);

预期两个数字交换,我给变量的值是什么,我接收输出num1为34,num2也为34

c
1个回答
0
投票

你应该做 :

int num1,num2,temp;
    printf("give no 1 and no 2  ");
    scanf("%d %d",&num1, &num2);
    temp = num1;
    num1 = num2;
    num2 = temp;
    printf("\n After swapping,num1=%d" ,num1);
    printf("\n afterswapping, num2=%d",num2);

绘制一个跟踪表,看看你写的是没有进行交换。 FOA,在temp变量中保存一个数字,然后你可以运行用第二个数字保存的值的变量,然后将你保存在temp中的数字放在num1中。

请注意,您可以在没有Temp变量的情况下以更优雅的方式执行此操作:

num1 = num1 + num2
num2 = num1 - num2
num1 = num1 - num2

试试吧!

© www.soinside.com 2019 - 2024. All rights reserved.