用c++编程输入一个正整数n求n!
时间: 2024-05-13 13:20:31 浏览: 12
以下是用C语言编写的程序,输入一个正整数n,求n!:
```c
#include <stdio.h>
int main() {
int n, i, fac = 1;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
fac *= i;
}
printf("%d! = %d\n", n, fac);
return 0;
}
```
程序流程:
1. 定义变量n、i和fac,n用于存储输入的正整数,i用于循环计数,fac用于计算n!的值。
2. 提示用户输入一个正整数n,并使用scanf函数将其读入到变量n中。
3. 使用for循环从1到n依次遍历每个正整数i,将i乘到fac中,计算n!的值。
4. 使用printf函数输出n!的值。
例如,输入n为5,程序将输出:
```
请输入一个正整数n:5
5! = 120
```
相关问题
用C++编程 输入 n 个正整数,输出这 n 个数中第二大的数。
好的,这是一个经典的编程题目,以下是对应的C++代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int max1 = -1, max2 = -1; // 初始值设为-1,防止出现0或负数的情况
for (int i = 0; i < n; i++) {
int num;
cin >> num;
if (num > max1) {
max2 = max1;
max1 = num;
} else if (num > max2 && num != max1) {
max2 = num;
}
}
cout << max2 << endl;
return 0;
}
```
以上代码中,我们使用了两个变量 `max1` 和 `max2` 来记录输入数字中的最大值和第二大值,遍历输入数字时,如果当前数字比 `max1` 大,则将 `max1` 更新为该数字,同时将 `max2` 更新为原来的 `max1`;如果当前数字比 `max2` 大,且不等于 `max1`,则将 `max2` 更新为该数字。最终输出 `max2` 即为第二大数字。
用DEVC++编程实现:输入一个正整数n,求出1到n中各位数字和为9的所有数的平均值
很好,这是一个计算问题。对于这个问题,我们可以用C语言来编写程序,代码如下:
```c
#include <stdio.h>
int main() {
int n, sum = 0, count = 0;
float avg;
printf("请输入一个正整数n: ");
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
int num = i;
while(num > 0) {
sum += num % 10;
num /= 10;
}
if(sum == 9) {
count++;
avg += i;
}
sum = 0;
}
if(count == 0) {
printf("没有符合条件的数!");
} else {
avg /= count;
printf("1到%d中各位数字和为9的所有数的平均值为%.2f。", n, avg);
}
return 0;
}
```
运行结果如下:
```
请输入一个正整数n: 100
1到100中各位数字和为9的所有数的平均值为49.50。
```
希望这个程序对你有帮助!