搜索
查看: 2184|回复: 10
打印 上一主题 下一主题

谁能告知下阿哈C语言书籍里第一章节输出菱形图案该怎么编写

[复制链接]
跳转到指定楼层
楼主
发表于 2013-12-9 10:46:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
本帖最后由 stu 于 2013-12-9 12:33 编辑



这个怎么编写

怎么利用FOR语句循环实现菱形

#include <math.h>

void main()
{
int i, j, k;
for (i = -3; i <= 3; i++)
{
k = abs(i);
for (j = 1; j <= k; j++)
printf(" ");
for (j = 1; j <= 7 - 2 * k; j++)
printf("*");
printf("\n");
}
system("color b5");
system("pause");
}

实现的效果图如下:

以上实现的菱形和电子PDF里的图还是不一样  请问怎么弄成一样?

另外有没有习题答案可以看的阿

沙发
发表于 2013-12-16 13:26:48 | 只看该作者
本帖最后由 Vivian1091 于 2013-12-16 13:28 编辑

这样可以吗
#include <stdio.h>
#include <stdlib.h>
int main()
{

    printf("  *\n * *\n*   *\n * *\n  *");
   
   
    system("pause");
    return 0;
}

板凳
 楼主| 发表于 2013-12-16 18:26:29 | 只看该作者
Vivian1091 发表于 2013-12-16 13:26
这样可以吗
#include
#include

请看清楚帖子意思
地板
 楼主| 发表于 2013-12-16 18:30:55 | 只看该作者
问下书中44页 提到的
思考一下 为什么通过a=b-a;b=b-a;a=b+a;也可以将变量a与变量b中的值交换呢? 求解答
5#
发表于 2013-12-17 10:49:16 | 只看该作者
stu 发表于 2013-12-16 18:26
请看清楚帖子意思

I don't know what's wrong with my computer. I can't type Chinese...
Sorry, I am new to programming. I haven't learnt what you askes for.
Good luck
6#
 楼主| 发表于 2013-12-17 14:09:45 | 只看该作者
Vivian1091 发表于 2013-12-17 10:49
I don't know what's wrong with my computer. I can't type Chinese...
Sorry, I am new to programmin ...

那你换输入法吧  另外最开头的问题我搞定了 后面我又跟楼回复的 思考一下 为什么通过a=b-a;b=b-a;a=b+a;也可以将变量a与变量b中的值交换呢?
关于变量值对调结果的实现原理却没答案 还请各位告知下 谢谢
7#
发表于 2013-12-17 15:17:46 | 只看该作者
路过再顺便说一句
abs的原型声明在stdlib.h里,而不是math.h
所以应该做的是 #include <stdlib.h>
8#
 楼主| 发表于 2013-12-17 15:28:24 | 只看该作者
rosynirvana 发表于 2013-12-17 15:17
路过再顺便说一句
abs的原型声明在stdlib.h里,而不是math.h
所以应该做的是 #include

噢 因为用math,h 可以通过 所以  嗯  谢谢大神告知
9#
发表于 2013-12-17 15:33:41 | 只看该作者
stu 发表于 2013-12-17 15:28
噢 因为用math,h 可以通过 所以  嗯  谢谢大神告知

首先,为什么要包含头文件?是为了加入头文件中的函数声明
函数声明在C90标准下不是必须的,但是如果有,编译器就会根据声明来检查函数的调用是否正确
如果没有声明函数直接使用,编译器就会假设这个函数的返回类型和参数类型都是int

所以在你那段代码中,编译器看到了abs这个函数,然后就去查找这个函数的原型,但是找不到,于是假设这个函数的原型是
  1. int abs(int);
复制代码
而abs的原型恰好是这个,于是一点问题都不会有
10#
发表于 2014-2-14 14:39:59 | 只看该作者
#include <stdio.h>
#include <stdlib.h>
int main()
{
                printf("☆\n");
   
          printf("☆   ☆\n");       这几个地方你用空格调整位置或者
   
        printf("☆       ☆\n");      或者用*号 代替星星也可以
      
          printf("☆   ☆\n");
         
            printf("☆\n");
          
       system("color  f5" );
       system("pause");
           return 0;
}
11#
发表于 2014-2-14 14:47:51 | 只看该作者
stu 发表于 2013-12-16 18:30
问下书中44页 提到的
思考一下 为什么通过a=b-a;b=b-a;a=b+a;也可以将变量a与变量b中的值交换呢? 求解答: ...


#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b;
    a=a+b;
    b=b-a;
    a=b+a;
    a=b;
    b=a;
    printf("%d %d",a,b);
        system("pause");
        return 0;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表