由键盘输入20个整数,统计不同数字的个数。
时间: 2023-04-30 18:01:43 浏览: 106
首先,我们需要定义一个空的集合,用于存储不同的数字。然后,通过循环输入20个整数,并将每个数字添加到集合中。最后,输出集合的长度即可得到不同数字的个数。
代码如下:
```
nums = set() # 定义一个空集合
for i in range(20):
num = int(input("请输入一个整数:"))
nums.add(num) # 将输入的数字添加到集合中
print("不同数字的个数为:", len(nums)) # 输出集合的长度
```
相关问题
由键盘输入20个整数,统计不同数字的个数
### 回答1:
可以使用一个数组来记录每个数字出现的次数,最后统计不同数字的个数即可。具体步骤如下:
1. 定义一个长度为100的数组count,用于记录每个数字出现的次数,初始值都为。
2. 通过循环输入20个整数,每输入一个数就在count数组中对应的位置加1。
3. 遍历count数组,统计值不为的元素个数,即为不同数字的个数。
示例代码如下:
```python
count = [] * 100 # 定义一个长度为100的数组count,初始值都为
for i in range(20):
num = int(input("请输入第{}个整数:".format(i+1)))
count[num] += 1 # 在count数组中对应的位置加1
diff_num = # 不同数字的个数
for i in range(100):
if count[i] != :
diff_num += 1
print("不同数字的个数为:", diff_num)
```
注意:上述代码中假设输入的整数都在~99之间,如果输入的整数可能超出这个范围,需要根据实际情况调整数组长度。
### 回答2:
要统计20个整数中不同数字的个数,可以使用一个集合来存储出现的不同数字。
具体的步骤如下:
1. 定义一个空的集合,用于存储不同数字。
2. 通过循环输入20个整数。
3. 对于每个输入的整数,判断它是否已经存在于集合中。
- 如果已经存在,则不进行任何操作。
- 如果不存在,则将该整数加入集合中。
4. 循环结束后,集合中的元素个数即为不同数字的个数。
5. 输出不同数字的个数。
下面是一段示例代码实现上述步骤:
```python
num_set = set() # 定义一个空的集合
# 循环输入20个整数
for i in range(20):
num = int(input("请输入第{}个整数: ".format(i+1)))
# 判断数字是否已经存在于集合中
if num not in num_set:
num_set.add(num) # 将不同的数字加入集合中
# 输出不同数字的个数
print("不同数字的个数为: ", len(num_set))
```
以上代码可以统计用户输入的20个整数中不同数字的个数。注意,这里假设用户输入的都是整数,如果用户输入的是其他类型的数据,需要进行适当的错误处理。
### 回答3:
我们可以使用数组或集合来解决这个问题。假设我们使用数组。
首先,我们可以定义一个长度为20的整数数组来存储输入的20个整数。
然后,我们通过循环从键盘输入这20个整数,并将它们存储到数组中。
接下来,我们可以定义一个长度为20的布尔型数组,用于标记数组中的不同数字。初始时,所有元素都设为true。
然后,我们再次通过循环遍历整数数组。对于每个整数,我们可以通过判断它是否已经在数组中出现过来进行标记。如果是第一次出现,我们将对应的布尔型数组元素设为false。
最后,我们使用一个计数变量来统计布尔型数组中值为true的个数。这个变量的值就是不同数字的个数。
最后,输出结果即可。
请注意,这里我们假设输入的整数范围在1到100之间。如果输入的整数范围超过这个范围,我们可能需要使用更大的数组来存储更多的数字,或者使用其他数据结构来实现。
c语言由键盘输入20个整数,统计不同数字的个数。输入样例7051422192996713665934438221139223311输出样例16提示因为5有1个重复数字,11有1个重复数字,22有2个重复数字
请见代码:
```c
#include <stdio.h>
int main() {
int nums[20];
int count = 0; // 不同数字的个数
// 读入20个整数
for (int i = 0; i < 20; i++) {
scanf("%d", &nums[i]);
}
// 统计不同数字的个数
for (int i = 0; i < 20; i++) {
int j; // 标记是否重复
for (j = 0; j < i; j++) {
if (nums[i] == nums[j]) { // 如果已经出现过了,则标记为重复
break;
}
}
if (j == i) { // 如果到达了当前位置,说明之前没有出现过,则新数字个数+1
count++;
}
}
printf("%d\n", count);
return 0;
}
```
阅读全文