6-1 sdut-c语言实验- n!
时间: 2023-06-05 17:47:54 浏览: 225
题目描述:
输入一个正整数n,输出n的阶乘n!的值。
输入格式:
一个正整数n。
输出格式:
n!的值。
输入样例:
5
输出样例:
120
解题思路:
本题可以使用递归或循环两种方法来实现。
递归方法:
当n=1时,n!=1;当n>1时,n!=n*(n-1)!。
循环方法:
使用for循环,从1到n依次乘积。
参考代码:
递归方法:
#include <stdio.h>
int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n;
scanf("%d", &n);
printf("%d\n", factorial(n));
return 0;
}
循环方法:
#include <stdio.h>
int main() {
int n, i, result = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
result *= i;
}
printf("%d\n", result);
return 0;
}
相关问题
7-19 sdut-c语言实验-回文串的判断
回文串是指正着读和倒着读都一样的字符串。例如,"level"、"racecar"、"madam" 都是回文串。
判断一个字符串是否为回文串,可以使用双指针法。定义两个指针,一个指向字符串的开头,一个指向字符串的结尾,然后分别向中间移动,比较两个指针所指向的字符是否相同。如果相同,继续移动;如果不同,说明不是回文串。
具体实现可以参考以下代码:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char *str) {
int len = strlen(str);
int left = , right = len - 1;
while (left < right) {
if (str[left] != str[right]) {
return ;
}
left++;
right--;
}
return 1;
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
if (isPalindrome(str)) {
printf("%s 是回文串\n", str);
} else {
printf("%s 不是回文串\n", str);
}
return ;
}
```
在上面的代码中,isPalindrome 函数用于判断一个字符串是否为回文串。该函数首先获取字符串的长度 len,然后定义两个指针 left 和 right,分别指向字符串的开头和结尾。接着,使用 while 循环,当 left 小于 right 时,比较 str[left] 和 str[right] 是否相同,如果不同,说明不是回文串,返回 ;如果相同,继续移动指针。当 left 大于等于 right 时,说明已经比较完了整个字符串,返回 1,表示是回文串。
在 main 函数中,首先使用 scanf 函数获取用户输入的字符串,然后调用 isPalindrome 函数判断该字符串是否为回文串,并输出结果。
希望对你有帮助!
7-15 sdut-C语言实验-转换字母(顺序结构) 分数 10 作者 马新娟 单位 山东理工大学 从键盘上输入一个小写字母,然后将小写字母装换成大写字母输出! 输入格式: 从键盘上输入一个小写字母。 输出格式: 小写字母装换成大写字母输出。 输入样例:
在C语言实验中,"7-15 sdut-C语言实验-转换字母(顺序结构)"通常是一个基础的字符操作练习项目。它的目标是让用户学习如何通过ASCII码表来实现大小写字母之间的转换。当你运行这个程序时,用户需要按照提示从键盘输入一个单个小写字母,例如 'a' 或 'z'。
以下是简单的步骤描述以及可能的代码实现:
1. **获取输入**:使用`scanf`函数读取用户输入的一个字符,如 `char ch; scanf("%c", &ch);`
2. **判断是否小写字母**:使用ASCII值来判断,如果输入的是小写字母(97到122),则满足条件。
3. **转换大小写**:对于小写字母,可以利用其ASCII值比对应的大写字母高32的特点,通过加减32来实现转换。例如,`ch = (ch >= 'a' && ch <= 'z') ? ch - 32 : ch;`
4. **输出结果**:使用`printf`函数打印转换后的字符,如 `printf("大写形式:%c\n", ch);`
完整代码示例(未包含错误检查):
```c
#include <stdio.h>
int main() {
char ch;
printf("请输入一个小写字母:");
scanf("%c", &ch);
if (ch >= 'a' && ch <= 'z') {
ch = ch - 32; // 转换为大写
}
printf("小写字母装换成大写字母输出:%c\n", ch);
return 0;
}
```
阅读全文