首页 > 其他分享 >C语言易错、常用知识集锦(持续更新ing 欢迎来看&评论呀)

C语言易错、常用知识集锦(持续更新ing 欢迎来看&评论呀)

时间:2024-12-03 19:30:13浏览次数:9  
标签:易错 累加 int sum C语言 集锦 printf main

 引言

 本文主要是用于初学者写题时经常遇到的模型题块,看完此篇文章可快速、全面掌握常用常见题型。

  里面的易错点,是从周围同学和自己亲身犯过的错误以及遗忘点,还是很适合初学者们(其实我和我同学也算是初学者的 但是此篇文章由欧阳佳老师亲自审核通过的!!大家放心学习呀!!)

一、目录

(一)入门

  1. Hello World 你好世界

(二)顺序

  1. 数据类型

  2. 最大值、最小值、平均值

(三)选择

  1. 判断闰年

  2. 最小公倍数和最大公约数

(四)循环

  1. sum累加

  2. 反转倒序

  3. 长度计算

(五)一维数组

  1. 排序

  2. 删除数组中的元素

  3. 交换数组中的元素位置

  4. 数组赋值

(六)二维数组

  1. 蛇形矩阵

  2. 对角线

  3. 杨辉三角

(七)函数

  1. 递归函数

(八)字符串

  1. 字符串处理

  2. ASCII表中转化

......(因为目前学校就学到函数这块 所以后面没写了qaq)之后前面的也会陆陆续续地收集起来常用的题模板加进来 所以不用担心呀~路漫漫 一起进步!!  

这些都会同步到941code(前两篇推文提到了)上 大家有时间可以去看看

二、正文

(一)入门篇

1>Hello World你好世界

Hello 各位新手: "hello world",是C语言程序的第一个演示程序,下面就让我们从写出"hello world"开始一起探索C语言的世界吧!

题目描述

这个程序不需要从输入中读入任何数据,只需要输出一个字符串:Hello World

输入格式

输出格式

Hello World

题解
#include<stdio.h>
int main()
{
    printf("Hello World\n");
    return 0;
}

下面详细讲解一下我们写下的第一个代码:

  1. #include 是一个预处理命令,用来引入头文件

  2. stdio.h 是一个头文件(标准输入输出头文件),当编译器遇到printf()函数时,如果没有找到stdio.h头文件,就会发生编译错误(Compilation Error)

  3. int main()主函数,程序从这里开始,相当于程序入口

特别注意:所有C语言程序都需要包含main()函数,且只能由一个主函数,也就是相当于只有这一个程序入口

  1. printf() 其中的print打印的意思,f是format(格式化)的缩写,因此printf可以理解为”格式化输出“(就是在屏幕打印东西)

  2. \n 是一个转义符号,能够实现换行的效果

\n的举例: 当我们写下printf("hello\nworld")转义符号\n放在中间,则会输出: hello world 这两行结果

  1. return 0 目的是终止main()函数,并返回值0;在C语言中0即为”空/无“的意思,因此return 0则译为“程序结束,且不需要返回任何东西”

举一反三

讲解到这,相信各位新手宝宝对C语言有一定了解啦,下面就来新手村做几道题练练习,刷刷经验值吧!

​​​​​​​

恭喜恭喜!走过新手第一站获得经验值╰(°▽°)╯

But ! ! ! ! ! 别着急 ,各位少年少女们当提交完代码后,错误但找不到错误的原因可以看看下面的易错点哦( ̄︶ ̄)↓ ↓ ↓


易错点
  1. 要注意英文的大小写

  2. 代码用的都是英文符号,切忌使用中文符号(例:这是英文分号;,而这是中文分号

  3. 该有空格时,要有空格

  4. 切忌拼写错误英文单词,如main不要写成 "mian" ,return不要写成 "retrun"

......(未完待续)

(四)循环篇

1>sum累加模板(累减/乘/除同理)

嗨嗨,c语言的勇士们:

累加/减/乘/除在入门中占据十分重要的地位,为后续更为复杂的计算铺垫基础。今天就让我们以累加为例子模板一起来攻破这“巨型堡垒”吧!!

题目描述

求 1 到 n 中所有数的累加和。1<=n<=1000

输入格式

一个正整数 n

输出格式

一个正整数,表示 1到 n 的累加和。

题解

当用到for循环

#include<stdio.h>

int main()
{
    int n,i,sum=0; //如果是累乘:sum=1;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        sum=sum+i;  //sum=sum*i;
    }
    printf("%d",sum);
    return 0;
}

当用到while循环

#include<stdio.h>

int main(){
    int n,i,sum=0;
    scanf("%d",&n);
    while(i<=n){
        sum=sum+i;
        i++;
    }
    printf("%d",sum);
    return 0;
}

下面就稍微讲解下:

1.最开头一定一定要定义可能会用到的变量,否则在后续编译运行时会报错

2.初始化 !! 初始化!!记得对sum进行初始化 !!

