【手把手带你刷题】-C语言编程入门篇(三)

简介: 【手把手带你刷题】-C语言编程入门篇(三)

前言:

今天是更新刷题篇的第三天,对于初学者而言,题目在不断的变难,希望大家可以坚持下去,刷完这130题,我们一定会有很大的进步,冲冲冲!!!

 

1.计算三角形的周长和面积

题目链接:计算三角形的周长和面积

题目:

题解:本题只要学习两点:

<1>知道三角形的三条边怎么计算三角形的面积:海伦公式S=sqrt(p*(p-a)*(p-b)*(p-c)),其中p为三角形周长的一半,即p=(a+b+c)/2

<2>sqrt这个函数是开平方的意思,它作用于double类型的变量,用这个函数要引头文件#include<math.h>

拓展:在C语言中怎么计算次方,这里介绍一个函数:pow(double x,double y),它的返回值也是double类型,eg:pow(2.0,6.0)=64,同样这是数学中的,所以用这个函数之前要引头文件#include<math.h>

#include <stdio.h>
#include<math.h>
int main()
{
    double a=0.0;
    double b=0.0;
    double c=0.0;
    //输入
    scanf("%lf %lf %lf",&a,&b,&c);
    //计算
    double circumference=(a+b+c);//周长
    double p=circumference/2;
    double area=sqrt(p*(p-a)*(p-b)*(p-c));
    //输出
    printf("circumference=%.2lf area=%.2lf",circumference,area);
    return 0;
}

2. 计算球体的体积

题目链接: 计算球体的体积题目

题目:

题解:本题应注意:

<1>定义pi的时候不能写成float类型,因为float类型只能到小数点后6-7位,而double类型可以到小数点后15-16位

<2>计算体积的时候不能写成4/3,这样就算的结果之间就是1,那么本题的真实结果就会相差很大,解决办法就是写为4.0/3或者4/3.0,或者把/3写在整个表达式的后面eg:4*pi*n*n*n/3

#include <stdio.h>
int main() 
{
    double r=0.0;
    double v=0.0;
    double pi=3.1415926;
    //输入
    scanf("%lf",&r);
    //计算
    v=4/3.0*pi*r*r*r;
    printf("%.3lf",v);
    return 0;
}

3.成绩输入输出

题目链接:成绩输入输出

题目:

题解1:

#include <stdio.h>
int main()
 {
    int s1=0;
    int s2=0;
    int s3=0;
   scanf("%d %d %d",&s1,&s2,&s3);
   printf("score1=%d,score2=%d,score3=%d\n",s1,s2,s3);
    return 0;
}

题解2:如果输入的数据很多,采用数组输入

#include <stdio.h>
int main()
 {
    int score[3]={0};
    int i=0;
   for(i=0;i<3;i++)
   {
    scanf("%d",&score[i]);
   }
   printf("score1=%d,score2=%d,score3=%d\n",score[0],score[1],score[2]);
    return 0;
}

4.变种水仙花

题目链接: 变种水仙花

题目:

题解:

拿12345举个例子,怎么取出各个数

1*2345       -     (12345/10000 )*(12345%10000)

12*346       -      (12345/1000)  *(12345%1000)

123*45       -        (12345/100)  * (12345%100)

1234*5       -         (12345/10)  *  (12345%10)

所以就是一个数i,(i除以10的次方)和(i取10的次方的模)的乘积

                                                   (i/j)*(i%j)

#include <stdio.h>
#include<math.h>
int main()
{
    int i=0;
    for (i = 10000; i <= 99999; i++) //取出五位数
    {
        //判断i是否为Lily Number
        int j=0;
        int sum=0;
        for(j=10;j<=10000;j*=10)
        {
            sum+=(i/j)*(i%j);
        }
        if (sum == i)
            printf("%d ", i);
    }
    return 0;
}

5.kiki算数

题目链接: kiki算数

题目:

题解:这题主要是考查取余

#include <stdio.h>
int main() 
{
   int a=0;
   int b=0;
   //输入
   scanf("%d %d",&a,&b);
   //计算
   int sum =(a+b)%100;//这里也可以写成a%100+b%100
   //输出
   printf("%d",sum);
    return 0;
}

6.浮点数的个位数字

题目链接: 浮点数的个位数字

题目:

题解1:本题主要学会(int)(double)强制转化类型,要转换啥类型直接在变量或常量前面写上(想转的类型)

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


题解2:直接输入时13.141,但是程序录入只取整数部分


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

7. 你能活多少秒

题目链接: 你能活多少秒

题目:


题解:本题要学会10的7次方怎么写?

<1>3.156*pow(10,7)

<2>3.156e7(e表示的是底数为10的科学计数法的表示形式)

还要注意631200000太大了,不能用int类型,得用long long类型来存储,打印的时候是%lld

#include <stdio.h>
#include<math.h>
int main() 
{
   int age=0;
   //输入
   scanf("%d",&age);
   //计算
   long long time=3.156*pow(10,7)*age;
   //或者这样写long long time=3.156e7*age;
   //输出
   printf("%lld",time);
    return 0;
}

8. 时间转换

题目链接: 时间转换

题目:

题解:本题就是净值换算的一个题  3600s等于1h,seconds%3600就是除了3600以后的余数,用这个余数再除以60就是分钟,取余就是秒

#include <stdio.h>
int main()
{
  //输入
  int seconds=0;
  int h=0;
  int m=0;
  int s=0;
  scanf("%d",&seconds);
  //计算
  h=seconds/3600;
  m=seconds%3600/60;
  s=seconds%3600%60;
  //输出
  printf("%d %d %d\n",h,m,s);
  return 0;
}

