在ci中交换两个数字只需在c程序中搜索编码,然后我写的代码就不同了
我想用c写一个程序来交换两个数字。我只是用谷歌搜索c程序中的编码,然后我写的代码就不同了。有一些误解我无法理解。请有人强调我的问题,谢谢 在这里,我把num1,num2,temp作为变量。然后我把temp值分配给num1,知道后来temp被分配给num2的值(我认为第4行和第5行会给第7行printf作为num1的值,因为交换。然后第6行给第8行printf作为num2的值,作为num1的值)。 不幸的是结果不同在ci中交换两个数字只需在c程序中搜索编码,然后我写的代码就不同了,c,C,我想用c写一个程序来交换两个数字。我只是用谷歌搜索c程序中的编码,然后我写的代码就不同了。有一些误解我无法理解。请有人强调我的问题,谢谢 在这里,我把num1,num2,temp作为变量。然后我把temp值分配给num1,知道后来temp被分配给num2的值(我认为第4行和第5行会给第7行printf作为num1的值,因为交换。然后第6行给第8行printf作为num2的值,作为num1的值)。 不幸的是结果不同 int num1,num2,temp; printf("give no 1
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
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变量中保存一个数字,然后您可以运行使用第二个num保存的值的变量,然后,将保存在temp中的值放在num1中
注意:您可以在不使用Temp变量的情况下以更优雅的方式执行此操作:
num1 = num1 + num2
num2 = num1 - num2
num1 = num1 - num2
试试看!只需阅读您编写的代码。在纸上绘制代表变量的框,并逐步应用更改。您现在所做的没有任何意义。此外,您的程序不会检查
scanf
的返回值,这是一个错误。这应该会有帮助: