首页 > 编程语言 >复习课5 遍写一个简单的求和程序

复习课5 遍写一个简单的求和程序

时间:2023-09-16 20:31:59浏览次数:36  
标签:复习 num2 求和 sum int 遍写 scanf 变量 num1

一.导入

上节课我们介绍了变量、常量、局部变量、全局变量的特性,接下来就让我们来编写一个简单的求和程序

二.程序要求,程序需要有三个整型变量:num1 num2 sum ,最后的求出的和保存在变量sum中,最后输出sum的值给用户(注:num1与num2数值自定)

三.分析程序

我们看题目就可以知道我们需要先创建三个int(整型)的变量,我们可以使用以下代码来创建变量:

int num1 = 10;
int num2 = 10;
int sum;

接下来我们需要将两个变量相加的值赋给变量sum,代码如下:

sum = num1 + num2;

最后程序要求我们输出变量sum的值,我们到目前为止输出函数只讲到一个:printf(),代码如下:

printf("sum=%d\n",sum);

四.示例代码:

#include<stdio.h>
int main(void){
int num1 = 10;
int num2 = 10;
int sum = num1 + num2;
printf("sum=%d\n",sum);
return 0;
}

我们可以用自己的IDE进行编译调试

注意⚠️:如果是使用VS的朋友可能按下F5后程序会一闪而过,解决这个问题的方法是在return 0;语句的前面添加 getchar(); 语句即可,这个语句可以暂时理解为暂停程序执行的语句

程序运行结果如下:

复习课5 遍写一个简单的求和程序_变量

五.程序进阶

上述程序中num1与num2的值都是固定的,如果需要修改某一个变量的值就需要在代码中修改后重新编译运行,不仅很麻烦而且也没有实现人机交互,那么我们是否可以让用户来输入呢?答案是肯定的

这里我们引入一个新的函数:scanf()

这个函数我们可以将其理解为接受用户输入的函数,那么我们该怎么使用它呢?以下是示例代码:

int var = 0;   //初始化变量var
scanf("%d",&var);  //将用户输入的值赋给变量var

这里的 & 号不能省略,我们将其称为取地址符,其作用是取得变量所在的内存地址,所以我们可以将代码修改成如下形式:

#include<stdio.h>
int main(void){
int num1 = 0;
int num2 = 0;
printf("Please enter the first number:");
scanf("%d",&num1);
printf("\nPlease enter the second number:");
scanf("%d",&num2);
int sum = num1+num2;
printf("\nsum=%d\n",sum);
getchar();
return 0;
}

程序在运行后变量num1与num2的值全被初始化成了0,随后程序利用scanf()函数分别获取用户的输入,并将用户输入的值赋值给这两个变量,将这两个变量相加的值赋值给sum,最后输出sum的值,程序运行效果如下:

复习课5 遍写一个简单的求和程序_编译器_02

注意⚠️:如果是使用VS的朋友,可能出现会报错,错误信息如下:

'scanf': This function or variable may be unsafe.Consider using scanf_s instead.

错误的大意为:scanf()这个函数或者变量可能不安全,建议使用scanf_s()函数

我们只需要在代码的第一行加上如下代码即可屏蔽该警告:

#define _CRT_SECURE_NO_WARNINGS 1

还有一种解决方案是将项目内的所有scanf()函数全部替换成scanf_s()函数,这里的scanf_s()函数是微软提供给开发者的scanf()函数的改版,其作用就是可以避免scanf()函数所带来的安全问题,但是不推荐这样做,因为scanf_s()仅限于VS编译器中使用,当我们使用非VS编译器来编译带有scanf_s()函数代码的时候可能会报错,如我macOS系统上用的AppleClang编译器就会无法完成编译,如图所示:

复习课5 遍写一个简单的求和程序_scanf_03

                                                                                                                             2023/9/16

                                                                                                                                王起舟

标签:复习,num2,求和,sum,int,遍写,scanf,变量,num1
From: https://blog.51cto.com/u_16183773/7496152

