C语言常用实例

目录
一、求二元一次方程的根
二、求分段函数
三、求最大公约数
四、求最大公约数和最小公倍数
五、求圆周率π的近似值(精确到小数点第5位或第7位)
六、输出所有的“水仙花数
七、判断闰年的方法
八、输出某范围全部闰年
九、数据逆序输出
十、数据逆置输出
一、求二元一次方程的根

#include<stdio.h>
#include<math.h>    //程序中要调用求平方根 sqrt 
int main()
{
    double a,b,c,disc,x1,x2,p,q;    //disc是判别式 b*b-4*a*c 
    printf("输入二元一次方程方程的系数a,b,c:\n");
    scanf("%lf%lf%lf",&a,&b,&c);    //输入双精度浮点型变量的值要用格式声明 %lf 
    disc=b*b-4*a*c;
    if(disc<0)                   //b*b-4*a*c<0
        printf("此方程无解\n");
    else                         //b*b-4*a*c<0
    {
        p=-b/(2.0*a);
        q=sqrt(disc)/(2.0*a);
        x1=p+q;
        x2=p-q;
        printf("方程有解,两根分别是:\nx1=%.2f\nx2=%.2f\n",x1,x2);
    }
     return 0;
}

二、分段函数

在这里插入图片描述

#include <stdio.h>
int main()
{
    int x,y;
    printf("输入x的值,输出y相应的值:\n");
    scanf("%d",&x);
    if(x < 1)
    {
        y= x;
        printf("x=%d y=%d",x,y);
    }
    else if( (x < 10) | (x >= 1) )
    {
        y= 2*x - 1;
        printf("x=%d y=%d",x,y);
    }
    else
    {
        y= 3*x - 11;
        printf("x=%d y=%d",x,y);
    }

   //  printf("x=%d y=%d,2*3=%d,2/3=%d,2-3=%d,2+3=%d",x,y,2*3,2/3,2-3,2+3);
    return 0;
}

三、9X9乘法表

#include<stdio.h>
int main()
{
    int row,colum;    //row行 colum列 
    for(row=1;row<=9;row++)
    {
        for(colum=1;colum<=row;colum++)
            printf("%d*%d=%-5d",row,colum,row*colum);
        printf("\n");
    }
    return 0;
}

注意:%-md:输出格bai式为整形,长度为m(输出最小长度),左对齐;比如-5d,-是左对齐打印,5是占5个字符位,d是以整数形式打印。

C语言中的格式占位符:
%a,%A 读入一个浮点值(仅C99有效)   
%c 读入一个字符  
%d 读入十进制整数   
%i 读入十进制,八进制,十六进制整数   
%o 读入八进制整数   
%x,%X 读入十六进制整数   
%s 读入一个字符串,遇空格、制表符或换行符结束。   
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。   
%p 读入一个指针   
%u 读入一个无符号十进制整数   
%n 至此已读入值的等价字符数   
%[] 扫描字符集合   
%% 读%符号

四、求圆周率π的近似值(精确到小数点第5位或第7位)

#include<stdio.h>
#include<math.h>        //程序中要用到数学函数 fabs (求绝对值) 
int main()
{
    int sign=1;                //sign表示数值的符号 
    double pi=0.0,n=1.0,term=1.0,k;   //pi开始多项式的值,最后表示 π的值,n表示分母 
 
    while(fabs(term)>=1e-6)        //term的绝对值是否大于或等于10^-6(精确到小数点第5位 )  
    {               //1e-8(精确到小数点第7位 )
        pi=pi+term;
        n=n+2;             //n+2是下一项分母 
        sign=-sign;
        term=sign/n;       //term下一项分子的值 
    }
    pi=pi*4;                          //多项式的和pi乘以4,才是π的近似值 
    printf("输出π的近似值π=%10.8f\n",pi);     //输出π的近似值 
    return 0;
}

五、三个数由小到大排序(注意:如果要求由大到小排序,可将 > 全部换成 < 即可)

#include<stdio.h>
int main()
{
    float a,b,c,t;                  //定义4个单精度浮点型变量a,b,c,t 
	printf("输入三个数值a,b,c:\n");  //双引号内的普通字符原样输出并换行 
	scanf("%f%f%f",&a,&b,&c);       //输入变量a,b,c的值 
	if(a>b)             //如果a大于b,借助中间变量t实现a与b值得互换 
	    {t=a;a=b;b=t;}
	if(a>c)             //如果a大于c,借助中间变量t实现a与c值得互换 
	    {t=a;a=c;c=t;}
	if(b>c)             //如果b大于c,借助中间变量t实现b与c值得互换 
	    {t=b;b=c;c=t;}
	printf("从小到大排序后输出结果:\n\n");
    printf("只保留整数:    %.0f    %.0f    %.0f\n",a,b,c);   //结果遵循四舍五入
    printf("保留一位小数:  %.1f  %.1f  %.1f\n",a,b,c);
//	printf("保留不同位小数:%.0f    %.1f  %.2f\n",a,b,c);
	return 0;
}

六、输出所有的“水仙花数”
所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
例如:153是水仙花数,因为 153 = 1^3 + 3^3 + 5^3

#include<stdio.h>
int main()
{
    int a=100,g,s,b,i;
    printf("输出所有 “水仙花数 ”:\n\n");
    for(i=a;i<1000;i++)
    {
        b=i/100;            //百位:取商 153/100=1
        s=i/10-b*10;        //十位:取商 153/10-10=15-10=5
        g=i%10;             //个位:取余 153%10=3
        if(i==g*g*g+s*s*s+b*b*b)
            printf("\t%d",i);
    }
    printf("\n");
    return 0;
}

七、判断闰年的方法
判断该年年份是闰年的条件:
①、能被4整除,但不能被100整除
②、能被400整除

#include<stdio.h>
int main()
{
    int year,leap;
    printf("输入一个年份year:");
    scanf("%d",&year);
    if((year%4==0 && year%100!=0) || (year%400==0))
        leap=1; 
    else
	    leap=0;
    if(leap)
	    printf("\n\t%d是闰年\n",year);
    else
	    printf("\t%d不是闰年\n",year);
    return 0;	
} 

八、输出某范围全部闰年

#include<stdio.h>
int main()
{
    int year,i;
    i=0;
    printf("输出2020年~2500年的全部闰年:\n\n\t");
    for(year=2020;year<=2500;year++) 
    {
	    if((year%4==0 && year%100!=0) || (year%400==0))
	    {
            printf("%d   ",year);  //双引号内可换成 (%d\t)
                i++;
            if(i%10==0)      //每行输出10个闰年换行 
                printf("\n\t");	   //换行并横向空格
	    }
    }
    printf("\n");   //可不要,只是为了输出好看 
    return 0;	
}

九、数据逆序输出

#include<stdio.h>
int main()
{
    int i,a[10];
    printf("原始数据:\n"); 
    for(i=0;i<=9;i++)
        a[i]=i;
    for(i=0;i<=9;i++)
       printf("%d ",a[i]); 
    printf("\n逆序数据:\n"); 
    for(i=9;i>=0;i--)
        printf("%d ",a[i]);
    return 0;
}

十、数据逆置输出

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值