目录
  1. 1. 加法运算
    1. 1.1. 问题描述
    2. 1.2. 问题分析
    3. 1.3. 代码实现
    4. 1.4. 运行结果
    5. 1.5. 总结
加法运算

加法运算

问题描述

问题描述
  你的表妹正在学习整数的加法,请编写一个程序来帮助她学习。该程序调用了一个函数GetTwoInts,由它来返回两个从键盘读入的100以内的整数,然后计算这两个整数之和,并把答案显示出来。要求:在主函数中不能使用scanf等函数直接输入这两个整数,而必须通过调用GetTwoInts函数来完成,在GetTwoInts函数中可以使用scanf函数。
  输入格式:输入只有一行,即两个100以内的整数。
  输出格式:输出只有一行,即这两个整数之和。
输入输出样例

样例输入

4 7

样例输出

11

问题分析

由于该函数必须同时返回两个整数,因此不能采用函数返回值的方式,而必须采用指针的方法来实现。通过指针指引形式,为变量赋值。

代码实现

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

void GetTwoInts(int *x,int *y){
scanf("%d %d",x,y);
//此处与以往不同,是为其对应的地址赋值
//普通为变量赋值采用scanf("%d %d",&x,&y);形式
//而此处传入的即为地址
}

int x,y;
int main(){
int x,y;
GetTwoInts(&x,&y);
cout<<x+y;
return 0;
}

运行结果

4 1
5
--------------------------------
Process exited after 5.957 seconds with return value 0
请按任意键继续. . .

总结

通过自定义函数为变量赋值,可以考虑到函数赋值后,采用函数返回值形式返回变量值,而此处含有多个变量,不可以同时返回多个变量,那么采用指针形式,找到其变量地址,对其修改值

一般变量赋值为:

int x,y;
scanf("%d %d",&x,&y);

使用指针赋值:

int x,y;
int *xx=&x,*yy=&y;//将x,y的地址同时赋值给*xx,*yy两个指针
scanf("%d %d",xx,yy);//再对两个指针所对应的地址赋值,即可实现对x,y同时赋值
文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2020-01/20/%E7%AE%97%E6%B3%95/%E8%93%9D%E6%A1%A5%E6%9D%AF%E5%88%9D%E7%BA%A7%E8%AE%AD%E7%BB%83/%E5%8A%A0%E6%B3%95%E8%BF%90%E7%AE%97/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论