相关文章

  • 递归求和
    //递归求1-100的和#include<stdio.h>intsum(intn){ if(1==n) { return1; }else{ returnn+sum(n-1); }}intmain(){ intn; printf("你需要求前多少个数的和呢\n"); scanf("%d",&n); intcount;......
  • 随缘复习初赛
    常识&参考资料初赛史上最全NOIP初赛知识点【全】CSP初赛通过指南CSP-J/S初赛知识点整理CSP-J/S初赛复习(1)-计算机基本常识、进制与编码!CSP初赛知识点考前整理CSP初赛知识点梳理二进制\(n\)进制转\(10\)进制,第\(i\)位的值乘上其位权\(2^{n-1}\)\(10\)进制转......
  • Python并发编程——IO模型、阻塞IO、非阻塞IO、多路复用、异步IO、IO模型比较、select
    文章目录每日测验一IO模型介绍二阻塞IO(blockingIO)三非阻塞IO(non-blockingIO)四多路复用IO(IOmultiplexing)五异步IO(AsynchronousI/O)六IO模型比较分析七selectors模块网络并发知识点梳理网络并发知识点梳理每日测验简述死锁现象你用过哪些队列阐述进......
  • 各种模板复习及记忆口诀(持续更新)
    模板大复习目录模板大复习字符串:manacher找回文重点:kmp找broader图论相关:温馨提示:注意看好边是有向还是无向!floyd全源最短路djkstra最短路:SPFA最短路点双:边双:差分约束:二分图最大匹配/最小覆盖。最大流(dinic)树型结构:线段树:树状数组:平衡树(非旋treap)笛卡尔树(感觉考的少)主席树(感觉考......
  • 复习课3 C语言中常用的数据类型
    一.导入我们在生活中会遇到很多的数据,这些数有的是整数,比如说:12345,有的是浮点数(小数)比如说:0.51.13.14等等,那么我们在生活中需要用到各种数据,那么在程序中是否也是有不同的数据类型呢?答案是肯定的二.C语言中常用的数据类型int //整型数据类型double//双精度浮点类型float......
  • 复习c++
    一些偏门的点endl可以用\n代替cout<<"Helloworld"<<"\n"intmain()括号里加void才能表示不可传参//这样是正确的intmain(){if(0)main(42);}//这样会出错intmain(void){if(0)main(42);}默认编译产生的文件名就是cpp的名且不带后面的参数。如果......
  • 复习课程2 第一个C语言程序
    接下来我们就开始写第一个C语言程序,这里我们使用的环境为VS2012作为演示环境,首先我们打开安装完成的VS2012选择新建项目,我们选择空项目即可,接着我们需要给项目进行命名,命名方式可以使用日期进行命名也可以使用英文加数字进行命名然后我们需要选择存放代码的文件夹,建议大家新建一个......
  • 复习课程1 初始C语言
    学习目标:了解C语言的基础知识与语法,对C语言有一定的认知在初识过程中只是做一个大概的讲解,不做深入的讲解知道了以上的目标后那就让我们开始吧!一.导入我们知道人与人交流是靠语言,我们常见的语言有英文,中文,日文等等,那么人与计算机交流还是靠我们日常生活中所说的人类语言吗?其实不是......
  • java复习记录点
    类型转换int类型转二进制:Integer.toBinaryString(int);进制解析(其他进制转十进制):Integer.parseInt(String,int);//将string看成是以int进制的string,并以10进制输出结果进制解析(十进制转其他进制):Integer.toHexString(int);返回绝对值:Math.abs();*正则:[a-zA-Z]英文......
  • 线段树【区间求和】
    #include<bits/stdc++.h>#definemaxn500005usingnamespacestd;intn,m;inta[maxn];structnode{ intl,r,sum;};nodetr[4*maxn];voidbuild(intl,intr,intp){ //对[l,r]区间建立线段树,当前根的编号为p intmid=(l+r)>>1; //intmid=s+((t-s)&g......