C语言入门程序【1】

目录

前言

 1.开始

1.for循环99乘法表

2.while循环实现99乘法表

3.100以内个位数为5的数

4.输入距离和重量,计算运送包裹的费用

5.输入总成绩,判断等级

6.在一个数组中插入一个数,大小顺序不变

7.输入一段字符串,判断其中字符个数

8.利用函数实现插数

9.输入三个数,比较其大小

10.输入十个同学成绩,输出低于平均分的人数

11.打印一个6x6的对角线

12.打印自由行列的对角线(根据屏幕分辨率不同,行列数显示效果会不同)

2. 斐波那契数列(三种形式)

13.斐波那契数列①

14.斐波那契数列②

15.斐波那契数列③(递归)

16.100至200以内回文数的和

17.求n!(n!=n*(n-1)*(n-2)……*1)

18.求n的阶乘(函数)

19.输入一个3x4的矩阵,输出其中偶数个数

20.输入十个数,将其逆序输出



前言

仅是汇总一下入门学习c语言写的程序。以下全部为本人或于同学老师一同编写,如有雷同纯属巧合。

刚刚入门,语法等等还处在萌新阶段,欢迎大佬指正,也希望可以给看到的初学者一些启发、帮助。


c语言交流🐧qun:938424667

点击链接加入群聊【VS DevC++ Leaning Group】:https://qm.qq.com/q/8xrPZkV4QM


开始

1.for循环99乘法表

#include <stdio.h>
main()
{
	int i,j;
	for(i=1;i<=9;i++)
	{
		for(j=1;j<=i;j++)
		{
			printf("%dx%d=%d ",j,i,i*j);
		}
		printf("\n");
	}
}


2.while循环实现99乘法表

#include <stdio.h>
main()
{
	int i=1,j=1,t=1;
	while(i<=9)
	{
		j=1;
		while(j<=i)
		{
		    printf("%dx%d=%d ",j,i*j);
		    i++;
		}
	    	printf("\n");
		    j++;
	}
}

3.100以内个位数为5的数

#include <stdio.h>
main() {
	int i, cnt = 0;
	for (i = 0; i <= 100; i++) {
		if (i % 10 == 5 && i % 3 == 0) {
			cnt++;
			printf("% d\n", i);
		}
	}
	printf("%d", cnt);
}

4.输入距离和重量,计算运送包裹的费用

#include <stdio.h>
int main() {
	float kg, km, money;
	printf("请输入包裹重量,距离,用空格隔开:\n");
	scanf("%f %f", &kg, &km);
	if (kg < 5)
		money = km * 0.5;
	else	if (kg >= 5 && kg < 10)
		money = km * 0.8;
	else
		money = km * 1.0;
	printf("费用:%.2f", money);
}

5.输入总成绩,判断等级

#include <stdio.h>
int main() {
	int score;
	printf("请输入学生成绩:");
	scanf("%d", &score);
	switch (score / 100) {
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			printf("F");
			break;
		case 6:
			printf("E");
			break;
		case 7:
			printf("D");
			break;
		case 8:
			printf("C");
			break;
		case 9:
			printf("B");
			break;
		case 10:
			printf("A");
			break;
		default:
			printf("成绩错误");
	}
	getchar();
	return 0;
}

6.在一个数组中插入一个数,大小顺序不变

#include <stdio.h>
main() {
	int a[6] = {5, 8, 13, 16, 19}, i, t, x;
	printf("请输入一个新数;\n");
	scanf("%d", &x);
	a[5] = x;
	for (i = 5; i >= 1; i--) {
		if (a[i] < a[i - 1]) {
			t = a[i];
			a[i] = a[i - 1];
			a[i - 1] = t;
		}
	}
	for (i = 0; i < 6; i++)
		printf("%d ", a[i]);
	return 0;
}

7.输入一段字符串,判断其中字符个数

#include <stdio.h>
#include <string.h>
int abc(char x[10]) {
	int i = 0;
	while (x[i] != '\0') {
		i++;
	}
	return i;
}
int main() {
	char a[20];
	printf("输入一段字符串:\n");
	gets(a);
	printf("%d", abc(a));
}

8.利用函数实现插数

#include <stdio.h>
int A(int y) {
	printf("请输入一个数:");
	scanf("%d", &y);
	return y;
}
main() {
	int a[5] = {5, 9, 13, 18, 20}, b[6] = {0}, i, j, x;
	b[0] = A(x);
	for (i = 0; i < 5; i++) {
		if (b[i] > a[i]) {
			b[i + 1] = b[i];
			b[i] = a[i];
		} else {
			for (j = i; j < 5; j++)
				b[j + 1] = a[j];
		}
	}
	for (i = 0; i < 6; i++)
		printf("%d ", b[i]);
	return 0;
}

9.输入三个数,比较其大小

#include <stdio.h>
main() {
	int a, b, c, t;
	printf("请输入三个数:");
	scanf("%d%d%d", &a, &b, &c);
	if (a > b) {
		t = a;
		a = b;
		b = t;
	}
	if (a > c) {
		t = a;
		a = c;
		c = t;
	}
	if (b > c) {
		t = b;
		b = c;
		c = t;
	}
	printf("%d %d %d", a, b, c);
}

