帅比凯的成长记录

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

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

循环语句中应用最多而且最广泛的为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;
}
今天一天虽然很累,但收获很多,也很充实。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值