ACM_编程与调试重点记录(七)

四十二.航电1005解题报告

(1) /*#include<stdio.h>

int main(void)

{

    int i,f1,f2,f3,b,a1,t,num;

    __int64 n;

    while(scanf("%d%d%I64d",&a1,&b,&n),a1||b||n)

    {

        int a[7][7]={0};

        f1=1;

        f2=1;f3=1;

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

        if(a[f1][f2])

        {

            t=i-a[f1][f2];

            num=(n-a[f1][f2])%t;

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

            {

                f3=(a1*f2+b*f1)%7;

                f1=f2;

                f2=f3;

            }

            break;

        }

        else

        {

            a[f1][f2]=i;

            f3=(a1*f2+b*f1)%7;

            f1=f2;

            f2=f3;

        }

        printf("%d/n",f3);

}

}

 

*/

 

(2)//为什么不行呢?????

#include"stdio.h"

int main(void)

{

    int A,B;

    __int64 n,f[100000001],i;

    while(scanf("%d%d%I64d",&A,&B,&n),A||B||n)

    {

           f[1]=f[2]=1;

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

           {

                  f[n]=(A%7*f[n-1]%7)%7+(B%7*f[n-1]%7)%7;

              }

              printf("%I64d",f[n]);

       }

       return 0;

}

四十三.浮点参数压栈的规则:float(4 字节)类型扩展成double(8 字节)入栈。
   
所以在输入时,需要区分float(%f)double(%lf),而在输出时,用%f即可。
    printf
函数将按照double型的规则对压入堆栈的float(已扩展成double)double型数据进行输出。

四十四./*题目:C语言课本P77 NO.13 */

#include"stdio.h"

void print_jisuan(int n)//顺三角形,即上小下大

{

       int i,j;

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

       {

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

              {

                     printf(" ");

              }

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

              {

                     printf("* ");

              }

              printf("/n");//每行空格和星号输出后就换行

       }

}

 

void print_jsdao(int x)//倒三角形,即上小下大

{

       int i,j;

       for(i=1;i<=x;i=i+2)

       {

           for(j=i;j<=2*i;j=j+1)//如何让每趟循环输出的空格数相差2[微软用户1] 

              {

                     printf(" ");

              }

              for(j=x;j>=i;j=j-1)

              {

                     printf("* ");

              }

             

              printf("/n");

       }

}

 

int main()

{

       int n,x;

       scanf("%d",&n);

       print_jisuan(n);

       x=n-2;

       print_jsdao(x);

       return 0;

}

算法:通过程序可以看出我是采用顺三角形和倒三角形拼起来题目要求的图形。编程实现过程中难点在于实现倒三角形。时间复杂度O(n2)

四十五.#include"stdio.h"

int main()

{

           int r,h;

           r=1.5;//此时r=1[微软用户2] 

           h=1.5;//此时h=1     

           printf("%d/n",r*h);//输出结果1,而不是2,更不是2.5

}

结论:int只定义整型变量,如当给整型变量r赋值1.5,编译器会忽略0.5,只取1

      同理,h只取1。最后1*1=1

 

 


 [微软用户1]思考的关键之处——我想了好久!2010-1-20

 [微软用户2]2010-1-23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值