标题:自学C,初学者。求老司机帮忙看下怎么编写这题。
只看楼主
wangjiayou
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2017-6-25
结帖率:75%
已结贴  问题点数:20 回复次数:12 
自学C,初学者。求老司机帮忙看下怎么编写这题。
直接上图  
搜索更多相关主题的帖子: 司机 司机 
2017-06-25 19:22
duhao612
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:31
注 册:2017-5-6
得分:5 
程序代码:
#include <stdio.h>

void Sm()
{
    printf("Smile!");
}

int main()
{
    Sm();Sm();Sm();
    printf("\n");
    Sm();Sm();
    printf("\n");
    Sm();
    printf("\n");
    return 0;
}

2017-06-25 19:42
duhao612
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:31
注 册:2017-5-6
得分:0 
满足调用一次打印一次"Smile!"就行了,可以多次调用。后面学了for循环后还能改成其他形式
程序代码:
#include<stdio.h>
#define N 3

void Sm()
{
    printf("Smile!");
}
int main()
{
    int i,j;
    for(i=0;i<N;i++)
    {
        for(j=0;j<N-i;j++)
        {
         Sm();
        }
    printf("\n");
    }

    return 0;
}
2017-06-25 19:45
wangjiayou
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2017-6-25
得分:0 
回复 3楼 duhao612
     我修改之后,和习题给出的答案一样
            
#include <stdio.h>

void Sm()
{
    printf("Smile!");
}

int main()
{
    Sm();Sm();
    printf("Smile!\n");
    Sm();
    printf("Smile!\n");
    Sm();
    getchar();
    return 0;
}


你之前给出的代码运行之后的结果

#include <stdio.h>

void Sm()
{
    printf("Smile!");
}

int main()
{
    Sm();Sm();Sm();
    printf("Smile!\n");
    Sm();Sm();
    printf("Smile!\n");
    Sm();
    printf("Smile!\n");
    getchar();
    return 0;


函数已经定义,再调用函数,就是直接会打印出函数传递的信息,而不用再重复把函数体编写了?
2017-06-25 20:20
duhao612
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:31
注 册:2017-5-6
得分:0 
不用。
调用某个函数时程序会自动跳转到被调用函数的函数体的第一行
然后逐句执行,直到该函数的最后一条语句,跳出被调用函数
返回main函数执行下一句

Sm();Sm();Sm();代表连续进入了Sm函数内部三次,所以输出3个"Smile!"
printf("Smile!\n");输出为Smile!+换行,所以你的代码多打印了一个"Smile!"。你再对比下两个代码的printf函数有什么不一样!


[此贴子已经被作者于2017-6-25 21:13编辑过]

2017-06-25 21:00
wangjiayou
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2017-6-25
得分:0 
回复 5楼 duhao612
习题要求是第一行3个Smile!  第2行是2个Smile!第3行是1个Smile!  你给的代码在VS2012上输出之后都比习题要求的每行多了1个Smile!   而我改了之后的代码输出之后正好符合习题要求的。   所以在这点上,我很是困惑。      求解答
2017-06-25 21:37
冬冬大侠
Rank: 1
等 级:新手上路
帖 子:2
专家分:5
注 册:2017-6-25
得分:5 
请问楼主自学都需要什么啊?我也想学。

我就是我,不一样的花火
2017-06-25 21:42
wangjiayou
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2017-6-25
得分:0 
回复 5楼 duhao612
#include <stdio.h>
void Sm()
{
    printf("Smile!");
}

int main()
{
    Sm();Sm();Sm();
    printf("\n");
    Sm();Sm();
    printf("\n");
    Sm();
    printf("\n");
    getchar();
    return 0;
}


我这次改之后的代码,完全符合题目要求的输出结果。你帮我看看,是不是这个更符合题目要求?
2017-06-25 21:44
duhao612
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:31
注 册:2017-5-6
得分:0 
回复 8楼 wangjiayou
现在的是对的,除了多了个getchar(),和2楼代码有区别吗?getchar()在这里也没必要有...
你一开始的代码就复制错了!
我的是printf("\n"),而你的是printf("Smile!\n"),所以你的每一行多输出了个"Smile!"

[此贴子已经被作者于2017-6-25 22:15编辑过]

2017-06-25 22:10
wangjiayou
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2017-6-25
得分:0 
回复 7楼 冬冬大侠
我现在在学  Stephen Prata写的,姜佑翻译的C primer plus 中文版 第6版。  因为我弟子薄,所以自学有点困难,经常有不懂的,所以最近几天开始在论坛上求助老司机。  想尽量把不懂的都弄懂,铺好底子,为以后往这方面发展做好准备。
2017-06-25 22:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-478922-1-1.html




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

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