系列文章目录
前言
1、第一章:求出一个整型数组中的最大值
2、第二章:打印出100~999之间所有的水仙花数
3、第三章:输入一个数,打印出n行杨辉三角
4、第四章:小只因跳楼梯问题
5、第五章:创建一个含是10个元素的数组,乱序输入后升序输出(冒泡排序)
6、第六章:输入任意十进制整数后,输出该数的八进制
7、第七章:输入一串字符串后倒序输出
8、第八章:输入一个含9个元素的有序数组,再输入一个数 x,将 x 插入有序列中(与冒泡排序相似)
前言
大家好,C语言作为最基本的编程语言之一,在编程语言中有着很重要的地位。接下来就让我来为大家介绍几个用C语言写出来的几个小程序。
一、求出一个整型数组的最大值
#include<stdio.h>
void main()
{int array[] = { 11,13,2,45,34,67,56,78 };//array[]为一个整型数组int max, a;max = array[0];//先假设最大值是该整型数组中的第一个元素for (a = 0; a < 8; a++)//利用for循环使数组中的每个元素都与array[0]进行比较{if (array[a] > max){max = array[a];//让max与数组中所有的元素进行比较,实现max的值交换后最大}}printf("最大值:%d\n", max);
}
运行截图
二、打印出100~999之间的所有水仙花数
“水仙花数”是指一个三位数,其各位数字立方和等于该数本身
#include<stdio.h>
void main()
{int a, b, c, t;for (t = 100; t < 1000; t++)//限制数的范围是从100~999{a = t % 10; b = (t / 10) % 10; c = t / 100;//a是个位上的数字,b是十位上的数字,c是百位上的数字if (t == a * a * a + b * b * b + c * c * c)//也可以写成(t==a**3+b**3+c**3)printf("%5d", t);}}
运行截图
三、输入一个数,打印出n行杨辉三角
1、由杨辉三角的规律可知,每一行第一位数和最后一位数都为1;
2、其余的数为正上方和左边数之和;
//打印杨辉三角
#include<stdio.h>
#include<stdlib.h>
void main()
{int n=0,i,j; //对n初始化scanf_s("%d", &n);int a[40][40];for (i = 0; i < n; i++){a[i][0] = 1;//杨辉三角中第一列都为1a[i][i] = 1;//当行=列时也为1}for (i = 2; i < n; i++){for (j = 1; j < i; j++){a[i][j] = a[i - 1][j - 1] + a[i - 1][j];}}for (i = 0; i < n; i++){for (j = 0; j <= i; j++)printf("%5d", a[i][j]);printf("\n");}}
运行截图
四 、小只因跳楼梯
只因一次可以跳一级台阶,也可以跳两级台阶,求该只因跳上一个n级台阶共有多少种跳法;
n=1时只有一种解决方案:直接跳一级台阶;
n=2时有两种解决方案:第一种是直接跳两级,第二种是上两次一级台阶;
n=3时有三种方案:第一种在第一层,直接跳到两级台阶到第三层;第二种和第三种在第二层再跳一层到第三层,从第一层到第二层有两种方案,同理,co
#include<stdio.h>
int f(int n)
{int a = 1;int b = 2;int c = 0;while (n > 2){c = a + b;a = b;b = c;n--;}return c;if (n <= 2){return n;}
}
int main()
{int m = 0;scanf_s("%d", &m);printf("小只因有几种跳法=>");printf("%d\n\n\n\n",f(m));
}
运行截图
五、创建一个含有10个元素的数组,乱序输入元素后升序输出
#include<stdio.h>
#define N 10
void main()
{int a[N], i, j, temp;printf("请输入数字:\n", N);for (i = 0; i < N; i++)scanf_s("%d", &a[i]);for (i = 0; i < N - 1; i++){for (j = 0; j < N - 1; j++){if (a[j] > a[j + 1]){temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}for (i = 0; i < N; i++)printf(" %d ", a[i]);printf("\n\n\n\n\n");}
运行截图
六、输入任意十进制整数,输出该数的八进制数
#include<stdio.h>
void main()
{int x;scanf_s("%d", &x);int i = 0;int a[50];while (1){a[i] = x % 8;x= x / 8;if (x == 0){break;}i++;}int j;for (j = i; j >= 0; j--){printf("%d", a[j]);}printf("\n\n\n\n\n");}
运行截图
七、输入一串字符串后倒序输出
#include<stdio.h>
#include<string.h>
void main()
{char arr[100];printf("请输入一串字符串:");scanf_s("%s", arr, 100);int i = 0;while (i >= 0){if (arr[i] != '\0'){i++;}else{break;}}printf("倒序后:");for (int j = i; j >= 0; j--){printf("%c", arr[j]);}printf("\n\n\n\n\n");
}
运行截图
八、输入一个含9个元素的有序数组,再输入一个数 x,将 x 插入有序列中(与冒泡排序相似)
#include<stdio.h>
void main()
{int a[11] = { 1,2,3,4,6,7,8,9,10 };//为了防止溢出,最好选择比10大的数int x;scanf_s("%d", &x);for (int i = 0; i < 10; i++){if (x > a[i] && i == 9)a[9] = x;//第十个元素为xelse if (x <= a[i]){for (int j = 9; j >= i; j--){a[j + 1] = a[j];}a[i] = x;break;}}for (int i = 0; i < 11; i++)printf("%-3d", a[i]);printf("\n\n\n\n\n");return 0;
}
运行截图
总结
以上就是今天要讲的内容,本文仅仅简单介绍了一些有关C语言的小程序。希望能给大家带来帮助。