洛谷--分支结构

@[TOC](Apples Prologue / 苹果和虫子)

第一题:

首先定义苹果个数,吃每个苹果时间及花费时间

#include<stdio.h>

int main(void)
{
    int m,t,s,n;//m:个数  t:吃每个苹果花费时间  s:花费时间  n:吃的苹果数
    scanf("%d%d%d",&m,&t,&s);

由于题目中提到m,t,s都为非负整数,若 t == 0所剩苹果数一直为零。所以需要分类,当t == 0时和当t != 0时,代码如下:

    //如果吃一个苹果时间为零,则剩余苹果数为零
    if(t == 0)
        n = m;
    else
    {
        if(s % t == 0)//当恰好吃完(s/t)个苹果
            n = s / t;
        else
            n = s / t +1;
        if(n > m) 
            n = m;
    }

最后输出所剩苹果数 :m - n

完整代码如下:

#include<stdio.h>

int main(void)
{
    int m,t,s,n;//m:个数  t:吃每个苹果花费时间  s:花费时间  n:吃的苹果数
    scanf("%d%d%d",&m,&t,&s);
    //如果吃一个苹果时间为零,则剩余苹果数为零
    if(t == 0)
        n = m;
    else
    {
        if(s % t == 0)//当恰好吃完(s/t)个苹果
            n = s / t;
        else
            n = s / t +1;
        if(n > m) 
            n = m;
    }
    printf("%d",m - n);
    return 0;
}


第二题:

先定义一个数组,使其分别存放四个人对这个数喜欢与否,并默认为不喜欢。

#include<stdio.h>

int char_1(int a); // 是否为偶数
int char_2(int a); // 是否大于4且不大于12
int main(void)
{
    int x,i,arr[4] = {0}; //arr数组中的四个数分别代表四个人喜欢x与否(1:喜欢/0:不喜欢)
    scanf("%d",&x);

定义两个函数,分别对应数的两个性质:

int char_1(int a) // 性质1:是偶数
{
    if(a % 2 == 0)
        return 1;
    else
        return 0;
}

int char_2(int a) // 性质2:大于4且不大于12
{
    if((a > 4) && (a <= 12))
        return 1;
    else
         return 0;
}

若符合则返回1,反之返回0.

最后根据四个人的喜好,判断其是否喜欢这个数

if(char_1(x)&&char_2(x))
        arr[0] = 1; // 如果两个条件都符合,则小A喜欢
    if(char_1(x)||char_2(x))
        arr[1] = 1; //如果至少符合其中一个条件,则Uim喜欢
    if(char_1(x)^char_2(x))
        arr[2] = 1; //恰好有一个条件符合则八尾勇喜欢
    if(!(char_1(x)||char_2(x)))
        arr[3] = 1; //如果两个条件都不符合,则正妹喜欢

完整代码如下

#include<stdio.h>

int char_1(int a); // 是否为偶数
int char_2(int a); // 是否大于4且不大于12
int main(void)
{
    int x,i,arr[4] = {0}; //arr数组中的四个数分别代表四个人喜欢x与否(1:喜欢/2:不喜欢)
    scanf("%d",&x);
    if(char_1(x)&&char_2(x))
        arr[0] = 1; // 如果两个条件都符合,则小A喜欢
    if(char_1(x)||char_2(x))
        arr[1] = 1; //如果至少符合其中一个条件,则Uim喜欢
    if(char_1(x)^char_2(x))
        arr[2] = 1; //恰好有一个条件符合则八尾勇喜欢
    if(!(char_1(x)||char_2(x)))
        arr[3] = 1; //如果两个条件都不符合,则正妹喜欢
    
    for(i = 0;i < 4 ;i++)
    {
        printf("%d",arr[i]);
        if(i < 3)
            printf(" ");
    }
    return 0;
}

int char_1(int a)
{
    if(a % 2 == 0)
        return 1;
    else
        return 0;
}

int char_2(int a)
{
    if((a > 4) && (a <= 12))
        return 1;
    else
         return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值