第一次使用博客 不知道到底用来干嘛的???
今天看的关于gcc的一些命令:
1.rmdir可以删除一个文件夹, rm可以删除文件,rm -r 可以删除文件夹 采用递归删除;(rm删除文件,不能恢复)
2.tree +文件夹名称 显示文件的树状图;
3.cat touch均可建立文件 ,cat>文件名称(之前存在就覆盖为空) cat>>向文件加入内容 touch+文件名称,存在修改时间,不存在就建立新的文件 文件的建立时间(属性值里面的)为当前时间
4.mv -b 移动文件提示是否覆盖,选择no文档不覆盖 但也不在之前的文件夹里 消失了?? (这个没查到)
基本在练写程序 下次要分多点时间看了
在c趣味程序里遇见的问题:
1.绘制余弦曲线
输出空格要用printf(" 空格"),不能直接写printf(""),我错以为一样的!!!
用第二道题的做法重写:
#include <stdio.h>
#include <math.h> //经常加了头文件编译的时候也会发现提示acos未定义 需要编译时加入-lm链接math库文件
main()
{
double y;
int x,m;
for(y=1;y>=-1;y-=0.1) //余弦的取值范围
{
m=acos(y)*10; //扩大10倍
for(x=1;x<=62;x++)
{
if(x==m||x==62-m) printf("*");
else printf(" ");
}
printf("\n");
}
}
第二道 cos与直线相交 为什么for循环不加大括号?在不加大括号的时候如果是遇见第一个分号就截止,很明显不应该出现正确结果 使用gdb调试发现如果是不加括号后面跟的是if/else 省略的大括号包含的内容是if和else整体
第三道 画圆的时候 我直接采用类似于第一道题的改写发现哪点出了问题问题出在:
贴出部分代码
for(x=1;x<=60;x++)
if(x==m||x==60-m) printf("*"); //m为之前算出的列号
else printf (" ");
printf("\n");
这样得不出正确结果 因为一开始我一直认为列号就是点在x轴上的投影,也就是列的数值就是x轴上的值。 这是错的
列号应该从你的行与你想画的图形的交点算起
把上面的改成
if(x==30-m||x==30+m)就能出现正确结果
这样说 第一个列号是y值从上到下遍历时与圆的最高点交点 投射在x轴的位置 即圆心;而不是最靠近y轴的那点
4 ,5 ,6倒没什么特别的 就是第6道题输出的时候为什么在最后的printf("......" last%1000);又取了一次余?