3.用循环结构来实现多次累加

计算数字位数问题 是初学时常常遇到的问题,现在我们就根据如下来学习吧~

#include<stdio.h>

int main(){
    int n,temp,count=0;
    scanf("%d",&n);
    temp=n;  //先将原本数据储存起来,以防原始数据丢失
    while(temp!=0){
        temp/=10;   //temp=temp/10; 
        count++;
    }
    printf("%d",count);
    return 0;
}

(数字位数问题属于累除运用噢~)

易错点

  1. 对sum进行初始化或者初始化值赋值错了

  2. 在进行输入操作时,对变量取地址”&

  3. 在输入输出时,忘记打”%

  4. 面对不同的数据类型,没有及时更改输入输出时的内容,而是直接用”%d“

  5. 将for循环和while循环的条件混淆

  6. 区分前自增(减)和后自增(减)的运用方法

  7. while循环时忘记对自变量进行自增,可根据题目要求进行自增(如奇数就是i+=2)

举一反三

讲解到这,相信各位新手宝宝对C语言有一定了解啦,下面就来新手村做几道题练练习,刷刷经验值吧!!

贡献者:苯人&同窗-赖同学

标签:易错,累加,int,sum,C语言,集锦,printf,main
From: https://blog.csdn.net/2401_88035000/article/details/144175928

相关文章

  • 如何在C语言中制作一个计算器
    喜大普奔啊,100粉丝了,上次说的计算器来喽^V^主播一点没鸽(哇,这也太高产了吧),感谢大家的陪伴立一个flag,1000粉丝的时候制作一个图画送给大家^V^正文:简易计算机要求1、打印欢迎界面。2、提醒用户输入参与运算的两个数字,以及运算符号,根据运算符号输出结果。3、询问用户是否继......
  • C语言实验 循环结构2
    时间:2024.12.3一、实验7-1求符合给定条件的整数集#include<stdio.h>intmain(){inta,b,s,g;scanf("%d",&a);inth=0;for(inti=a;i<=a+3;i++){for(intj=a;j<=a+3;j++){for(intk=a;k<=a+3;k++){if((i!=j)&&(i!......
  • C语言实验 一维数组
    时间:2024.12.3一、实验7-1交换最小值和最大值#include<stdio.h>intmain(){intn,a[10],i,min=0,max=0;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);}for(i=0;i<n;i......
  • 一不小心就容易出错的c语言运算符优先级
      有些人说c语言是简洁高效的,又有些人说c语言是深邃复杂的,说实话,这确实是仁者见仁智者见智。但是有一点不可否认,c语言中的运算符众多,不注意的话,确实很容易弄错。一、*与.的优先级比较  对于一个结构体p包含一个指针*f,那么*p.f的运算优先规则是怎样?  *p.f=*(p......
  • C语言操作符深度解析
            目录一、操作符的分类1、算术操作符1、1、+和- 1、2、*1、3、/1、4、%2、赋值操作符:=和复合赋值2、1、连续赋值2、2、复合赋值符3、单⽬操作符:++、--、+、-3、1、++和--3、1、1、前置++3、1、2、后置++3、2、1、前置--3、2、2、后置--3、2......
  • python函数参数传递是否比C语言更高效?——ChatGPT的回答
    Python的函数参数传递并不一定比C语言更高效,两者在效率上的差异主要取决于底层实现和具体的使用场景。以下是详细的比较:C语言参数传递效率按值传递(PassbyValue)是C中的默认方式:函数调用时,实参的值被复制到形参。这意味着函数内部的修改不会影响外部变量。C使用编译......
  • 系统文件IO 例题 Linux环境 C语言实现
    问题:通过系统文件IO,实现文件拷贝功能。测试:文本  图片 视频代码:#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<stdio.h>#include<unistd.h>intmain(intargc,char*argv[]){if(argc<3){printf("a......
  • Leecode刷题C语言之判断是否可以赢得数字游戏
    执行结果:通过执行用时和内存消耗如下:  boolcanAliceWin(int*nums,intnumsSize){intsingle_digit_sum=0;intdouble_digit_sum=0;for(inti=0;i<numsSize;i++){if(nums[i]<10){single_digit_sum+=nums[i];......
  • Leecode刷题C语言之N皇后
    执行结果:通过执行用时和内存消耗如下:  代码如下: intsolutionsSize;char**generateBoard(int*queens,intn){char**board=(char**)malloc(sizeof(char*)*n);for(inti=0;i<n;i++){board[i]=(char*)malloc(sizeof(char)*(n......
  • linuxC语言day3
    描述:*组成的菱形图案,用户输入一个奇数n,表示菱形的最大宽度(即中间一行的星号数)。程序应该使用while循环生成这个菱形图案。1.利用while循环实现操作#include<stdio.h>#include<string.h>#include<stdlib.h>intmain(intargc,constchar*argv[]){ intn,i=1,......