2025-03-04

This commit is contained in:
smallkun 2025-03-04 22:33:39 +08:00
parent 2491d0e09c
commit ecef67c3a5
2 changed files with 581 additions and 0 deletions

View File

@ -0,0 +1,32 @@
#!/bin/bash
# 输出文件名
output_file="combined.md"
# 清空或创建输出文件
> "$output_file"
# 遍历 1.c 到 20.c
for i in {1..20}; do
file="${i}.c"
# 检查文件是否存在
if [[ -f "$file" ]]; then
# 添加标题
echo "### C语言-${i}" >> "$output_file"
# 添加代码块开始
echo '```c' >> "$output_file"
# 将文件内容直接追加到输出文件(视为 GB2312 编码)
cat "$file" >> "$output_file"
# 添加代码块结束
echo '```' >> "$output_file"
# 添加一个空行
echo "" >> "$output_file"
else
echo "文件 $file 不存在,跳过。"
fi
done

View File

@ -0,0 +1,549 @@
### C语言-1
```c
/*-------------------------------------------------------
编程计算s=1×2×3×……×n n由键盘输入使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,n,p;
p=1;
printf("请输入一个正整数n:");
scanf("%d",&n);
/**********Program**********/
for(i=2;i<=n;i++){
p*=i;
}
/********** End **********/
printf("1*2*...*%d = %d\n",n,p);
}
```
### C语言-2
```c
/*-------------------------------------------------------
编程计算π的近似值直到最后一项的绝对值小于10-5为止要求保留小数点后10位: 使用while
-------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
main()
{
int i,f;
double t,s;
f=1;
s=0;
i=1;
t=1.0;
/**********Program**********/
while(fabs(t/i)>1e-5){
s+=t/i*f;//计算该项的值
f*=-1;//翻转符号
i+=2;
}
/********** End **********/
s=s*4;
printf("圆周率的近似值为:%.10f\n",s);
}
```
### C语言-3
```c
/*-------------------------------------------------------
编程计算π的近似值直到最后一项的绝对值小于10-5为止使用while:
-------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
#define N 1e-5
main()
{
int i,f;
double t,s;
f=1;
s=0;
i=1;
t=1.0;
/**********Program**********/
while(fabs(t/i)>N){
s+=t/i*f;//计算该项的值
f*=-1;//翻转符号
i+=2;
}
/********** End **********/
s=s*4 ;
printf("圆周率的近似值为:%f\n",s);
}
```
### C语言-4
```c
/*-------------------------------------------------------
功能编程实现求1-10包含1不包含10之间的所有数的乘积并输出。使用while
--------------------------------------------------------*/
#include <stdio.h>
main( )
{
int i=1, sum=1;
/**********Program**********/
while(i<10){
sum*=i;
i++;
}
/********** End **********/
printf("the sum of odd is :%d\n",sum);
}
```
### C语言-5
```c
/*-------------------------------------------------------
功能:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最
低成绩当输入负数时结束输入。使用while循环
--------------------------------------------------------*/
#include <stdio.h>
main()
{
int x,max,min;
printf("please input x:\n");
scanf("%d",&x);
max=x;
min=x;
/**********Program**********/
while(x > 0){
if(x > max){
max = x;
}
if(x < min){
min = x;
}
scanf("%d", &x);
}
/********** End **********/
printf("max=%d,min=%d\n",max,min);
}
```
### C语言-6
```c
/*-------------------------------------------------------
编程计算使用for计算s=1+2+3+……+n n由键盘输入
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,n,sum;
sum=0;
printf("请输入一个正整数n:");
scanf("%d",&n);
/**********Program**********/
for(i=1;i<=n;i++){
sum+=i;
}
/********** End **********/
printf("1+2+...+%d = %d\n",n,sum);
}
```
### C语言-7
```c
/*-------------------------------------------------------
功能编写比较a、b两个数的大小且把大者赋给max小者赋给min。
--------------------------------------------------------*/
#include"stdio.h"
main()
{
int a,b,min,max;
printf("输入两个数给a,b:");
scanf("%d,%d",&a,&b);
/**********Program**********/
if (a > b) {
max = a;
min = b;
} else {
max = b;
min = a;
}
/********** End **********/
printf("min=%d,max=%d\n",min,max);
}
```
### C语言-8
```c
/*-------------------------------------------------------
功能输入三个整数x,y,z请把这三个数由小到大输出。
--------------------------------------------------------*/
#include <stdio.h>
main()
{
int x,y,z,t;
scanf("%d%d%d",&x , &y , &z);
/**********Program**********/
if (x > y) {
t = x;
x = y;
y = t;
}
if (y > z) {
t = y;
y = z;
z = t;
}
if (x > y) {
t = x;
x = y;
y = t;
}
/********** End **********/
printf("small to big: %d %d %d\n",x,y,z);
}
```
### C语言-9
```c
/*-------------------------------------------------------
功能从键盘输入整数n,输出n以内所有奇数的和。(使用for循环
--------------------------------------------------------*/
#include<stdio.h>
void main()
{
int n,i,s;
s=0;
scanf("%d",&n);
/**********Program**********/
for(i=1;i<=n;i++){
if(i%2==1){
s+=i;
}
}
/********** End **********/
printf("s=%d\n",s);
}
```
### C语言-10
```c
/*-------------------------------------------------------
编程计算s=1!+3!+5!+…n! n由键盘输入,使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,j,n;
long p,sum;
sum=0;
printf("请输入一个正整数n:");
scanf("%d",&n);
/**********Program**********/
p = 1;
for ( i = 1;i <= n; i++ ) {
p *= i;
if ( i%2 == 1 ) {
sum += p;
}
}
/********** End **********/
printf("1!+3!+...+%d!= %d\n",n,sum);
}
```
### C语言-11
```c
/*-------------------------------------------------------
编程计算求e近似值
用while语句求直到最后一项值小于10-5为止。
e=0+1+1/1+1/1/2+1/1/2/3...
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i;
double t,e;
i=1;
t=1.0;
e=0;
/**********Program**********/
e = 2;
i = 2;
while(t/i > 1e-5){
e += t/i;
t /= i++;
}
/********** End **********/
printf("e=%f\n",e);
}
```
### C语言-12
```c
/*-------------------------------------------------------
编程计算求e近似值 用for语句求前50项之和。
e=0+1+1/1+1/1/2+1/1/2/3...
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i;
double t,e;
t=1.0;
e=0;
for(i=1;i<=50;i++)
{
/**********Program**********/
e += t;
t /= i;
/********** End **********/
}
printf("前50项之和为%f\n",e);
}
```
### C语言-13
```c
/*-------------------------------------------------------
功能输入一个圆半径r当r>0时计算并输出圆的面积(area)和周长(circumference),否则,输出提示信息。
--------------------------------------------------------*/
#include <stdio.h>
#define PI 3.14
main()
{
float r,s,l;
printf("please input r:\n");
scanf("%f",&r);
if (r>=0)
{
/**********Program**********/
s = PI * r*r;
l = 2*PI*r;
/********** End **********/
printf("the area is %f\n",s);
printf("the circumference is %f\n",l);
}
else
printf("input error!\n");
}
```
### C语言-14
```c
/*-------------------------------------------------------
功能编写程序输入三位数100-999然后按数字逆序输出。输入456↙输出654
--------------------------------------------------------*/
#include <stdio.h>
void main()
{
int n,ge,shi,bai;
printf("请输入一个三位正整数:");
scanf("%d",&n);
if((n<100)||(n>999))
printf("输入数据有误!\n");
else
{
/**********Program**********/
ge = n % 10;
shi = n % 100 / 10;
bai = n / 100;
/********** End **********/
printf("此数的逆序输出结果为:%d%d%d\n",ge,shi,bai);
}
}
```
### C语言-15
```c
/*-------------------------------------------------------
编程计算s=1!+2!+3!+…n! n由键盘输入使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,j,n;
long p,sum;
sum=0;
printf("请输入一个正整数n:");
scanf("%d",&n);
/**********Program**********/
p = 1;
for( i = 1;i <= n; i++ ){
p *= i;
sum += p;
}
/********** End **********/
printf("1!+2!+...+%d!= %d\n",n,sum);
}
```
### C语言-16
```c
/*-------------------------------------------------------
编程计算s=1-3+5-7+……-99使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,f,sum;
f=1;
sum=0;
/**********Program**********/
for(i=1;i<=99;i++){
if(i%2==1){
sum += i*f;
f*=-1;
}
}
/********** End **********/
printf("1-3+5-7+...-99 = %d\n",sum);
}
```
### C语言-17
```c
/*-------------------------------------------------------
功能编写一个简单计算器程序输入格式为a op b。其中 a和b是
参加运算的两个数op 为运算符,它的取值只能是+、-、*、/。
例:(注意输出格式)
输入3+4
输出3.000000+4.000000=7.000000
--------------------------------------------------------*/
#include<stdio.h>
main()
{
float a,b;
char op;
printf("Please enter a,b and op:");
scanf("%f,%c,%f",&a,&op,&b);
switch(op)
{
/**********Program**********/
case '+':printf("%f+%f=%f\n", a, b, a+b);break;
case '-':printf("%f-%f=%f\n", a, b, a-b);break;
case '*':printf("%f*%f=%f\n", a, b, a*b);break;
/********** End **********/
case '/':if(b!=0)
printf("%f/%f=%f\n",a,b,a/b);
else
printf("error!\n");break;
default:printf("error!\n");break;
}
}
```
### C语言-18
```c
/*-------------------------------------------------------
功能:编写程序,把三个整数中最大的打印出来。
--------------------------------------------------------*/
#include"stdio.h"
main()
{
int a,b,c,m;
scanf("%d,%d,%d", &a,&b,&c);
/**********Program**********/
m = a;
if( b > m ){
m = b;
}
if ( c > m ) {
m = c;
}
/********** End **********/
printf ("m=%d\n",m);
}
```
### C语言-19
```c
/*-------------------------------------------------------
功能使用for循环打印出如下图案菱形
*
***
*****
*******
*****
***
*
--------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,j,k;
/**********Program**********/
for(i=-3;i<=3;i++){
for(j=0;j<(i<0?-i:i);j++){
printf(" ");
}
for(k=0;k<7-j*2;k++){
printf("*");
}
printf("\n");
}
/********** End **********/
}
```
### C语言-20
```c
/*-------------------------------------------------------
功能找出n个数中最大的数和最小的数并将它们的值输出出来。
--------------------------------------------------------*/
#include<stdio.h>
int main()
{
int a,n,i,min,max;
scanf("%d",&n);
scanf("%d",&a);
min=a;
max=a;
for(i=1;i<n;i++)
{
/**********Program**********/
scanf("%d", &a);
if(a > max){
max = a;
}
if(a < min){
min = a;
}
/********** End **********/
}
printf("The maximum number is %d.\n",max);
printf("The minimum number is %d.\n",min);
}
```