笔记

1.设变量xfloat型且已赋值,则下列语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是       x=(int)(x*100+0.5)/100.0

例题,Financial Management(通师邀请赛正式赛第一题)

代码:

#include<stdio.h>

#include<string.h>

#include<iostream>

using namespace std;

#define n 12

int main()

{

   float  a[n];

   float sum=0,ans=0,aver=0;

   memset(a,0,sizeof(a));

 for(int i=0;i<n;i++)

  {

      scanf("%f",&a[i]);

      sum+=a[i];

  }

    aver=sum/n;

    ans=(int )(aver*100+0.5)/100.0;

   cout<<'$'<<ans<<endl;

   return 0;

}

2.sqrt函数功能:计算非负实数的平方根。pow函数的返回值是double或float。

3.定义圆周率常数   const  double pi=4.0*atan(1.0);  const表示它的值是不可以改变的。别忘了加头文件<math.h>

4.开灯问题

代码:

#include<stdio.h>

#include<string.h>

int a[1020];

int main()

{

    int n,k,first=1;

    memset(a,0,sizeof(a));

    while(scanf("%d%d",&n,&k)!=EOF)

    {

        for(int i=1;i<=k;i++)

            for(int j=1;j<=n;j++)

            if(j%i==0)

            a[j]=!a[j];

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

    {

         if(a[i])

        {

            if(first)

            first=0;

            else

                printf(" ");

            printf("%d",i);

        }

    }

  printf("\n");

    }

    return 0;

}

5.蛇形填数

代码:

#include<stdio.h>

#include<string.h>

int a[10][10];

int main()

{

    int n,x,y,tot=0;

    while(scanf("%d",&n)!=EOF)

    {

        memset(a,0,sizeof(a));

        tot=1;

        a[x=0][y=n-1]=1;

        while(tot<n*n)

        {

            while(x+1<n&&!a[x+1][y])  a[++x][y]=++tot;

            while(y-1>=0&&!a[x][y-1]) a[x][--y]=++tot;

            while(x-1>=0&&!a[x-1][y]) a[--x][y]=++tot;

            while(y+1<n&&!a[x][y+1])  a[x][++y]=++tot;

        }

        for(x=0;x<n;x++)

          {

               for(y=0;y<n;y++)

                printf("=",a[x][y]);

               printf("\n");

          }

    }

    return 0;

}

6.孪生素数

代码:

#include<stdio.h>

#include<math.h>

#include<assert.h>

int is_prime(int x)

{

    int i,m;

    assert(x>=0);

    if(x==1)  return 0;

    m=floor(sqrt(x)+0.5);

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

        if(x%i==0)

        return 0;

    return 1;

}

int main()

{

    int i,m;

    scanf("%d",&m);

    for(i=m-2;i>=3;i--)

       {

           if(is_prime(i)&&is_prime(i+2))

             {

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

                  break;

             }

       }

    return 0;

}

7.字符矩阵左旋转90

代码:

#include<stdio.h>

#include<string.h>

int main()

{

    int n,i,j,k;

    char str[100],ch;

    scanf("%d",&n);

    getchar();

    for(i=0;i<n*n;i++)

    {

        ch=getchar();

        str[i]=ch;

    }

    k=strlen(str);

    for(j=n-1;j>=0;j--)

    {

        for(i=j;i<=n*n-n+j;i+=n)

          printf("%c ",str[i]);

          printf("\n");

    }

    return 0;

}

8.int 的上限约是20亿,可以保存所有9为整数。

posted @ 2013-07-27 10:40  清风旋叶  阅读(226)  评论(0编辑  收藏  举报