| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 834 人关注过本帖
标题:能帮我,看看一个很简单的输出问题
取消只看楼主 加入收藏
编程小猪
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2022-10-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
能帮我,看看一个很简单的输出问题
程序代码:
#include<stdio.h>
#include<math.h>
void fun(int *a,int i,int j){
    int t;
    if(i<j){
        t=a[i];a[i]=a[j];a[j]=t;
        i++;j--;
        for(i=0;i<4;i++)
            printf("%2d",a[i]);
        fun(a,i,j);
    }
}
int main(){
    int x[]={2,6,1,8},i;
    fun(x,0,3);
    for(i=0;i<4;i++)
        printf("%2d",x[i]);
    printf("\n");
}

输出:【
 8 6 1 2 8 6 1 2

--------------------------------
Process exited after 0.04188 seconds with return value 0
请按任意键继续. . .

为什么这里只输出两次不应该是三次嘛,一次是i=0,j=3,i<j  成立;二次是i=1;j=2;i<j成立,并且“  8  6  1  2”应该变成了“  8  1  6  2”了呀
而且我把fun函数的for循环注释掉,就能输出“  8  1  6  2”,如果不注释掉就是上面输出的那种情况,
我把main函数的输出注释掉,只有一次输出,所以总结出来上面的输出应该是fun函数一次输出,main函数一次输出,所以fun函数还有一次输出为什么不执行,只有i<j的时候不执行啊
有人帮我看看这个题目嘛?(如果又是向上次那样是小细节问题没注意到,那真的不好意思)

[此贴子已经被作者于2023-4-4 12:56编辑过]

搜索更多相关主题的帖子: 函数 fun 输出 int main 
2023-04-04 12:55
编程小猪
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2022-10-17
收藏
得分:0 
回复 2楼 forever74
俺没有乱用哦,这是一个题目

专升本备考中!!!
2023-04-04 15:22
编程小猪
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2022-10-17
收藏
得分:0 
回复 2楼 forever74
我懂了,谢谢!(其实我有考虑过这个问题的,但是当时认为for循环的i和外面的i不是同一个i)

专升本备考中!!!
2023-04-04 15:22
编程小猪
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2022-10-17
收藏
得分:0 
回复 5楼 rjsp
我可能有点疑惑了,我们学习的C语言和您所说的C语言是一个C语言吗?不知道您有没有听说过谭浩强的C语言呢,我学的就是他的书,包括您第一次回答我帖子的“%zu”和这次所提到的“size_t”在书中都没有提及。准确来说,如果不是因为您,我都不知道。而且不得不说一句您会过时的C语言,还有根据时代不断变化的C语言,不回混为一谈,真的很厉害!

专升本备考中!!!
2023-04-04 18:12
编程小猪
Rank: 1
等 级:新手上路
帖 子:33
专家分:4
注 册:2022-10-17
收藏
得分:0 
回复 7楼 forever74
ok,谢谢您的回答

专升本备考中!!!
2023-04-05 13:17
快速回复:能帮我,看看一个很简单的输出问题
数据加载中...
 
   



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

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