| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1517 人关注过本帖
标题:C語言新手 一問
只看楼主 加入收藏
ngokyau
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-9-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:20 
C語言新手 一問
# include <stdio.h>
# include <stdlib.h>


int sum(int a1, int b2)
{
        int i, temp, total=0;
        
        if(a1<b2){
                temp=b2;
                b2=a1;
                a1=temp;
               
        }
        
        for(i=a1;i<=b2;i++)
                total += i;
               
        return total;
}


int main(void)
{
        printf("the sum from 1 to 100 is %d\n",sum(1,100));
        
        system("PAUSE");
        
        return 0;
}

-----------------------------------------

        temp=b2;
                b2=a1;
                a1=temp;
我不明這個在記憶體的運行?
請問要怎樣解讀?
搜索更多相关主题的帖子: include system return 
2013-09-10 22:58
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:2 
哪里不懂,说清楚一点

思考赐予新生,时间在于定义
2013-09-10 23:14
天空编程
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:123
注 册:2013-7-5
收藏
得分:2 
temp=b2;//这里是把b2的值赋给temp临时值
b2=a1;//这里是把a1的值赋给b2;
a1=temp;//这里是把temp临时值给b2;
简单的一句话就是把a1的值和b2的值互换。
2013-09-11 00:32
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:2 
交换变量数据的经典写法
temp=a;
a=b;
b=temp;

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-09-11 06:21
jg658237
Rank: 7Rank: 7Rank: 7
来 自:青藏高原
等 级:黑侠
帖 子:224
专家分:529
注 册:2013-8-8
收藏
得分:2 
if(a1<b2){
                temp=b2;
                b2=a1;
                a1=temp;
               
        }

在这里这个交换a1和b2的表达式可有可无,没什么实际作用,
你把if 整个语句删了都可以的.        

武功再高也怕菜刀.
2013-09-11 09:27
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
收藏
得分:2 
目测你那sum函数实现的功能应该是:
输入两个数
保证前面一个数小于后面一个数(如果大于,交换两个数的值,也就是你问的那三句)
然后计算出从第一个数到第二个数直接所有整数的和
返回

然后你可以明示何处不理解么

有一种落差是,你配不上自己的野心,也辜负了所受的苦难。






2013-09-11 11:39
afone
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2013-8-23
收藏
得分:2 
同意5楼,因为你在主函数中输入1和100,分别代入a1和b2,肯定a1<b2,if语句不起作用
2013-09-11 14:58
youngdavid
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:698
注 册:2012-9-24
收藏
得分:2 
每个int变量对应地址和地址里存储的数值
        temp=b2;//这句话就是把b2的值赋值给temp所在的内存空间,也就是temp的地址里存的值变成了b2
         b2=a1;//同上 b2的地址里的空间里的值变成了a1
         a1=temp;//a1地址空间里的值变成了temp的值,也就是原来的b2

这样就实现了a1和b2变量的地址里存储的值的交换。
2013-09-11 18:35
爱她永远
Rank: 2
等 级:论坛游民
帖 子:14
专家分:19
注 册:2013-6-9
收藏
得分:2 
# include <stdio.h>
int sum(int a1, int b2)
{
        int i,  total=0;     
        for(i=a1;i<=b2;i++)
        {
            total += i;
        }
        return total;
}
int main()
{
    sum(1,100);   
    printf("the sum from 1 to 100 is %d\n",sum(1,100));
}

这样写吧,简单明了。。。。!!
2013-09-11 19:14
ngokyau
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-9-14
收藏
得分:0 
以下是引用jg658237在2013-9-11 09:27:22的发言:

 if(a1<b2){
                temp=b2;
                b2=a1;
                a1=temp;
               
        }

在这里这个交换a1和b2的表达式可有可无,没什么实际作用,
你把if 整个语句删了都可以的.        


謝謝各位師兄師姐回答...
不過小弟是問問題不是太好,現在補充一下
好像這個

# include <stdio.h>

int main(void)
{
   
    int i;
    int sum = 0;
   
        for(i=1; i<=5;i++)
            sum = sum + i;
   
    printf("sum = %d",sum);
    return 0;
}
-----------------------------------------------------

當i=1時,1<5,sum=0+1=1; 1+1=2

當i=2時,2<5,sum=1+1=2; 2+1=3

當i=3時,3<5,sum=2+1=3; 3+1=4

當i=4時,4<5,sum=3+1=1; 4+1=5


是不是這樣理解?

[ 本帖最后由 ngokyau 于 2013-9-12 01:04 编辑 ]

努力學習C
2013-09-12 00:58
快速回复:C語言新手 一問
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029722 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved