n的阶乘
直接scanf获取n的值就行了。。。用不着定义函数
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int jiecheng(int n)
{
int ac = 1;
for (int i = 1; i <= n; i++)
{
ac = ac * i;
}
printf("%d的阶乘为:%d", n, ac);
}
int main()
{
int n;
printf("请输入计算的n:");
scanf("%d", &n);
jiecheng(n);
return 0;
}
数字反转
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int a,b=0,temp=0,i;
printf("请输入原始数字:");
scanf("%d", &a);
i = a;
while (a) {
temp = a % 10;
b = b * 10 + temp;
a = a / 10;
}
printf("反转后数字为:%d\n", b);
if (i == b) {
printf("yes");
}
else {
printf("no");
}
return 0;
}
拆散100元
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int a, b, c, d,sum,total=0;
for (a = 1; a <= 10; a++) {
for (b = 1; b <= 20; b++) {
for (c = 1; c <= 50; c++) {
for (d = 1; d <= 100; d++) {
sum = a * 10 + b * 5 + c * 2 + d * 1 ;
if (sum == 100 && a + b + c + d == 40) {
total++;
}
}
}
}
}
printf("将100元分为10,5,2,1,合计40张,每种至少1张,一共有%d中分法", total);
return 0;
}
2出现次数
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int n,a[100],num=0;
printf("请输入即将输入的数字个数:");
scanf("%d",&n);
printf("请输入数字:");
for (int i = 0; i < n; i++) {
scanf("%d",&a[i]);
}
for (int i = 0; i < n; i++) {
if (a[i] == 2) {
num++;
}
}
printf("数字2出现次数为:%d", num);
return 0;
}
带空格的字符串逆序
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main() {
char str[100];
printf("请输入字符串:");
gets(str);
int len = strlen(str)-1;
for (int i = 0;i<=len; i++) {
char tmp;
tmp = str[i];
str[i] = str[len];
str[len] = tmp;
len = len - 1;
}
printf("倒置后的字符串为:%s", str);
return 0;
}
比较前后大小
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main() {
char str1[100],str2[100];
printf("请输入字符串:");
gets(str1);
int i;
int len = strlen(str1)-1;
for (i = 0;i<=strlen(str1)-1; i++) {
str2[i] = str1[len];
len--;
}
//字符数组默认值是cccc,就会烫烫,所以要加上结束符
str2[i] = 0;
printf("倒置后的字符串为:%s\n", str2);
int re=strcmp(str1, str2);
printf("%d", re);
return 0;
}
int strcmp(const char *str1, const char *str2)
- 返回值小于0表示str1小于str2
- 返回值等于0表示str1等于str2
- 返回值大于0表示str1大于str2