帥比凱的成長記錄

學習蘇嵌的第四天,寫一篇博客,記錄一下自己的收穫,雖然現在只是個程序小白,但是我相信經過我的努力,一定能取得很大的進步。

今天學習了循環語句並會用數組處理數據,在學的過程中遇到並解決了一些問題,下面就來分享一下。

循環語句中應用最多而且最廣泛的爲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;
}
今天一天雖然很累,但收穫很多,也很充實。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章