用c语言输入的一个正整数N,输出N中所出现不同数字的和。例如:用户输入123123123,其中所出现的不同数字为1、2、3,这几个数字和为6
时间: 2024-03-20 20:39:14 浏览: 57
好的,我明白了。以下是C语言的代码实现:
```c
#include <stdio.h>
int main() {
int n, digit, sum = 0;
int appear[10] = {0}; // 用数组记录每个数字是否出现过
printf("请输入一个正整数:");
scanf("%d", &n);
while (n != 0) {
digit = n % 10; // 取出个位数字
if (appear[digit] == 0) { // 如果这个数字还没有出现过
appear[digit] = 1; // 标记出现过
sum += digit; // 累加不同数字的和
}
n /= 10; // 去掉个位数字
}
printf("不同数字的和为:%d\n", sum);
return 0;
}
```
运行程序后,输入一个正整数,程序就会输出该数中所出现不同数字的和。
相关问题
用c语言写一个求一批整数中出现次数最多的数字的程序。 求一批整数中出现最多的数字:输入一个正整数n(1<n≤1000),再输入n个整数,分析每个整数中的每一位数字,求出现次数最多的数字。例如输入3个整数1234,2345,3456,其中出现次数最多的数字是3和4,均出现了3次
以下是用C语言编写的求一批整数中出现次数最多的数字的程序:
```c
#include <stdio.h>
int main() {
int n, num[1000], digit_count[10] = {0}, max_count = 0;
printf("请输入整数的个数:");
scanf("%d", &n);
printf("请输入%d个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &num[i]);
// 分析每个整数的每一位数字
int temp = num[i];
while (temp > 0) {
digit_count[temp % 10]++;
temp /= 10;
}
}
// 找出出现次数最多的数字
for (int i = 0; i < 10; i++) {
if (digit_count[i] > max_count) {
max_count = digit_count[i];
}
}
// 输出出现次数最多的数字
printf("出现次数最多的数字为:");
for (int i = 0; i < 10; i++) {
if (digit_count[i] == max_count) {
printf("%d ", i);
}
}
printf(",均出现了%d次\n", max_count);
return 0;
}
```
程序中首先读入整数的个数和这些整数,然后分析每个整数的每一位数字,统计出现次数。最后找出出现次数最多的数字,输出即可。
C语言输入一个正整数 n,输出 n 的所有质因子。例如 n=13860,则输出: 2,2,3,3,5,7,11。
以下是C语言代码,用于输入一个正整数n,输出n的所有质因子:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n); // 输入数字
// 从 2 开始枚举质因子
for (int i = 2; i <= n; i++) {
// 如果 i 是 n 的质因子,就输出 i 并将 n 除以 i
while (n % i == 0) {
printf("%d ", i);
n /= i;
}
}
return 0;
}
```
输入一个正整数n,程序会输出n的所有质因子。例如,当n=13860时,程序会输出:2 2 3 3 5 7 11。
阅读全文