一.导入
上节课我们介绍了变量、常量、局部变量、全局变量的特性,接下来就让我们来编写一个简单的求和程序
二.程序要求,程序需要有三个整型变量: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(); 语句即可,这个语句可以暂时理解为暂停程序执行的语句
程序运行结果如下:
五.程序进阶
上述程序中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的值,程序运行效果如下:
注意⚠️:如果是使用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编译器就会无法完成编译,如图所示:
2023/9/16
王起舟