用c语言写一个代码,要求输入正整数n(1~18),求所有两位数的两个数字和为n的数的和
时间: 2023-05-29 17:04:29 浏览: 90
```c
#include <stdio.h>
int main() {
int n, sum = 0;
printf("请输入一个正整数n(1~18):");
scanf("%d", &n);
for (int i = 10; i <= 99; i++) {
int a = i / 10, b = i % 10;
if (a + b == n) {
sum += i;
}
}
printf("所有两位数的两个数字和为%d的数的和为%d\n", n, sum);
return 0;
}
```
注:本代码只考虑了两位数的情况,如果需要考虑更多位数的情况,可以使用递归或循环嵌套的方法。
相关问题
C语言使用循环,输入正整数n(1~18),求所有两位数的两个数字和为n的数的和。
以下是实现方式:
```c
#include <stdio.h>
int main() {
int n, sum = 0;
scanf("%d", &n);
for(int i = 10; i < 100; i++) {
int a = i / 10, b = i % 10;
if(a + b == n) {
sum += i;
}
}
printf("%d", sum);
return 0;
}
```
这段代码将从 10 到 99 遍历所有两位数,判断其两个数字之和是否为输入的正整数 n,如果是,则将其加入到一个累加器中,最后输出累加器的值,即这些数字之和。
C语言中输入正整数n(1~18),求所有两位数的两个数字和为n的数的和。 例如输入3,则满足累加条件的两位数有12,21,30;结果应该输出63
```c
#include<stdio.h>
int main()
{
int n;
int sum = 0;
scanf("%d", &n);
for (int i = 1; i <= 9; i++)
{
for (int j = 0; j <= 9; j++)
{
if (i + j == n)
{
sum += i * 10 + j;
}
}
}
printf("%d", sum);
return 0;
}
```
详细解释:
1. 首先声明变量n和变量sum,分别用来存储用户输入的正整数n和满足累加条件的两位数的和。
2. 通过scanf函数接收用户输入的正整数n。
3. 使用两个for循环嵌套,枚举所有的两位数,其中外层循环枚举十位数,内层循环枚举个位数。
4. 对于每一个两位数,判断其十位数和个位数的和是否等于n,如果等于,则将该两位数加入sum中。
5. 最后输出sum的值。
注意事项:
1. 由于题目要求输入的n为正整数,因此需要加上判断n是否为正整数的代码。
2. 由于题目中规定了n的范围为1~18,因此可以通过两个循环枚举所有可能的两位数。如果题目要求的范围更大,就需要考虑其他的算法。
阅读全文