C语言简单实现14个例题(谭浩强第四版)

版权声明:转载请注明出处:http://blog.****.net/dajitui2024 https://blog.****.net/dajitui2024/article/details/79396241

1、仅供学习交流参考。

#include<stdio.h>
#include<math.h>
#include<stdio.h>
#include<math.h>
#define PI 3.14159//对第二题的应用
void huashi()//1. 华氏度与摄氏度相互转换 
{
    float f,c;
    printf("\n");
    printf("请输入华氏:\n");
    scanf("%f",&f);
    c=(5.0/9)*(f-32);
    printf("\n");
    printf("c=%.2f\n",c);
    printf("\n");
}
void mianji()//2. 求圆的面积
{
    float r,s;
    printf("\n");
    printf("请输入圆的半径:");
    scanf("%f",&r);
    s=PI*r*r;
    printf("\n");
    printf("面积为%.2f\n",s);
    printf("\n");
}
void zijieshu()//3. 测试不同数据类型的字节数 
{
    printf("\n");
    printf("输出各数据类型字节数\n");
    printf("整形数据所占字节数%d\n",sizeof(int));
    printf("短型数据所占字节数%d\n",sizeof(short));
    printf("单精数据所占字节数%d\n",sizeof(float));
    printf("双精数据所占字节数%d\n",sizeof(double));
    printf("字符数据所占字节数%d\n",sizeof(char));
    printf("\n");
}
void runnian()//4. 判断闰年
{
    int a;
    printf("\n");
    printf("请输入年份:");
    scanf("%d",&a);
    if(a%4==0 && a%100!=0 || a%400==0)
    {
        printf("%d 是闰年\n",a);
    }
    else 
        printf("%d 不是闰年\n",a);
    printf("\n");
}
void sanjiaoxing()//5. 根据三角形的边长,计算三角形面积
{
    int a,b,c;
    double d,s=0;
    printf("\n");
    printf("请输入三角形边长:");
    printf("例如输入:1,2,3 按回车即可\n");
    scanf("%d,%d,%d",&a,&b,&c);
    if(a+b>c && a+c>b && b+c>a)
    {
        d=(a+b+c)/2;
        s=sqrt((d-a)*(d-b)*(d-c)*d);
        printf("s=%.2f平方米\n",s);
    }
    else
        printf("不能构成三角形,请重新输入\n");
    printf("\n");
}
void shuru()//6. 分段函数的计算  
{
    int x,y;
    printf("\n");
    printf("请输入x的值:");
    scanf("%d",&x);
    if(x>10)
    {
        y=3*x-11;
        printf("y=%d\n",y);
    }
    else
    if(x>1)
    {
        y=2*x-1;
        printf("y=%d\n",y);
    }
    else
        printf("y=%d\n",x);
    printf("\n");
}
void shuijin()//7. 所得税计算  
{
    float a,b;
    printf("\n");
    printf("请输入工资:a=");
    scanf("%f",&a);
    if(a<3000)
        b=0;
    else
        if(a<5000)
            b=(a-3000)*0.03;
        else
            b=(a-5000)*0.1;
        printf("需要交纳税b=%.2f\n",b);
        printf("\n");
}
void yunshuanfu()//8. 实现两个数的算术运算 
{
    float x,y;
    char p;
    printf("\n");
    printf("输入要计算的数值:\n");
    printf("例如输入:1-2,按回车\n");
    scanf("%f%c%f",&x,&p,&y);
    switch (p)
    {
    case '+':printf("%.2f+%.2f=%.2f\n",x,y,x+y);break;
    case '-':printf("%.2f-%.2f=%.2f\n",x,y,x-y);break;
    case '*':printf("%.2f*%.2f=%.2f\n",x,y,x*y);break;
    case '/':printf("%.2f/%.2f=%.2f\n",x,y,x/y);break;
    case '%':printf("%.2f%c%.2f=%d\n",x,p,y,(int)x%(int)y);break;
    }
    printf("\n");
}
void zongshu()//9. 人口数量计算
{
    int n=2000;
    double p=0.078,m=14;
    printf("\n");
    while (n<=2020)
    {
        m=m*(1+p);
        n=n+1;
    }
    printf("2020年的人口数量为%.2f亿\n",m);
    printf("\n");
}
void jiecheng()//10. 求阶乘 
{
    int a=1,b=1,n=20;
    printf("\n");
    printf("请输小于20的数字n:");
    scanf("%d",&n);
    while(b<=n)
    {
        a=a*b;
        b=b+1;
    }
    printf("%d的阶乘计算结果为:%d\n",n,a);
    printf("\n");
}
void sushu()//11. 判断素数
{
    int n,k,i;
    printf("\n");
    printf("请输入一个正整数:");
    scanf("%d",&n);
    {
        k=sqrt(n);
        for(i=2;i<=k;i++)
            if(n%i==0)break;
            if(i>=k+1)
            {
                printf("%d是素数\n",n);
            }
            else
                printf("%d不是素数\n",n);
    }
    printf("\n");
}
void shulie()//12. 求斐波那契数列
{
    int i;
    int a[20]={1,1};
    printf("\n");
    printf("正在输出非波纳契前20项\n");
    for(i=2;i<20;i++)
        a[i]=a[i-2]+a[i-1];
    for(i=0;i<20;i++)
    {
        if(i%5==0)
            printf("\n");
        printf("%12d",a[i]);
    }
    printf("\n");
}
void defen()//13. 计算选手得分
{
  float score[7];
  float min,max,ave;
  float sum=0.0;
  int i;
  printf("\n");
  printf("请分别输入七个人员的分数:\n");
  for(i=0;i<7;i++) scanf("%f",&score[i]);
  printf("\n");
  min=score[0];
  max=score[0];
  for(i=0;i<7;i++){
   sum=sum+score[i];
      if(score[i]>max) max=score[i];
      if(score[i]<min) min=score[i];
  }
  ave=(sum-max-min)/5;
  printf("最高分=%5.2f\n",max);
  printf("最低分=%5.2f\n",min);
  printf("平均分=%5.2f\n",ave);
    printf("\n");
}
void chazhao()//14. 查找电话号码 
{
    int i;
    char n[20];
    struct call
    {
        char name[20];
        char num[20];
    }
    a[4]={{"zhao","11111111111"},{"qian","22222222222"},{"sun","33333333333"},
    {"li","44444444444"}};
    printf("可查询人员名字列表\n");
    printf("zhao\n");
    printf("qian\n");
    printf("sun\n");
    printf("li\n");
    printf("请输入姓名\n");
    scanf("%s",n);
    for(i=0;i<4;i++)
        if(strcmp(a[i].name,n)==0)
        {
            printf("%s\n",a[i].num);
            break;
        }
        if(i>=4)
            printf("查无此人\n");
}
void main()
{
    int p;
    while(1)
    {
        printf("1. 华氏度与摄氏度相互转换 \n");
        printf("2. 求圆的面积\n");
        printf("3. 测试不同数据类型的字节数\n");
        printf("4. 判断闰年\n");
        printf("5. 根据三角形的边长,计算三角形面积\n");
        printf("6. 分段函数的计算\n");
        printf("7. 所得税计算\n");
        printf("8. 实现两个数的算术运算\n");
        printf("9. 人口数量计算\n");
        printf("10.求阶乘\n");
        printf("11.判断素数\n");
        printf("12.求斐波那契数列  \n");
        printf("13.计算选手得分\n");
        printf("14.查找电话号码\n");
        printf("0. 退出\n");
        printf("请选择0-14:");
        scanf("%d",&p);
        if(p==0)
            break;
        switch(p)
        {
        case 1:huashi();break;
        case 2:mianji();break;
        case 3:zijieshu();break;
        case 4:runnian();break;
        case 5:sanjiaoxing();break;
        case 6:shuru();break;
        case 7:shuijin();break;
        case 8:yunshuanfu();break;
        case 9:zongshu();break;
        case 10:jiecheng();break;
        case 11:sushu();break;
        case 12:shulie();break;
        case 13:defen();break;
        case 14:chazhao();break;
        default:printf("请重新选择:\n");break;
        }
    }
}

