大星星 发表于 2017-8-28 10:43:52

一个看似很简单的问题

#include <stdio.h>


void sm(void);
int main(void)
{
      sm();sm();sm();
      sm();sm();
      sm();
      return 0;
}
void sm(void)
{
      printf("Smile!\n");
}
分界线————————————————————————————————————
上面那串代码,打出来是 Smile!一个竖排             那怎样才能让输出结果是Smile!Smile!Smile!有顺序的排列
                                       Smile!                                                                  Smile!Smile!
                                       Smile!                                                                  Smile!
                                       Smile!
                                       Smile!
                                       Smile!
先行谢过

ba21 发表于 2017-8-28 12:29:40

#include <stdio.h>


void sm(int n);
int main(void)
{
      sm(0);sm(0);sm(1);
      sm(0);sm(1);
      sm(1);
      return 0;
}
void sm(int n)
{
        if (n == 1)
        {
      printf("Smile!\n");
        }
        else
        {
                printf("Smile!");
        }
}

丶忘却的年少o 发表于 2017-8-28 14:44:07

这么说吧,你在mian函数里虽然是那样格式写好的,但是编译器不会那样把代码显示的,你可以在每一行打印好后加一句 printf("\n");
#include <stdio.h>

void sm(void);

int main(void)
{
      sm();sm();sm();
      printf("\n");
      sm();sm();
      printf("\n");
      sm();
      printf("\n");
      return 0;
}
void sm(void)
{
      printf("Smile!");//换行都在上面执行
}

guoxiaopeng 发表于 2017-8-29 08:39:16

#include <stdio.h>
void sm(void);
int main(void)
{
        int i = 0;
        int j = 0;
        for(i = 3; i > 0; --i)
        {
                for(j = 0; j < i; ++j)
                {
                        sm();                       
                }
               
          printf("\n");               
        }

    return 0;
}
void sm(void)
{
      printf("Smile!");
}
楼主已经写成函数形式了,就是为了避免重复代码;既然这样,主函数是不是也应该尽量避免重复的代码呢
页: [1]
查看完整版本: 一个看似很简单的问题