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

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;
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容

  • 一句瑞典格言说:“我们老得太快,却聪明得太迟。”不管你是否察觉,生命都一直在前进。 人生并未售来回票,失去的...
    fbad912d56d6阅读 136评论 0 1
  • 瀚之阅读 109评论 0 0
  • 山驰千骑远, 云过一湖长。 休叹光阴迫, 人间共此伤。
    梅开如雪阅读 189评论 9 23
  • 刚刚看完六季《唐顿庄园》,我终于松了一口气,戏中不断有波折,我犹如戏中人一般提心吊胆,几乎以一个姿势看完一季,手中...
    夕雁无边阅读 149评论 1 1