#define PI 3.14159//对第二题的应用
void huashi()//1. 华氏度与摄氏度相互转换 
{
    float f,c;
    printf("\n");
    printf("请输入华氏:\n");
    scanf("%f",&f);
    c=(5.0/9)*(f-32);
    printf("\n");
    printf("c=%.2f\n",c);
    printf("\n");
}
void mianji()//2. 求圆的面积
{
    float r,s;
    printf("\n");
    printf("请输入圆的半径:");
    scanf("%f",&r);
    s=PI*r*r;
    printf("\n");
    printf("面积为%.2f\n",s);
    printf("\n");
}
void zijieshu()//3. 测试不同数据类型的字节数 
{
    printf("\n");
    printf("输出各数据类型字节数\n");
    printf("整形数据所占字节数%d\n",sizeof(int));
    printf("短型数据所占字节数%d\n",sizeof(short));
    printf("单精数据所占字节数%d\n",sizeof(float));
    printf("双精数据所占字节数%d\n",sizeof(double));
    printf("字符数据所占字节数%d\n",sizeof(char));
    printf("\n");
}
void runnian()//4. 判断闰年
{
    int a;
    printf("\n");
    printf("请输入年份:");
    scanf("%d",&a);
    if(a%4==0 && a%100!=0 || a%400==0)
    {
        printf("%d 是闰年\n",a);
    }
    else 
        printf("%d 不是闰年\n",a);
    printf("\n");
}
void sanjiaoxing()//5. 根据三角形的边长,计算三角形面积
{
    int a,b,c;
    double d,s=0;
    printf("\n");
    printf("请输入三角形边长:");
    printf("例如输入:1,2,3 按回车即可\n");
    scanf("%d,%d,%d",&a,&b,&c);
    if(a+b>c && a+c>b && b+c>a)
    {
        d=(a+b+c)/2;
        s=sqrt((d-a)*(d-b)*(d-c)*d);
        printf("s=%.2f平方米\n",s);
    }
    else
        printf("不能构成三角形,请重新输入\n");
    printf("\n");
}
void shuru()//6. 分段函数的计算  
{
    int x,y;
    printf("\n");
    printf("请输入x的值:");
    scanf("%d",&x);
    if(x>10)
    {
        y=3*x-11;
        printf("y=%d\n",y);
    }
    else
    if(x>1)
    {
        y=2*x-1;
        printf("y=%d\n",y);
    }
    else
        printf("y=%d\n",x);
    printf("\n");
}
void shuijin()//7. 所得税计算  
{
    float a,b;
    printf("\n");
    printf("请输入工资:a=");
    scanf("%f",&a);
    if(a<3000)
        b=0;
    else
        if(a<5000)
            b=(a-3000)*0.03;
        else
            b=(a-5000)*0.1;
        printf("需要交纳税b=%.2f\n",b);
        printf("\n");
}
void yunshuanfu()//8. 实现两个数的算术运算 
{
    float x,y;
    char p;
    printf("\n");
    printf("输入要计算的数值:\n");
    printf("例如输入:1-2,按回车\n");
    scanf("%f%c%f",&x,&p,&y);
    switch (p)
    {
    case '+':printf("%.2f+%.2f=%.2f\n",x,y,x+y);break;
    case '-':printf("%.2f-%.2f=%.2f\n",x,y,x-y);break;
    case '*':printf("%.2f*%.2f=%.2f\n",x,y,x*y);break;
    case '/':printf("%.2f/%.2f=%.2f\n",x,y,x/y);break;
    case '%':printf("%.2f%c%.2f=%d\n",x,p,y,(int)x%(int)y);break;
    }
    printf("\n");
}
void zongshu()//9. 人口数量计算
{
    int n=2000;
    double p=0.078,m=14;
    printf("\n");
    while (n<=2020)
    {
        m=m*(1+p);
        n=n+1;
    }
    printf("2020年的人口数量为%.2f亿\n",m);
    printf("\n");
}
void jiecheng()//10. 求阶乘 
{
    int a=1,b=1,n=20;
    printf("\n");
    printf("请输小于20的数字n:");
    scanf("%d",&n);
    while(b<=n)
    {
        a=a*b;
        b=b+1;
    }
    printf("%d的阶乘计算结果为:%d\n",n,a);
    printf("\n");
}
void sushu()//11. 判断素数
{
    int n,k,i;
    printf("\n");
    printf("请输入一个正整数:");
    scanf("%d",&n);
    {
        k=sqrt(n);
        for(i=2;i<=k;i++)
            if(n%i==0)break;
            if(i>=k+1)
            {
                printf("%d是素数\n",n);
            }
            else
                printf("%d不是素数\n",n);
    }
    printf("\n");
}
void shulie()//12. 求斐波那契数列
{
    int i;
    int a[20]={1,1};
    printf("\n");
    printf("正在输出非波纳契前20项\n");
    for(i=2;i<20;i++)
        a[i]=a[i-2]+a[i-1];
    for(i=0;i<20;i++)
    {
        if(i%5==0)
            printf("\n");
        printf("%12d",a[i]);
    }
    printf("\n");
}
void defen()//13. 计算选手得分
{
  float score[7];
  float min,max,ave;
  float sum=0.0;
  int i;
  printf("\n");
  printf("请分别输入七个人员的分数:\n");
  for(i=0;i<7;i++) scanf("%f",&score[i]);
  printf("\n");
  min=score[0];
  max=score[0];
  for(i=0;i<7;i++){
   sum=sum+score[i];
      if(score[i]>max) max=score[i];
      if(score[i]<min) min=score[i];
  }
  ave=(sum-max-min)/5;
  printf("最高分=%5.2f\n",max);
  printf("最低分=%5.2f\n",min);
  printf("平均分=%5.2f\n",ave);
    printf("\n");
}
void chazhao()//14. 查找电话号码 
{
    int i;
    char n[20];
    struct call
    {
        char name[20];
        char num[20];
    }
    a[4]={{"zhao","11111111111"},{"qian","22222222222"},{"sun","33333333333"},
    {"li","44444444444"}};
    printf("可查询人员名字列表\n");
    printf("zhao\n");
    printf("qian\n");
    printf("sun\n");
    printf("li\n");
    printf("请输入姓名\n");
    scanf("%s",n);
    for(i=0;i<4;i++)
        if(strcmp(a[i].name,n)==0)
        {
            printf("%s\n",a[i].num);
            break;
        }
        if(i>=4)
            printf("查无此人\n");
}
void main()
{
    int p;
    while(1)
    {
        printf("1. 华氏度与摄氏度相互转换 \n");
        printf("2. 求圆的面积\n");
        printf("3. 测试不同数据类型的字节数\n");
        printf("4. 判断闰年\n");
        printf("5. 根据三角形的边长,计算三角形面积\n");
        printf("6. 分段函数的计算\n");
        printf("7. 所得税计算\n");
        printf("8. 实现两个数的算术运算\n");
        printf("9. 人口数量计算\n");
        printf("10.求阶乘\n");
        printf("11.判断素数\n");
        printf("12.求斐波那契数列  \n");
        printf("13.计算选手得分\n");
        printf("14.查找电话号码\n");
        printf("0. 退出\n");
        printf("请选择0-14:");
        scanf("%d",&p);
        if(p==0)
            break;
        switch(p)
        {
        case 1:huashi();break;
        case 2:mianji();break;
        case 3:zijieshu();break;
        case 4:runnian();break;
        case 5:sanjiaoxing();break;
        case 6:shuru();break;
        case 7:shuijin();break;
        case 8:yunshuanfu();break;
        case 9:zongshu();break;
        case 10:jiecheng();break;
        case 11:sushu();break;
        case 12:shulie();break;
        case 13:defen();break;
        case 14:chazhao();break;
        default:printf("请重新选择:\n");break;
        }
    }
}
上一篇:今天思考了一些


下一篇:每次连接服务器postgre数据库都要执行的步骤