C语言 每日一题 PTA 10.21-10.24日 day3

简介: C语言 每日一题 PTA 10.21-10.24日 day3

1.计算分段函数[1]


本题目要求计算下列分段函数f(x)的值:

y=f(x)=1/x x!=0

y=f(x)=0 x=0


int main()
{
  double num = 0;
  scanf("%lf", &num);
  double result = 0;
  if (num == 0)
  {
    result = 0;
  }
  else
  {
    result = 1 / num;
  }
  printf("f(%.1lf)=%.1lf", num, result);
  return 0;
}

2.计算分段函数[2]


本题目要求计算下列分段函数f(x)的值:

f(x)=x^0.5 x>=0时

f(x)=(x+1)^2+2x+1/x x<0时

注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。

#include<stdio.h>
#include<math.h>
int main()
{
    double x, result;
    scanf("%lf", &x);
    if (x >= 0) {
        result = sqrt(x);
    }
    else {
        result = pow((x + 1), 2) + 2 * x + 1 / x;
    }
    printf("f(%.2lf) = %.2lf", x, result);
}


3.阶梯电价


为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:

月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元 / 千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元 / 千瓦时。请编写程序计算电费。

输入格式 :

输入在一行中给出某用户的月用电量(单位:千瓦时)。

输出格式 :

在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”;若用电量小于0,则输出"Invalid Value!"。

int main()
{
  float num = 0;
  float money = 0;
  printf("请输入用户用电量:\n");
  scanf("%f", &num);
  if (num <= 50)
  {
    money = num * 0.53;
  }
  else {
    money = 50 * 0.53 + (num - 50) * 0.58;
  }
  if (money < 0)
  {
    printf("Invalid Value!");
  }
  else
  {
    printf("cost = %.2f", money);
  }
  return 0;
}

4.计算火车运行时间


本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。

输入格式:

输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。

每个时间的格式为2位小时数(00 - 23)和2位分钟数(00 - 59),假设出发和到达在同一天内。

输出格式:

在一行输出该旅途所用的时间,格式为“hh : mm”,其中hh为2位小时数、mm为2位分钟数。

方法1:

int main()
{
  int num1 = 0;
  int num2 = 0;
  scanf("%d %d", &num1, &num2);
  int hh1 = 0;
  int mm1 = 0;
  int hh2 = 0;
  int mm2 = 0;
  hh1 = num1 / 100;
  hh2 = num2 / 100;
  mm1 = num1 % 100;
  mm2 = num2 % 100;
  int hh = hh2 - hh1;
  int mm = mm2 - mm1;
  printf("%02d:%02d", hh, mm);
  return 0;
}

方法2:

#include<stdio.h>
int main() {
  int a, b, t;
  scanf("%d %d", &a, &b);
  t = b % 100 - a % 100 + (b / 100 - a / 100) * 60;
  printf("%02d:%02d", t / 60, t % 60);
}

5.计算分段函数[3]


本题目要求计算下列分段函数f(x)的值:

y=f(x)=x,  x!=10

     1/x,x=10

输入格式:

输入在一行中给出实数x。

输出格式:

在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。

int main()
{
  float x = 0;
  float y = 0;
  scanf("%f", &x);
  if (x == 10)
  {
    y = 1.0 / x;
  }
  else
  {
    y = x;
  }
  printf("f(%.1f)=%.1f", x, y); 
  return 0;
}

 

6.本题要求将输入的任意3个整数从小到大输出。

输入格式 :

输入在一行中给出3个整数,其间以空格分隔。

输出格式 :

在一行中将3个整数从小到大输出,其间以“->”相连。

#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;
    }
    if (a > c) {
        t = a;
        a = c;
        c = t;
    }
    if (b > c) {
        t = b;
        b = c;
        c = t;
    }
    printf("%d->%d->%d", a, b, c);
}

7.显示菜单

给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元 / 公斤、2.50元 / 公斤、4.10元 / 公斤、10.20元 / 公斤。

首先在屏幕上显示以下菜单:

[1] apple

[2] pear

[3] orange

[4] grape

[0] exit

用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。

void menu()
{
  printf("[1] apple\n");
  printf("[2] pear\n");
  printf("[3] orange\n");
  printf("[4] grape\n");
  printf("[0] exit\n");
}
int main()
{
  int n = 1;
  while (n < 5)
  {
    printf("请您输入你想执行的操作:\n");
    printf("这是第%d次输入\n", n);
    menu();
    int num = 0;
    scanf("%d", &num);
    switch (num)
    {
    case 1:
      printf("苹果单价:3.00元/kg\n");
      break;
    case 2:
      printf("梨单价:2.50元/kg\n");
      break;
    case 3:
      printf("桔子单价:4.10元/kg");
      break;
    case 4:
      printf("葡萄单价:10.20元/kg");
      break;
    case 0:
      printf("退出程序\n");
      break;
    default:
      printf("输入错误\n");
      break;
    }
    n++;
  }
  return 0;
}

8.统计字符

本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

思路:利用getchar函数输入字符串

int main()
{
  int i = 0;
  int letter = 0, blank = 0, digit = 0, other = 0;
  char c;
  while (i++, i <= 10)
  {
    c = getchar();
    if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
    {
      ++letter;
    }
    else if (c == ' ' || c == '\n')
    {
      ++blank;
    }
    else if (c >= '0' && c <= '9')
    {
      ++digit;
    }
    else
    {
      ++other;
      //这里加一个判断是因为输入的回车会被判定成other
      if (c == '\n')
      {
        --other;
      }
    }
  }
  printf("letter = %d\nblank = %d\ndigit = %d\nother = %d\n", letter, blank, digit, other);
  return 0;
}

9. 两个数的简单计算器

本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。题目保证输入和输出均不超过整型范围。

输入格式:

输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。操作数的数据类型为整型,且保证除法和求余的分母非零。

输出格式:

当运算符为 + 、 - 、 * 、 / 、 % 时,在一行输出相应的运算结果。若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR。

int main()
{
  char signal;
  printf("您要进行的运算是:\n");
  scanf("%c", &signal);
  int a, b;
  printf("请您输入两个数:");
  scanf("%d %d", &a, &b);
  switch (signal)
  {
  case '+':
    printf("%d", a + b);
    break;
  case '-':
    printf("%d", a - b);
    break;
  case '*':
    printf("%d", a * b);
    break;
  case '/':
    printf("%d", a / b);
    break;
  case '%':
    printf("%d", a % b);
    break;
  }
  return 0;
}


目录
相关文章
|
4月前
|
存储 C语言 C++
PTA—C语言期末复习(选择题)
PTA—C语言期末复习(选择题)
|
4月前
|
C语言
PTA—C语言期末复习(判断题)
PTA—C语言期末复习(判断题)
|
6月前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
|
6月前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
|
6月前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
|
6月前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
|
6月前
|
C语言
C语言部分期末答案(来自PTA)
C语言部分期末答案(来自PTA)
|
6月前
|
存储 C语言
[C语言/PTA] 学生成绩链表处理
[C语言/PTA] 学生成绩链表处理
121 0
|
6月前
|
存储 C语言
[C语言/PTA] 建立学生信息链表
[C语言/PTA] 建立学生信息链表
129 0
|
6月前
|
存储 C语言
[C语言/PTA] 单链表结点删除
[C语言/PTA] 单链表结点删除
113 0