紫皮书 - 第1章 程序设计入门

第一章、程序设计入门

1.1算术表达式

1、计算输出1+2

int main()
{
    printf("%d\n",1+2)
    return 0;
}

2、计算输出8/5,保留一位小数

#include<stdio.h>
int main()
{
    printf("%lf\n",8.0/5.0);
    return 0;
}
  • 整数值用%d输出,浮点数用%f 输出

​ 整数/整数=整数,浮点数/浮点数=浮点数

3、复杂计算头文件

#include<stdio.h>
#include<math.h>
int main()

1.2变量及其输入

  • scanf中占位符和变量的数据类型一一对应,且每个变量前加“&”符号

  • int存放整数值,double存放双精度浮点数值

  • 不要使用头文件conio.h,包括getch()、clrscr()等函数

  • 格式要求:①每行输出以回车结束(包括最后一行)

    ​ ②每行行首无空格

    ​ ③输出的每两个数或字符串以单个空格隔开

    例题:输入圆柱体底面半径r 和高h,输出圆柱体表面积

    #include<stdio.h>
    #include<math.h>
    int main()
    {
        const double pi=acos(-1.0);
        double r,h,s1,s2,s;
        scanf("%lf%lf",&r,&h);
        s1=pirr;
        s2=2pir*h;
        s=s1*2.0+s2;
        printf("Area=%.3f\n",s)
        return 0;
    }

    如何理解s1=pi * r * r ?

    赋值:赋值是个动作,先计算右边的值,再赋给左边的变量,覆盖它原来的值

1.3顺序结构程序设计

1、输入一个三位数,分离出百位十位个位,反转后输出

分析:百位等于n/100 (这里取商的整数部分)

​ 十位等于n/10%1 (%为取余)

​ 个位等于n%10

​ (此题有一模糊细节,即个位为0,例输入520,输出025还是25?)

#include<stdio.h>
int main()
{    
    int n;
    scanf("%d",&n);
    printf("%d%d%d\n",n%10,n/10%10,n/100);
    return 0;
}

​ 以上输出025

#include<stdio.h>
int main()
{
    int n,m;
    scanf("%d",&n);
    m=(n%d*100+(n/10%10)*10+(n/100))
    printf("%d\n",m);
    return 0;
}

​ 以上输出25

2、输入两整数a和b,交换二者的值,然后输出

#include<stdio.h>
int main()
{
    int a,b,t;
    scanf("%d%d",&a,&b);
    t=a;
    a=b;
    b=t;
    printf("%d %d\n",a,b);
    return 0;
}

1.4分支结构程序设计

1、已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡的数目和兔的数目,若无解则输出 No answer

分析:设鸡a 兔b,则a+b=n,2a+4b=m , 解得 a=(4n-m)/2, b=n-a

​ 要此题有解,即a、b为非负整数

#include<stdio.h>
int main()
{
    int a,b,n,m;
    scanf("%d%d",&n,&m);
    a=(4*n-m)/2;
    b=n-a;
    if(m%2==1||a<0||b<0)
        printf("No answer\n");
    else
        printf("%d %d\n",a,b);
    return 0;
}

2、输入3个整数,从小到大排序后输出

把a、b、c这三个变量改成a ≤ b ≤ c 的形式,若a > b,则交换a 和 b,接下来检查a 和 c,最后检查b和 c

#include<stdio.h>
int main()
{
    int a,b,c,t;
    scanf("%d%d%d",&a,&b,&c);
    if(a>b){t=a;a=b;b=t;}//执行完毕后a≤b
    if(a>c){t=a;a=c;c=t;}//执行完毕后a≤c,且a≤b仍成立
    if(b>c){t=b;b=c;c=t;}
    printf("%d %d %d\n",a,b,c);
    return 0;
}

1.5注解与习题

猜你喜欢

转载自www.cnblogs.com/mandala/p/11536504.html