您的位置:首页 > 其它

帅比凯的成长记录

2016-10-25 23:12 183 查看
学习苏嵌的第四天,写一篇博客,记录一下自己的收获,虽然现在只是个程序小白,但是我相信经过我的努力,一定能取得很大的进步。

今天学习了循环语句并会用数组处理数据,在学的过程中遇到并解决了一些问题,下面就来分享一下。

循环语句中应用最多而且最广泛的为for循环,其灵活性很强而且很简便。

int main()

{

int i,j,n,sum;

i=1;

while(i<=8)

{

printf("%d\n",i);

i=i+1;

}

sum=0;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

sum=sum+i;

}

printf("%d\n",sum);

for(i=1;i<=10;i++)

{

for(j=1;j<=i;j++)

{

printf("*");

}

printf("\n");

}

return 0;

}

由此可见while语句三行才能解决的问题,for语句一行就能解决。

今天我更进一步的了解了对素数的判断,任意素数n不必被2~(n-1)范围内整除,只需被2~n/2间的整数除即可,甚至只被2~√2之间的数整除即可。

#include <stdio.h>

#include <math.h>

int main()

{

int n,k,i,m=0;

for(n=101;n<=200;n=n+2)

{

k=sqrt(n);

for(i=2;i<=k;i++)

if(n%i==0) break;

if(i>=k+1)

{

printf("%d",n);

m=m+1;

}

if(m%10==0) printf("\n");

}

printf("\n");

return 0;

}

这样不仅简便而且缩短了判断时间。

二维数组常成为矩阵,但元素是一行一行连续存放的。二维数组a[i][j]可以把a[i]看做一维数组的名字,这样在数组初始化和指针表示时显得很方便。

#include <stdio.h>

int main()

{

int a[2][3]={{1,2,3},{4,5,6}};

int b[3][2],i,j;

printf("arry a:\n");

for(i=0;i<=1;i++)

{

for(j=0;j<=2;j++)

{

printf("%5d",a[i][j]);

b[j][i]=a[i][j];

}

printf("\n");

}

printf("arry b:\n");

for(i=0;i<=2;i++)

{

for(j=0;j<=1;j++)

printf("%5d",b[i][j]);

printf("\n");

}

return 0;

}

趣味编程的过程中更是有更多收益。

若定义列宽为为62,x行0~180°时y点的坐标为m,在同一行与之对应的180°~360°时y点的坐标为62+m.

#include <stdio.h>

#include<math.h>

int main()

{

double y;

int x,m;

for(y=1;y>=-1;y-=0.1)

{

m=acos(y)*10;

for(x=1;x<m;x++) printf(" ");

printf("*");

for(;x<62-m;x++) printf(" ");

printf("*\n");

}

return 0;

}

在完成sin(X) cos(x)复合曲线打印时,将x行中0~10行和10~20行的图像分别打印,因为sin(x),在x轴上下均为左右对称。

此图中cos(x)的打印方法与上题相同,只是分为两次打印,而sin(x)在0~10行中,任意行0~90°y点的坐标为n,同行中90°

~180°对应坐标为31-n,在10~20行中,180°~270°和270°~360°对应的坐标分别为31-n和n=26.

#include <stdio.h>

#include <math.h>

int main()

{

double y;

int x,m,n,yy;

for(yy=0;yy<10;yy++)

{

y=0.1*yy;

m=acos(1-y)*10;

n=asin(1-y)*10;

for(x=1;x<62;x++)

{

if(x==m&&x==n) printf("+");

else if(x==m||x==62-m) printf("*");

else if(x==n||x==31-n) printf("+");

else printf(" ");

}

printf("\n");

}

for(yy=10;yy<20;yy++)

{

y=0.1*yy;

m=acos(1-y)*10;

n=asin(1-y)*10;

for(x=1;x<62;x++)

{

if(x==62-m&&x==n) printf("+");

else if(x==m||x==62-m) printf("*");

else if(x==31-n||x==62+n) printf("+");

else printf(" ");

}

printf("\n");

}

return 0;

}

今天一天虽然很累,但收获很多,也很充实。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: