老师,怎么让a的结果也是15呢?是不是该用指针函数呢?

老师,怎么让a的结果也是15呢?是不是该用指针函数呢?


#include<iostream>

using namespace std;

//定义功能实现函数

int su(int a,int b)

{

    int i=0;

    int sum=0;

    for(i=a;i<=b;i++)

    {

        sum+=i;

    }

    return sum;

}


int main()

{

    int a=1;

int b=5;

int sum=0;

int *p=&a;

//按照效果图要求执行函数及相关输出

    sum=su(a,b);

    p=&sum;

    cout<<*p<<endl;

return 0;

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
guly 2018-10-24 19:03:44

你好,开始*i的值为0,经过循环++后*i=6,则*k+=*i表示*k=*k+*i=6,所以

http://img1.sycdn.imooc.com//climg/5bd051750001930110120628.jpg

运行结果为0,6,如果解决您的问题请采纳,祝学习愉快!

guly 2018-07-30 16:20:26

你好,建议参考代码如下:

#include <iostream>
#include <cmath>
using namespace std;
int fun1(int a,int b,int *i,int **k){
	if(a>=b){
		for(int j=b;j<=a;j++){
			*i+=j;
		}
	}else{
		for(int j=a;j<=b;j++){
			*i+=j;
		}
	}

	*k=i;
	return 0;
}


int main()
{
	int a=1;
	int b=5;
	int sum=0;
	int *p=&a;

	cout<<"函数执行前sum的值为:"<<sum<<endl;
	cout<<"函数执行前*p的值为:"<<*p<<endl;
	
	fun1(a,b,&sum,&p);

	cout<<endl;
	cout<<"函数执行后sum的值为:"<<sum<<endl;
	cout<<"函数执行后*p的值为:"<<*p<<endl;
	
	
	
	return 0;
}

如果解决您的问题请采纳,祝学习愉快!

  • #include<iostream> using namespace std; fun(int a,int b,int *i,int **k) { **k=0; for(*i=a;*i<=b;*i++) { **k+=*i; } *k=i; } int main() { int a=1; int b=5; int sum=0; int *p=&a; fun(a,b,&sum,&p); cout<<sum<<endl; cout<<*p<<endl; return 0; } 我这个代码也通过了 为什么输出的是 sum=1 *p=6呢?
    2018-10-24 18:06:21
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
C++零基础入门 热门编程语言 二级考试必备
  • 参与学习       529    人
  • 提交作业       110    份
  • 解答问题       594    个

无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师