10.输入十个同学成绩,输出低于平均分的人数

#include <stdio.h>
main() {
	int i, cnt = 0;
	float a[10], avg = 0;
	printf("请输入十个同学成绩:");
	for (i = 0; i < 10; i++) {
		scanf("%f", &a[i]);
		avg += a[i];
	}
	avg = avg / 10;
	for (i = 0; i < 10; i++) {
		if (a[i] < avg)
			cnt++;
	}
	printf("低于平均分人数为:%d", cnt);
}

11.打印一个6x6的对角线

如图

#include <stdio.h>
int main() {
	int i, j;
	int a[6][6];
	for (i = 0; i < 6; i++) {
		for (j = 0; j < 6; j++) {
			if (i == j) {
				a[i][j] = 1;
			} else if (i + j == 5) {
				a[i][j] = -1;
			} else
				a[i][j] = 0;
		}
	}
	for (i = 0; i < 6; i++) {
		for (j = 0; j < 6; j++) {
			printf("%5d", a[i][j]);
		}
		printf("\n");
	}
}

12.打印自由行列的对角线(根据屏幕分辨率不同,行列数显示效果会不同)

如图

#include <stdio.h>
void A(int n) {
	int i, j;
	int a[50][50] = {{0}};
	for (i = 0; i < n; i++) {
		for (j = 0; j < n; j++) {
			if (i == j) {
				a[i][j] = 1;
			} else if (i + j == n - 1) {
				a[i][j] = -1;
			} else
				a[i][j] = 0;
		}
	}
	for (i = 0; i < n; i++) {
		for (j = 0; j < n; j++) {
			printf("%3d", a[i][j]);
		}
		printf("\n");
	}
}
int main() {
	int x;
	printf("请输入想打印的行列数n:\n");
	scanf("%d", &x);
	A(x);
	return 0;
}

 斐波那契数列(三种形式)

13.斐波那契数列①

#include <stdio.h>
main() {
	int a[30] = {1, 1}, i, cnt = 0;
	for (i = 2; i < 30; i++) {
		a[i] = a[i - 1] + a[i - 2];
	}
	for (i = 0; i < 30; i++) {
		printf("%d ", a[i]);
		cnt++;
		if (cnt % 5 == 0)
			printf("\n");
	}
}

14.斐波那契数列②

#include <stdio.h>
int A(int n) {
	int n1 = 1, n2 = 1, tmp = 0, i;
	if (n < 3) {
		return 1;
	} else {
		for (i = 0; i < n; i++) {
			tmp = n1 + n2;
			n1 = n2;
			n2 = tmp;
		}
		return tmp;
	}
}
int main() {
	int a, b, j;
	scanf("%d", &b);
	a = A(b);
	printf("%d", a);
}

15.斐波那契数列③(递归)

#include <stdio.h>
int _fbn(int index) {
	if (index < 2)	return index;
	return _fbn(index - 1) + _fbn(index - 2);
}
int main() {
	int i = 0, n;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
		printf("%d\n", _fbn(i));
}

16.100至200以内回文数的和

#include <stdio.h>
#include <math.h>
main() {
	int s = 0, num, i, t = 1;
	for (num = 0; num < 100; num++) {
		for (i = 2; i < sqrt(num); i++) {
			if (num % i == 0) {
				t = 0;
				break;
			}
			if (t == 1) {
				printf("%d ", num);
				s += num;
			}
		}
	}
	printf("和为%d", s);
}

17.求n!(n!=n*(n-1)*(n-2)……*1)

#include <stdio.h>
main() {
	int n, i, s = 1;
	printf("请输入一个整数:\n");
	scanf("%d", &n);
	for (i = 1; i <= n - 1; i++) {
		s *= (n - i);
	}
	printf("%d!=%d", n, s * n);
}


18.求n的阶乘(函数)

#include <stdio.h>
float fn(float n) {
	float a;
	if (n > 1) {
		a = fn(n - 1) * n;
	} else {
		a = 1;
	}
	return a;
}
int main() {
	printf("请输入一个数:");
	float num;
	scanf("%f", &num);
	printf("1*2*...%.0f=%.0f", num, fn(num));
}

19.输入一个3x4的矩阵,输出其中偶数个数

#include <stdio.h>
main() {
	int a[3][4], i, j, cnt = 0;
	printf("请输入一个3x4矩阵:");
	for (i = 0; i < 3; i++) {
		for (j = 0; j < 4; j++) {
			scanf("%d", &a[i][j]);
			if (a[i][j] % 2 == 0)
				cnt++;
		}
	}
	printf("偶数个数为%d", cnt);
}

20.输入十个数,将其逆序输出

#include <stdio.h>
main() {
	int a[10], i;
	printf("请输入十个数:");
	for (i = 0; i < 10; i++)
		scanf("%d", &a[i]);
	for (i = 9; i >= 0; i--)
		printf("%4d", a[i]);
}

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值