目录
12.打印自由行列的对角线(根据屏幕分辨率不同,行列数显示效果会不同)
2. 斐波那契数列(三种形式)
前言
仅是汇总一下入门学习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]);
}