c语言统计4在一个整数中出现的次数代码
时间: 2024-05-07 20:23:54 浏览: 85
以下是C语言统计整数中数字“4”出现次数的代码:
```c
#include <stdio.h>
int main() {
int num, count = 0;
printf("请输入一个整数:");
scanf("%d", &num);
while (num) {
if (num % 10 == 4) {
count++;
}
num /= 10;
}
printf("数字4出现的次数为:%d", count);
return 0;
}
```
相关问题
C语言代码统计一个正整数中指定数字的个数
好的,我可以为你提供一个简单的 C 语言代码,用于统计一个正整数中指定数字的个数。请注意,这个代码需要用户输入一个正整数和一个指定数字,并返回指定数字在这个正整数中的出现次数。以下是代码:
```
#include <stdio.h>
int main() {
int num, digit, count = 0;
printf("请输入正整数: ");
scanf("%d", &num);
printf("请输入要查找的数字: ");
scanf("%d", &digit);
while (num > 0) {
int remainder = num % 10;
if (remainder == digit) {
count++;
}
num = num / 10;
}
printf("数字 %d 在输入数字中出现的次数为: %d", digit, count);
return 0;
}
```
请注意,此代码仅用于讲解用途,可能存在一些局限性,例如不支持负数等。如果需要更加完备的代码,需要进行进一步的开发和测试。
用c语言编写程序实现:统计一个整型序列中出现次数最多的整数及其出现次数。
可以使用一个哈希表来实现统计整数出现次数的功能,具体步骤如下:
1. 定义一个哈希表结构体,包含两个成员,一个是整数值,一个是出现次数。
```c
typedef struct {
int val;
int count;
} HashNode;
```
2. 定义一个哈希表数组,用来存储哈希表结构体。数组的大小可以根据实际情况进行调整,这里假设整数值的范围在[0, 100]之间。
```c
#define HASH_SIZE 101
HashNode hashTable[HASH_SIZE];
```
3. 初始化哈希表,将每个哈希表结构体的出现次数初始化为0。
```c
void initHashTable() {
for (int i = 0; i < HASH_SIZE; i++) {
hashTable[i].val = i;
hashTable[i].count = 0;
}
}
```
4. 遍历整型序列,将每个整数对应的哈希表结构体的出现次数加1。
```c
void count(int *arr, int len) {
for (int i = 0; i < len; i++) {
hashTable[arr[i]].count++;
}
}
```
5. 找到出现次数最多的整数及其出现次数。
```c
void findMaxCount() {
int maxCount = 0;
int maxVal = 0;
for (int i = 0; i < HASH_SIZE; i++) {
if (hashTable[i].count > maxCount) {
maxCount = hashTable[i].count;
maxVal = hashTable[i].val;
}
}
printf("出现次数最多的整数是%d,出现次数为%d\n", maxVal, maxCount);
}
```
完整代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#define HASH_SIZE 101
typedef struct {
int val;
int count;
} HashNode;
HashNode hashTable[HASH_SIZE];
void initHashTable() {
for (int i = 0; i < HASH_SIZE; i++) {
hashTable[i].val = i;
hashTable[i].count = 0;
}
}
void count(int *arr, int len) {
for (int i = 0; i < len; i++) {
hashTable[arr[i]].count++;
}
}
void findMaxCount() {
int maxCount = 0;
int maxVal = 0;
for (int i = 0; i < HASH_SIZE; i++) {
if (hashTable[i].count > maxCount) {
maxCount = hashTable[i].count;
maxVal = hashTable[i].val;
}
}
printf("出现次数最多的整数是%d,出现次数为%d\n", maxVal, maxCount);
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 3, 2, 1, 2, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7};
int len = sizeof(arr) / sizeof(int);
initHashTable();
count(arr, len);
findMaxCount();
return 0;
}
```