目录
1、求三个数的最大值
2、求三角形面积 提示:area=s(s-a)(s-b)(s-c)的开平方根 s=(a+b+c)/2
3、打印1-100的奇数
4、求n的阶乘(1×2×3...×n)
5、求n的阶乘之和(输入数字n,求1!+2!..+n!)
6、在一个有序数组中使用折半查找
7、找出两个数组中相同的数字并输出
8、输入100-999内的整数,反序显示,如输入123,输出321
9、输入任意一个整数,逐个输出它的每一位。(递归)
10、输入一个数,得到这个数的每个位数的数之和。例如1234,得到1+2+3+4,为10
11、输入一个字符串,判断它是否为回文。所谓回文是指字符串正序和逆序是一样的,如“abcdcba”就是回文。
11、输入两个自然数,输出它们的最大公约数和最小公倍数
12、输入一组成绩,除去最高分,除去最低分,求平均分
13、判断素数:对于一个整数k,如果k不能被2到根号k之间的所有整数除尽,则k是素数
14、输入数组,倒序输出
15、打印Fibonacci数列1 1 2 3 5 8 13 ...,每五个数换一行
16、冒泡排序:相邻两个数比大小排序
17、选择排序
18、插入排序
1、求三个数的最大值
#include
#define Max(a,b) a>b?a:b
int main()
{
int a, b, c;
int max;
scanf("%d %d %d", &a, &b, &c);
max = Max(Max(a, b), c);
printf("max=%d", max);
return 0;
}
2、求三角形面积 提示:area=s(s-a)(s-b)(s-c)的开平方根 s=(a+b+c)/2
#include
#include
int tringle(int a, int b, int c)
{
int area;
int s;
s = (a + b + c) / 2;
area = sqrt((s - a)*(s - b)*(s - c)*s);
return area;
}
int main()
{
int condition = 0;
while(condition==0)
{
//首先输入三角形的三边:
int a, b, c;
printf("请输入三角形三边:");
scanf("%d %d %d", &a, &b, &c);
//定义三角形面积
int area;
//判断这三边是否成立,即两边之和大于第三边
if (a + b > c && a + c > b && b + c > a)
{
//三边成立,则调用函数tringle(int a,int b,int c),返回值是面积
area = tringle(a, b, c);
printf("三角形面积是:%d", area);
condition = 1;
}
else
printf("输入三边错误,请重新输入!n");
}
return 0;
}
3、打印1-100的奇数
#include
int main()
{
int i = 1;
for (i = 1; i < 100; i++)
if (i % 2 == 1)
printf("%d ", i);
return 0;
}
4、求n的阶乘(1×2×3...×n)
#include
int main()
{
int n = 0, i = 1, result = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
result *= i;
if(i
5、求n的阶乘之和(输入数字n,求1!+2!..+n!)
#include
int main()
{
int n = 0, i = 1, res = 1, result = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
res *= i;
result += res;
if(i
6、在一个有序数组中使用折半查找
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int left, mid, right, sz;
int n , i = 0;
int con = 1;
printf("请输入要查找的数字:");
scanf("%d", &n);
sz = sizeof(arr) / sizeof(arr[0]);
left = 0, mid = (sz - 1) / 2, right = sz - 1;
for (i = 0; i < sz - 1; i++)
{
if (n < arr[mid])
{
right = mid;
mid = (mid + left) / 2;
}
else if (n > arr[mid])
{
left = mid;
mid = (mid + right) / 2 + 1;
}
else if (n == arr[mid])
{
printf("找到了!");
con = 0;
break;
}
}
if (con)
printf("没找到。");
return 0;
}
7、找出两个数组中相同的数字并输出
int main()
{
int arr1[] = { 1,9,5,3,2 };
int arr2[] = { 6,3,5,9,4,11 };
int sz1= sizeof(arr1) / sizeof(arr1[0]);
int sz2= sizeof(arr2) / sizeof(arr2[0]);
for (int i = 0; i < sz1 - 1; i++)
{
for (int j = 0; j < sz2 - 1; j++)
{
if (arr1[i] == arr2[j])
printf("%d ", arr1[i]);
}
}
return 0;
}
8、输入100-999内的整数,反序显示,如输入123,输出321
int main()
{
int num = 0;
scanf("%d", &num);
int a, b, c;
a = num / 100;
b = num / 10 % 10;
c = num % 10;
printf("%d%d%d", c, b, a);
return 0;
}
9、输入任意一个整数,逐个输出它的每一位。(递归)
void way(int num)
{
if (num > 9)
way(num / 10);
printf("%d ", num % 10);
}
int main()
{
int num = 0;
scanf("%d", &num);
way(num);
return 0;
}
10、输入一个数,得到这个数的每个位数的数之和。例如1234,得到1+2+3+4,为10
int way(int num)
{
if (num > 9)
return num % 10 + way(num / 10);
else
return num;
}
int main()
{
int num = 0;
scanf("%d", &num);
printf("%d", way(num));
return 0;
}
11、输入一个字符串,判断它是否为回文。所谓回文是指字符串正序和逆序是一样的,如“abcdcba”就是回文。
int main()
{
char str[] = "aabbccbbaa";
int sz = sizeof(str) - 1;
int j = sz - 1;
printf("%dn", sz);
int con = 0;
for (int i = 0; i < sz; i++)
{
if (str[i] == str[j])
j--;
else
con = 1;
}
if (con)
printf("不是回文。");
else
printf("是回文。");
return 0;
}
11、输入两个自然数,输出它们的最大公约数和最小公倍数
最小公倍数=m*n/最大公约数
int main()
{
int m, n;
scanf("%d %d", &m, &n);
int zdgy, zxgb;
int k = m < n ? m : n;
for (zdgy=k; zdgy > 0; zdgy--)
{
if (m % zdgy == 0 && n % zdgy == 0)
break;
}
zxgb = m * n / zdgy;
printf("最小公倍数是:%d,最大公约数是:%d", zxgb, zdgy);
return 0;
}
12、输入一组成绩,除去最高分,除去最低分,求平均分
#define N 6
int main()
{
int max = 0, min = 100;
int num, sum = 0, ave;
for (int i = 0; i < N; i++)
{
printf("请输入第%d个成绩:", i + 1);
scanf("%d", &num);
if (num > max)
max = num;
if (num < min)
min = num;
sum += num;
}
ave = (sum - max - min) / (N - 2);
printf("去除一个最高分%d分,去除一个最低分%d分,平均分为%d", max, min, ave);
return 0;
}
13、判断素数:对于一个整数k,如果k不能被2到根号k之间的所有整数除尽,则k是素数
#include
int main()
{
int k;
int con = 0;
scanf("%d", &k);
for (int i = 2; i < sqrt(k); i++)
{
if (k % i == 0)
con = 1;
}
if (con)
printf("%d不是素数", k);
else
printf("%d是素数", k);
return 0;
}
14、输入数组,倒序输出
#define N 10
int main()
{
int arr[N];
for (int i = 0; i < N; i++)
scanf("%d", &arr[i]);
for (int i = N - 1; i >= 0; i--)
printf("%d ", arr[i]);
return 0;
}
15、打印Fibonacci数列1 1 2 3 5 8 13 ...,每五个数换一行
#define N 20
int main()
{
int arr[N];
arr[0] = 1, arr[1] = 1;
for (int i = 2; i < N; i++)
arr[i] = arr[i - 1] + arr[i - 2];
for (int i = 0; i < N; i++)
{
printf("%dt", arr[i]);
if (arr[i] % 5 == 0)
printf("n");
}
return 0;
}
16、冒泡排序:相邻两个数比大小排序
#define N 10
int main()
{
int arr[N];
int i = 0, j = 0;
int tmp;
printf("请输入%d个数:",N);
for (i = 0; i < N; i++)
scanf("%d", &arr[i]);
for(i = 0;i arr[j+1])
{
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
for (i = 0; i < N; i++)
printf("%d ", arr[i]);
return 0;
}
17、选择排序
18、插入排序
#include#include int tringle(int a, int b, int c) { int area; int s; s = (a + b + c) / 2; area = sqrt((s - a)*(s - b)*(s - c)*s); return area; } int main() { int condition = 0; while(condition==0) { //首先输入三角形的三边: int a, b, c; printf("请输入三角形三边:"); scanf("%d %d %d", &a, &b, &c); //定义三角形面积 int area; //判断这三边是否成立,即两边之和大于第三边 if (a + b > c && a + c > b && b + c > a) { //三边成立,则调用函数tringle(int a,int b,int c),返回值是面积 area = tringle(a, b, c); printf("三角形面积是:%d", area); condition = 1; } else printf("输入三边错误,请重新输入!n"); } return 0; }
3、打印1-100的奇数
#include
int main()
{
int i = 1;
for (i = 1; i < 100; i++)
if (i % 2 == 1)
printf("%d ", i);
return 0;
}
4、求n的阶乘(1×2×3...×n)
#include
int main()
{
int n = 0, i = 1, result = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
result *= i;
if(i
5、求n的阶乘之和(输入数字n,求1!+2!..+n!)
#include
int main()
{
int n = 0, i = 1, res = 1, result = 0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
res *= i;
result += res;
if(i
6、在一个有序数组中使用折半查找
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int left, mid, right, sz;
int n , i = 0;
int con = 1;
printf("请输入要查找的数字:");
scanf("%d", &n);
sz = sizeof(arr) / sizeof(arr[0]);
left = 0, mid = (sz - 1) / 2, right = sz - 1;
for (i = 0; i < sz - 1; i++)
{
if (n < arr[mid])
{
right = mid;
mid = (mid + left) / 2;
}
else if (n > arr[mid])
{
left = mid;
mid = (mid + right) / 2 + 1;
}
else if (n == arr[mid])
{
printf("找到了!");
con = 0;
break;
}
}
if (con)
printf("没找到。");
return 0;
}
7、找出两个数组中相同的数字并输出
int main()
{
int arr1[] = { 1,9,5,3,2 };
int arr2[] = { 6,3,5,9,4,11 };
int sz1= sizeof(arr1) / sizeof(arr1[0]);
int sz2= sizeof(arr2) / sizeof(arr2[0]);
for (int i = 0; i < sz1 - 1; i++)
{
for (int j = 0; j < sz2 - 1; j++)
{
if (arr1[i] == arr2[j])
printf("%d ", arr1[i]);
}
}
return 0;
}
8、输入100-999内的整数,反序显示,如输入123,输出321
int main()
{
int num = 0;
scanf("%d", &num);
int a, b, c;
a = num / 100;
b = num / 10 % 10;
c = num % 10;
printf("%d%d%d", c, b, a);
return 0;
}
9、输入任意一个整数,逐个输出它的每一位。(递归)
void way(int num)
{
if (num > 9)
way(num / 10);
printf("%d ", num % 10);
}
int main()
{
int num = 0;
scanf("%d", &num);
way(num);
return 0;
}
10、输入一个数,得到这个数的每个位数的数之和。例如1234,得到1+2+3+4,为10
int way(int num)
{
if (num > 9)
return num % 10 + way(num / 10);
else
return num;
}
int main()
{
int num = 0;
scanf("%d", &num);
printf("%d", way(num));
return 0;
}
11、输入一个字符串,判断它是否为回文。所谓回文是指字符串正序和逆序是一样的,如“abcdcba”就是回文。
int main()
{
char str[] = "aabbccbbaa";
int sz = sizeof(str) - 1;
int j = sz - 1;
printf("%dn", sz);
int con = 0;
for (int i = 0; i < sz; i++)
{
if (str[i] == str[j])
j--;
else
con = 1;
}
if (con)
printf("不是回文。");
else
printf("是回文。");
return 0;
}
11、输入两个自然数,输出它们的最大公约数和最小公倍数
最小公倍数=m*n/最大公约数
int main()
{
int m, n;
scanf("%d %d", &m, &n);
int zdgy, zxgb;
int k = m < n ? m : n;
for (zdgy=k; zdgy > 0; zdgy--)
{
if (m % zdgy == 0 && n % zdgy == 0)
break;
}
zxgb = m * n / zdgy;
printf("最小公倍数是:%d,最大公约数是:%d", zxgb, zdgy);
return 0;
}
12、输入一组成绩,除去最高分,除去最低分,求平均分
#define N 6
int main()
{
int max = 0, min = 100;
int num, sum = 0, ave;
for (int i = 0; i < N; i++)
{
printf("请输入第%d个成绩:", i + 1);
scanf("%d", &num);
if (num > max)
max = num;
if (num < min)
min = num;
sum += num;
}
ave = (sum - max - min) / (N - 2);
printf("去除一个最高分%d分,去除一个最低分%d分,平均分为%d", max, min, ave);
return 0;
}
13、判断素数:对于一个整数k,如果k不能被2到根号k之间的所有整数除尽,则k是素数
#include
int main()
{
int k;
int con = 0;
scanf("%d", &k);
for (int i = 2; i < sqrt(k); i++)
{
if (k % i == 0)
con = 1;
}
if (con)
printf("%d不是素数", k);
else
printf("%d是素数", k);
return 0;
}
14、输入数组,倒序输出
#define N 10
int main()
{
int arr[N];
for (int i = 0; i < N; i++)
scanf("%d", &arr[i]);
for (int i = N - 1; i >= 0; i--)
printf("%d ", arr[i]);
return 0;
}
15、打印Fibonacci数列1 1 2 3 5 8 13 ...,每五个数换一行
#define N 20
int main()
{
int arr[N];
arr[0] = 1, arr[1] = 1;
for (int i = 2; i < N; i++)
arr[i] = arr[i - 1] + arr[i - 2];
for (int i = 0; i < N; i++)
{
printf("%dt", arr[i]);
if (arr[i] % 5 == 0)
printf("n");
}
return 0;
}
16、冒泡排序:相邻两个数比大小排序
#define N 10
int main()
{
int arr[N];
int i = 0, j = 0;
int tmp;
printf("请输入%d个数:",N);
for (i = 0; i < N; i++)
scanf("%d", &arr[i]);
for(i = 0;i arr[j+1])
{
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
for (i = 0; i < N; i++)
printf("%d ", arr[i]);
return 0;
}
17、选择排序
18、插入排序
#includeint main() { int n = 0, i = 1, result = 1; scanf("%d", &n); for (i = 1; i <= n; i++) { result *= i; if(i 5、求n的阶乘之和(输入数字n,求1!+2!..+n!)
#includeint main() { int n = 0, i = 1, res = 1, result = 0; scanf("%d", &n); for (i = 1; i <= n; i++) { res *= i; result += res; if(i 6、在一个有序数组中使用折半查找
int main() { int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int left, mid, right, sz; int n , i = 0; int con = 1; printf("请输入要查找的数字:"); scanf("%d", &n); sz = sizeof(arr) / sizeof(arr[0]); left = 0, mid = (sz - 1) / 2, right = sz - 1; for (i = 0; i < sz - 1; i++) { if (n < arr[mid]) { right = mid; mid = (mid + left) / 2; } else if (n > arr[mid]) { left = mid; mid = (mid + right) / 2 + 1; } else if (n == arr[mid]) { printf("找到了!"); con = 0; break; } } if (con) printf("没找到。"); return 0; }7、找出两个数组中相同的数字并输出
int main() { int arr1[] = { 1,9,5,3,2 }; int arr2[] = { 6,3,5,9,4,11 }; int sz1= sizeof(arr1) / sizeof(arr1[0]); int sz2= sizeof(arr2) / sizeof(arr2[0]); for (int i = 0; i < sz1 - 1; i++) { for (int j = 0; j < sz2 - 1; j++) { if (arr1[i] == arr2[j]) printf("%d ", arr1[i]); } } return 0; }8、输入100-999内的整数,反序显示,如输入123,输出321
int main() { int num = 0; scanf("%d", &num); int a, b, c; a = num / 100; b = num / 10 % 10; c = num % 10; printf("%d%d%d", c, b, a); return 0; }9、输入任意一个整数,逐个输出它的每一位。(递归)
void way(int num) { if (num > 9) way(num / 10); printf("%d ", num % 10); } int main() { int num = 0; scanf("%d", &num); way(num); return 0; }10、输入一个数,得到这个数的每个位数的数之和。例如1234,得到1+2+3+4,为10
int way(int num) { if (num > 9) return num % 10 + way(num / 10); else return num; } int main() { int num = 0; scanf("%d", &num); printf("%d", way(num)); return 0; }11、输入一个字符串,判断它是否为回文。所谓回文是指字符串正序和逆序是一样的,如“abcdcba”就是回文。
int main() { char str[] = "aabbccbbaa"; int sz = sizeof(str) - 1; int j = sz - 1; printf("%dn", sz); int con = 0; for (int i = 0; i < sz; i++) { if (str[i] == str[j]) j--; else con = 1; } if (con) printf("不是回文。"); else printf("是回文。"); return 0; }11、输入两个自然数,输出它们的最大公约数和最小公倍数
最小公倍数=m*n/最大公约数
int main() { int m, n; scanf("%d %d", &m, &n); int zdgy, zxgb; int k = m < n ? m : n; for (zdgy=k; zdgy > 0; zdgy--) { if (m % zdgy == 0 && n % zdgy == 0) break; } zxgb = m * n / zdgy; printf("最小公倍数是:%d,最大公约数是:%d", zxgb, zdgy); return 0; }12、输入一组成绩,除去最高分,除去最低分,求平均分
#define N 6 int main() { int max = 0, min = 100; int num, sum = 0, ave; for (int i = 0; i < N; i++) { printf("请输入第%d个成绩:", i + 1); scanf("%d", &num); if (num > max) max = num; if (num < min) min = num; sum += num; } ave = (sum - max - min) / (N - 2); printf("去除一个最高分%d分,去除一个最低分%d分,平均分为%d", max, min, ave); return 0; }13、判断素数:对于一个整数k,如果k不能被2到根号k之间的所有整数除尽,则k是素数
#includeint main() { int k; int con = 0; scanf("%d", &k); for (int i = 2; i < sqrt(k); i++) { if (k % i == 0) con = 1; } if (con) printf("%d不是素数", k); else printf("%d是素数", k); return 0; } 14、输入数组,倒序输出
#define N 10 int main() { int arr[N]; for (int i = 0; i < N; i++) scanf("%d", &arr[i]); for (int i = N - 1; i >= 0; i--) printf("%d ", arr[i]); return 0; }15、打印Fibonacci数列1 1 2 3 5 8 13 ...,每五个数换一行
#define N 20 int main() { int arr[N]; arr[0] = 1, arr[1] = 1; for (int i = 2; i < N; i++) arr[i] = arr[i - 1] + arr[i - 2]; for (int i = 0; i < N; i++) { printf("%dt", arr[i]); if (arr[i] % 5 == 0) printf("n"); } return 0; }16、冒泡排序:相邻两个数比大小排序
#define N 10 int main() { int arr[N]; int i = 0, j = 0; int tmp; printf("请输入%d个数:",N); for (i = 0; i < N; i++) scanf("%d", &arr[i]); for(i = 0;iarr[j+1]) { tmp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tmp; } for (i = 0; i < N; i++) printf("%d ", arr[i]); return 0; } 17、选择排序
18、插入排序