9.总成绩和平均分计算

题目链接: 总成绩和平均分计算

题目:

题解1:

#include <stdio.h>
int main()
{
  double arr[3] = {0};//三科成绩
  //输入
  scanf("%lf %lf %lf", &arr[0], &arr[1], &arr[2]);
    //计算
    double sum=arr[0] + arr[1] + arr[2];
  double avg=sum/3.0;
  //输出
  printf("%.2lf %.2lf",sum , avg);
  return 0;
}


题解2:边输入边计算


#include <stdio.h>
int main()
{
  double score=0.0;
  double sum=0.0;
  //输入并计算
  int i=0;
  for(i=0;i<3;i++)
  {
       scanf("%lf",&score);
     sum+=score;
  }
  //输出
  printf("%.2lf %.2lf",sum ,sum/3);
  return 0;
}

10.KiKi和酸奶

题目链接:KiKi和酸奶

题目:


题解1:当总时间正好被喝一瓶所用时间整除,直接减就可以,如果没有被整除,就需要再减一瓶

#include <stdio.h>
int main()
{
    int m = 0;//给的酸奶瓶数
    int n = 0;//喝一瓶所用的时间
    int h = 0;//总共时间
    while ((scanf("%d %d %d", &n, &h, &m) != EOF))
    {
        if (m % h)
            printf("%d", n - m / h - 1);
        else
            printf("%d", n - m / h);
    }
    return 0;
}


题解2:简化(int)强制类型转换


#include <stdio.h>
int main()
{
  float m, n, h = 0;
  scanf("%f %f %f", &n, &h, &m);
  printf("%d", (int)(n - m / h) );
  return 0;
}

总结:

(1)这些编程初学者训练的思路一般都是:输入,计算,输出

(2)sqrt和pow的作用和返回值都是double类型,都要引头文件#include<math.h>

 (3)float类型只能到小数点后6-7位,分数计算的时候记得带上小数点,不然会直接取整eg:4/3.0

 (4)水仙花变种:(i/j)*(i%j)   j为pow(10,n)

 (5)次方运算有两种方法:<1>pow(x,y)    <2>en(以10为底数的科学计数法)

 (6)学会灵活运用强制转换(类型)

 (7)学会灵活运用取余(取模)


结语:   彼方尚有荣光在,少年不惧岁月长

 

感觉笔者写的还可以,或者自己有些许收获的时候,麻烦铁汁们动动小手,给俺来个一键三连,万分感谢


目录
相关文章
|
4月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
93 2
|
1月前
|
存储 编译器 C语言
【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
本文档介绍了C语言环境配置和编程任务,主要内容包括: - **C语言环境配置**:详细讲解了在Windows系统上配置C语言开发环境的步骤。 - **第1关:程序改错**:包含任务描述、相关知识(如头文件引用、基本语法规则)、编程要求、测试说明及通关代码。 - **第2关:scanf函数**:涉及`scanf`和`printf`函数的格式与使用方法,提供编程要求、测试说明及通关代码。 文档结构清晰,涵盖从环境搭建到具体编程任务的完整流程,适合初学者学习和实践。
50 4
|
1月前
|
C语言
【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】
这份文档详细介绍了编程任务的多个关卡,涵盖C语言的基础知识和应用。主要内容包括: 1. **目录**:列出所有关卡,如`print函数操作`、`转义字符使用`、`数的向上取整`等。 2. **各关卡的任务描述**:明确每关的具体编程任务,例如使用`printf`函数输出特定字符串、实现向上取整功能等。 3. **相关知识**:提供完成任务所需的背景知识,如格式化输出、算术运算符、关系运算符等。 4. **编程要求**:给出具体的代码编写提示。 5. **测试说明**:包含预期输入输出,帮助验证程序正确性。 6. 文档通过逐步引导学习者掌握C语言的基本语法和常用函数,适合初学者练习编程技能。
45 1
|
2月前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
124 3
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
2月前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
77 8
|
3月前
|
C语言
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性。本文探讨了C语言中的错误类型(如语法错误、运行时错误)、基本处理方法(如返回值、全局变量、自定义异常处理)、常见策略(如检查返回值、设置标志位、记录错误信息)及错误处理函数(如perror、strerror)。强调了不忽略错误、保持处理一致性及避免过度处理的重要性,并通过文件操作和网络编程实例展示了错误处理的应用。
100 4
|
4月前
|
NoSQL C语言 索引
十二个C语言新手编程时常犯的错误及解决方式
C语言初学者常遇错误包括语法错误、未初始化变量、数组越界、指针错误、函数声明与定义不匹配、忘记包含头文件、格式化字符串错误、忘记返回值、内存泄漏、逻辑错误、字符串未正确终止及递归无退出条件。解决方法涉及仔细检查代码、初始化变量、确保索引有效、正确使用指针与格式化字符串、包含必要头文件、使用调试工具跟踪逻辑、避免内存泄漏及确保递归有基准情况。利用调试器、编写注释及查阅资料也有助于提高编程效率。避免这些错误可使代码更稳定、高效。
774 12
|
4月前
|
存储 Java 编译器
初识C语言1——C语言入门介绍
初识C语言1——C语言入门介绍
56 1
|
4月前
|
机器学习/深度学习 编译器 C语言
C语言刷题(中)(保姆式详解)
C语言刷题(中)(保姆式详解)
30 0
|
4月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)

热门文章

最新文章

相关实验场景

更多