用js输入20个不同的整数,找出其中最小的数,将它与第1个输入的数交换位置之后输出这些数。要求:用数组解决任务,在输入整数时各整数之间用空隔分隔。
时间: 2024-05-09 19:22:12 浏览: 13
好的,我来回答你的问题。以下是解决该问题的 JavaScript 代码:
```javascript
// 读入20个整数
var nums = [];
var inputStr = prompt("请输入20个不同的整数,用空格分隔:");
inputStr.trim().split(/\s+/).forEach(function(str) {
var num = parseInt(str);
if (!isNaN(num)) {
nums.push(num);
}
});
// 找到最小数的位置
var minIndex = 0;
for (var i = 1; i < nums.length; i++) {
if (nums[i] < nums[minIndex]) {
minIndex = i;
}
}
// 交换最小数和第一个数
var temp = nums[minIndex];
nums[minIndex] = nums[0];
nums[0] = temp;
// 输出结果
console.log(nums.join(" "));
```
请将以上代码复制到 JS 运行环境中执行,即可得到答案。其中 `prompt` 方法用于读入用户输入的字符串,`join` 方法用于将数组元素用空格连接为字符串输出,其他部分用数组的操作实现了交换和最小值查找等功能。
相关问题
一个整数数组找出其中最小的正整数的index,若找不到返回-1要求只遍历一次,用JavaScript编写
可以使用桶排序的思想来实现:
```javascript
function findSmallestPositiveIntegerIndex(nums) {
const n = nums.length;
// 将所有小于等于0的数替换为n+1
for (let i = 0; i < n; i++) {
if (nums[i] <= 0) {
nums[i] = n + 1;
}
}
// 将每个出现过的正整数作为下标,将对应位置上的数取相反数
for (let i = 0; i < n; i++) {
const num = Math.abs(nums[i]);
if (num <= n) {
nums[num - 1] = -Math.abs(nums[num - 1]);
}
}
// 找到第一个大于0的数的下标
for (let i = 0; i < n; i++) {
if (nums[i] > 0) {
return i;
}
}
// 找不到则返回-1
return -1;
}
```
使用示例:
```javascript
const nums = [3, 4, -1, 1];
const index = findSmallestPositiveIntegerIndex(nums);
console.log(index); // 2
```
时间复杂度为 $O(n)$,空间复杂度为 $O(1)$。
利用js输入一个整数,计算出它的相反数
以下是利用 JavaScript 编写的计算一个整数相反数的代码:
```javascript
let num = parseInt(prompt("请输入一个整数:"));
let oppositeNum = -num;
console.log(`原数为 ${num},相反数为 ${oppositeNum}`);
```
首先通过 `prompt` 函数获取用户输入的整数,然后将其转换成整型并赋值给变量 `num`。接着通过 `-` 运算符计算出其相反数,赋值给变量 `oppositeNum`。最后通过 `console.log` 函数输出结果。
需要注意的是,这段代码中假定用户输入的是一个整数,如果输入了非整数或者无法转换成整数的字符串,会导致计算结果出错。在实际开发中,应该加入输入数据的校验,以保证程序的健壮性。