c语言统计数组中的不同数字并打印
时间: 2023-05-08 19:55:45 浏览: 187
在C语言中,要统计数组中的不同数字并打印,我们可以使用一个计数器和一个标志数组来实现。首先,初始化一个长度为数组长度的标志数组,所有元素的值都设置为0,然后遍历数组中的每个元素,如果该元素在标志数组中没有被标记过(即元素对应的标志数组中的值为0),那么就将计数器加一,并将该元素对应的标志数组中的值标记为1。最后打印出计数器的值即可。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#define ARRAY_SIZE 10 // 数组大小
int main() {
int array[ARRAY_SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1}; // 测试数组
int count = 0; // 计数器
int flag[ARRAY_SIZE] = {0}; // 标志数组,初始值都设置为0
for (int i = 0; i < ARRAY_SIZE; i++) {
if (flag[i] == 0) { // 如果该元素没有被标记过
flag[i] = 1; // 标记该元素
count++; // 计数器加一
printf("%d ", array[i]); // 输出不同的数字
}
}
printf("\n数组中不同的数字有 %d 个。\n", count); // 输出不同数字的个数
return 0;
}
```
相关问题
c语言运用数组输⼊⼀个数字,统计这个数的各个位上的数字总共出现了⼏次,最后按照从⼩到⼤进⾏输出。
在 C 语言中,你可以通过遍历输入数字的每一位,并将其存储在一个哈希表(如数组或结构体数组)中来实现这个功能。以下是一个简单的步骤描述:
1. 首先,声明一个大小足够存储所有数字(0-9)的数组,例如 int count[10],初始化每个元素为0。
2. 接收用户输入的整数。使用 `scanf` 函数读取用户的输入,比如 `int num; scanf("%d", &num);`
3. 使用循环遍历输入数字的每一位。可以将数字转换成字符串,然后逐字符处理。如果字符串长度大于1,可以用除法和取余运算提取每一位,像这样:
```c
while (num > 0) {
int digit = num % 10;
count[digit]++;
num /= 10;
}
```
4. 统计完成后,遍历数组并打印出每个数字及其出现次数,注意对数组索引进行从0开始到9的处理:
```c
for (int i = 0; i < 10; i++) {
if (count[i] > 0) {
printf("数字%d出现了%d次\n", i, count[i]);
}
}
```
5. 为了按从小到大的顺序输出,可以在内层循环中添加一个临时数组保存结果,然后在输出之前对临时数组进行排序。
注意,上述代码未涉及排序部分,因为题目要求的是“按照从小到大”,所以这里直接假设了原始数组就是已排序好的。如果你需要排序,可以考虑插入排序或者其他简单排序算法。
c语言编写程序实现:从键盘上输入一行字符,存入一个字符数组中A,分别统计数组A中的字母和数字的个数,并输出。
在C语言中,可以使用标准库函数` getchar()`从键盘获取字符,并通过遍历数组判断字符类型来统计字母和数字的数量。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h> // 引入ctype.h头文件,用于检查字符类型
#define SIZE 100 // 定义数组大小,可根据实际需求调整
int letter_count = 0; // 初始化字母计数器
int digit_count = 0; // 初始化数字计数器
int main() {
char A[SIZE];
int i = 0;
printf("请输入一行字符: ");
while ((A[i] = getchar()) != '\n') { // 读取直至换行符,忽略回车
if (isalpha(A[i])) { // 判断是否为字母
letter_count++;
} else if (isdigit(A[i])) { // 判断是否为数字
digit_count++;
}
i++;
if (i == SIZE) { // 防止数组溢出
break;
}
}
// 输出结果
printf("字母数量: %d\n", letter_count);
printf("数字数量: %d\n", digit_count);
return 0;
}
```
在这个程序中,我们首先定义了一个字符数组`A`和两个计数器变量。然后使用`getchar()`逐个读取用户输入的字符,如果是字母就增加`letter_count`,如果是数字则增加`digit_count`。最后,打印出统计的结果。
阅读全文