统计给出的整数中含有的不同数字的个数

由键盘输入20个整数,统计不同数字的个数。

输入样例

70  5  14  22  19  2  99  67  13  66  5  93  44  38  22  11  39  22  33  11

输出样例

16

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
 
 
int main()
{
	int a[20],i,j,num=0,swi;	//设置数组a[20]用于存储数据 num用于计数 开关变量swi用于判断数字是否重复 
	for (i = 0; i < 20; i++)
	{
		scanf("%d", &a[i]);
		swi=1;					//每次检测前打开开关 
		for(j=0;j<i;j++)		//每个数输入时检测已输入的数中是否存在此数 
		{
			if(a[j]==a[i])
			{
			swi=0;
			break;              //检测到当前数字已存在 关上开关 并停止检索 当然也可以继续 结果是一样的 
			}
		}
		if(swi==1)
		{
			num++;
		}
	}

	
	printf("%d", num);
	

	return 0;
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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之间。如果输入的整数范围超过这个范围,我们可能需要使用更大的数组来存储更多的数字,或者使用其他数据结构来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值