c - 尝试交换四个数字但输出 87 2 次
问题描述
我正在尝试交换四个数字,但在输出中得到 87 2 次。
代码
#include <stdio.h>
int main()
{
int n1, n2, n3, n4, n5;
printf("Enter 4 Numbers: ");
scanf("%d %d %d %d", &n1, &n2, &n3, &n4);
if ((n1 >= 72 && n1 <= 820) &&
(n2 >= 72 && n2 <= 820) &&
(n3 >= 72 && n3 <= 820) &&
(n4 >= 72 && n4 <= 820))
n4 = n1;
n1 = n2;
n2 = n3;
n3 = n4;
printf("\nAfter Interchanging n1, n2, n3 and n4 are %d %d %d %d", n1, n2, n3, n4);
return 0;
}
输出
Enter 4 Numbers: 87 98 90 76
After Interchanging n1, n2, n3 and n4 are 98 90 87 87
解决方案
n4 = n1;
删除 的原始值n4
。您将需要使用另一个变量来临时保存该值。此外,您似乎忘记{}
在if
声明后添加。
#include <stdio.h>
int main() {
int n1, n2, n3, n4 ,n5;
printf ("Enter 4 Numbers: ");
scanf ("%d %d %d %d", &n1, &n2, &n3, &n4);
if ((n1>=72 && n1<=820) && (n2>=72 && n2<=820)
&& (n3>=72 && n3<=820) && (n4>=72 && n4<=820)) {
int t = n4;
n4 = n1;
n1 = n2;
n2 = n3;
n3 = t;
}
printf ("\nAfter Interchanging n1, n2, n3 and n4 are %d %d %d %d" \
,n1, n2, n3, n4);
return 0;
}
为了98 90 87 76
从输入中获得输出87 98 90 76
,交换部分
int t = n4;
n4 = n1;
n1 = n2;
n2 = n3;
n3 = t;
应该:
int t = n3;
n3 = n1;
n1 = n2;
n2 = t;
推荐阅读
- python - 使用枕头时的图像粘贴问题 - python
- c++ - 当您将内存地址传递给具有指针传递参数的函数时会发生什么?
- javascript - 选择/取消选择单选按钮时显示/隐藏表单
- reactjs - 如何使用 React 更改数据集?
- javascript - Chrome扩展程序:防止点击内容脚本
- python - 数组中相同列表的出现次数
- docker - How to use Docker Host Service Connection in Azure Pipelines
- python - matplotlib 条形图 - 只有大小为 1 的数组可以转换为 Python 标量
- c++ - 如何在 Qt 中合并两个 QJsonObjects?
- error-handling - 尝试从文本文件中提取特定数据行并创建新的输出文本文件