ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

寒假刷C语言题库的心得(大一)

2021-01-22 09:58:50  阅读:163  来源: 互联网

标签:return min int max median C语言 大一 题库 公因数


寒假刷C语言题库的心得(大一)

   寒假刷C语言题库时的一些心得注意点,借助这个平台做一下整理和分享,顺序皆按照自己的做题顺序排布。因本人才大一,水平有限,整理的都是基础中的基础,不足之处欢迎各位指点。
   
   这是我的做题网站:
   [C语言网](https://www.dotcpp.com/oj/problemset.php?page=2&mark=0)

1. 中括号和分号的重要性
if()后面一定要加上中括号{}再在中括号中输入想要执行的操作。如果只有一条语句那加不加问题不大。while放在大括号前面时不用加分号,而放在最后面时需要加分号。别忘了蓝桥杯刷题时第二题加了分号的惨案。

2. 接收类型
double类型的需要用"%lf"来进行接收;float类型需要用"%f"接收。

3. 宏定义
刚开始都不知道宏定义是什么(捂脸),后来才知道在头文件那儿加#define 标识符 字符串 eg:#define pi 3.14;也可以写成#define 宏名 参数表 的形式 eg:#define half(a,b,c) s=(a+b+c)/2。
注意点:
1.不要括号,圆括号尖括号大括号什么都不要!!!当时我加了个圆括号,系统一直给我报错,我还找不到原因,去问同学的时候被笑话了。
2.不要分号!!!,分号能载舟,分号亦能覆舟。

4. 改背景
我用的是codeblocks,突发奇想想改一下背景颜色,(上方菜单栏)setting-editor-(左侧)syntax highlighting-(右侧)background。就可以自定义颜色啦,只是我改成黑色后发现好多字符反而更看不清楚了,最后还是被我给改回来了。

5. scanf和gets输入字符串的区别
scanf输入的字符串有空格时,空格后面的部分不会被读入,gets则可以。注意哦,scanf字符串时不要加&。

6. 求最大公因数和最小公倍数的两种思路
思路一(公式):公因数:互相求余(来自c语言网上的题解)
补充:参加寒假一个培训班的时候,老师提到,这个叫欧几里得算法。
例如:输入18和12 18%12=6 12%6=0,所以6是最大的公因数。

#include"stdio.h"
int max(int a,int b)
{
    return (a>b?a:b);
}

int min(int a,int b)
{
    return (a>b?b:a);
}

int gy(int a,int b)
{
    int i,median=min(a,b);
    for(i=median;i>=2;i--)
    {
        if(a%i==0&&b%i==0) break;
    }
    return i;
}

int gb(int a,int b)
{
    int i,median=max(a,b);
    for(i=median;;i++)
    {
        if(i%a==0&&i%b==0) break;
    }
    return i;
}

int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    printf("%d %d",gy(a,b),gb(a,b));
    return 0;
}

公倍数:应用公式,最大公因数最小公倍数=两数值的积,例如636=18*12。

思路二(常规思路):输入两个数a,b。
公因数:i=min(a,b),等到a和b可以把i给整除时,输出i
公倍数:i=max (a,b),等到i可以把a和b都整除时,输出i

#include"stdio.h"
int max(int a,int b)
{
    return (a>b?a:b);
}

int min(int a,int b)
{
    return (a>b?b:a);
}

int gy(int a,int b)
{
    int i,median=min(a,b);
    for(i=median;i>=2;i--)
    {
        if(a%i==0&&b%i==0) break;
    }
    return i;
}

int gb(int a,int b)
{
    int i,median=max(a,b);
    for(i=median;;i++)
    {
        if(i%a==0&&i%b==0) break;
    }
    return i;
}

int main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    printf("%d %d",gy(a,b),gb(a,b));
    return 0;
}

7. 在头文件处增添函数声明
我很少用函数声明的方式来调用函数,大多数都是在main函数前面就直接"int 函数名()"。现在学习一下格式
例:int area(int a,int b)

8.收藏的题目:1094,1427

9.编译时候的错误
“expected declation or statement at the end of the input”
我查了一下,有两种可能
1.一个函数在使用前没有定义
2.在一个地方没有加括号,并且虽然提示在最后面,但是可能出现在代码的任意位置。

10.调用函数传递数组
一维:int func(int a[]) (调用函数)
x=func(a);

二维:int func(int a[][n])
x=func(a);
我发现调用多维时后面一个肯定要有,还有emmmmmm善用void吧

11 .类似圆环形数组的边界引用
sum+=a[t]*a[(t+n-1)%n]*a[(t+1)%n]; 这是我直接复制黏贴的,t是中间量,t+1就是后面一个,如果t是最后一个,那就延伸成为第一个。

12.一个小tip
我在为蓝桥杯做准备,和我一样的同学一定要看清题目要求!!!让我们输出什么就输出什么,多余的千万不要输出!!!我做了一道题目,它一直判定我错误,但是怎么都找不到。找了一下午,让老师帮我看,老师告诉我!!!我输出符号‘U’没有大写。。。我裂开了,我用了一下午。

标签:return,min,int,max,median,C语言,大一,题库,公因数
来源: https://blog.csdn.net/m0_53347750/article/details/112606545

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有