学习C语言的艰难之路——Chapter1

逻辑计算和条件判断

第一个程序——Hello World!

int main()
{
    printf("Hello world!\n");

    return 0;
 } 

实现简单计算

  • 基本加法计算
 int main()
 {
    printf("11+22=%d",11+22);

    return 0;
  } 
  • 变量的赋值与输入 常变量定义
  void main()
  {
    const int amount = 100;
    int price = 0;

    printf("请输入金额(元):");

    scanf("%d",&price);

    int change = amount - price;

    printf("找您%d元,欢迎下次光临!\n",change);

   } 
  • scanf 输入双变量
void main()
{
    int a,b;

    printf("请输入两个整数:");

    scanf("%d %d",&a,&b);

    printf("%d + %d = %d",a,b,a+b);
 } 
  • 浮点型变量
void main()
{
    printf("请分别输入身高的英尺和英寸,""如输入\"5 7\"表示五英尺七英寸:"); 

    double foot,inch;

    scanf("%lf %lf",&foot,&inch);

    printf("身高是%f米。\n",((foot + inch / 12)*0.3048));

 } 
  • 计算时间差

方法一

 void main()
 {
    int hour1,minute1;
    int hour2,minute2;

    scanf("%d %d",&hour1,&minute1);
    scanf("%d %d",&hour2,&minute2);

    int t1 = hour1*60 + minute1;
    int t2 = hour2*60 + minute2;

    //全部换算为分钟数作差
    int t = t2 - t1;
    //取整数位为小时 余数为分钟
    printf("时间差是%d小时%d分钟。",t/60,t%60);
 }

方法二

void main()
 {
    int hour1,minute1;
    int hour2,minute2;

    scanf("%d %d",&hour1,&minute1);
    scanf("%d %d",&hour2,&minute2);

    int ih = hour2 - hour1;
    int im = minute2 - minute1;

    //进行判断 若分钟数<0 对小时数减1 分钟数加60
    if(im<0)
    {
        im = im + 60;
        ih --;
    }
    printf("时差是%d小时%d分钟。\n",ih,im);
 }
  • 交换变量值
void main()
{
    int a = 5,b = 6;
    int temp;

    temp = a;
    a = b;
    b = temp;

    printf("%d %d",a,b); 
 } 
  • 倒序输出三位数

题目:程序每次读入一个正三位数,然后输出逆序的数字。注意,当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

提示:对一个三位数数x,做x%10可以得到它的个位数,做x/100可以得到它的百位数,十位数则通过/和%两个运算的结合可以得到。

方法一:巧妙运用scanf函数

void main()
{
    int i,j,k;

    printf("请输入一个三位数:");

    scanf("%1d%1d%1d",&i,&j,&k);  //%1d 表示每次只读取一位数字。

    printf("倒序输出该三位数:%d%d%d\n",k,j,i);
}

方法二

void main()
{
    int a,b,c,d;

    printf("请输入一个三位数:");
    scanf("%3d",&a);

    b=a%10;
    c=(a-b)%100;
    d=(a-b-c)/100;
    b=b*100;
    a=b+c+d;

    printf("该三位数倒着写后为:%d",a);
}

方法三

int main()
{
    int n,m,a,b,c;

    printf("请输入一个三位数:");
    scanf("%d",&n);

    a=n/100;
    b=(n/10)%10;
    c=n%10;
    m=c*100+b*10+a;
    printf("该三位数逆序后为:%d",m);

    return 0; 
}

判断

  • 比较大小

方法一

void main()
{
    int a,b;

    printf("请输入两个整数:");

    scanf("%d %d",&a,&b);

    int max = 0;
    if(a>b)
    {
        max = a;    
    }
    else
    {
        max = b;
    }
    printf("较大的数是:%d",max);
 } 

方法二

void main()
{
    int a,b;

    printf("请输入两个整数:");

    scanf("%d %d",&a,&b);

    int max = a;
    if(a<b)
    {
        max = b;    
    }   
    printf("较大的数是:%d",max);
 } 
  • 嵌套if-else 比较三个数的大小
 void main()
 {
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);

    int max = 0;
    if(a>b)
     {
        if(a>c){
                max = a; 
             }
        else{
            max = c; 
            }

         }  
    else if(b>c){
            max = b;
        }   
        else{
            max = c;
        }

    printf("最大值为:%d",max);

  } 
  • 分段函数
 int main()
  {
        int x;
        scanf("%d",&x);

        int f = 0;

        if(x<0){
            f = -1;
          }
        else if(x==0){
                f = 0;
            }
        else{
                f = 2*x;
            }

        printf("%d",f);

        return 0; 
   } 
  • Switch-case语句
int main()
{
    int type = 0;

    scanf("%d",&type);

    switch(type)
    {
        case 1:
            printf("你好!");
            break;
        case 2:
            printf("早上好!");
            break;
        case 3:
            printf("晚上好!");
            break;
        case 4:
            printf("再见!");
            break;
        default:
            printf("啊,什么啊?");
            break; 
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值