用 C语言的写出几个小程序

系列文章目录

前言

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;//杨辉三角中第一列都为1
		a[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;//第十个元素为x
		else 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语言的小程序。希望能给大家带来帮助。

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值