• 初学者常见错误1——赋值时的类型转换


    猜测下面程序的输出结果,并上机尝试:

    1.

    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	printf("%d",pow(5,2));
    
    }
    

    2.

    #include<stdio.h>
    #include<math.h>
    int main()
    {
        printf("%f",pow(5,2));
    
    }
    View Code

    3.

    #include<stdio.h>
    #include<math.h>
    int a[105];
    int main()
    {
        int x,y,sum=0,n=0;
        while (scanf("%d",&x)==1)
        {
            a[n++]=x;
            }
        for (int i=0;i<n;i++)
          for (int j=i+1;j<n;j++)
            sum=sum+pow(a[i],2)-pow(a[j],2); 
        printf("%f",sum);
    
    }
        
    View Code


     

    4.

    #include<stdio.h>
    #include<math.h>
    int a[105];
    int main()
    {
        int x,y,sum=0,n=0;
        while (scanf("%d",&x)==1)
        {
            a[n++]=x;
            }
        for (int i=0;i<n;i++)
          for (int j=i+1;j<n;j++)
            sum=sum+pow(a[i],2)-pow(a[j],2); 
        printf("%d",sum);
    
    }
        
    View Code


    答案:1.0   2. 25.000000   3.无论你输入任何数据,输出结果都为0   4.按实际结果输出

    原因:

    (1)指数函数pow(x,y)的计算结果为双精度实数。

    (2)赋值时的类型转换规则:float、double型赋值给int型:直接截断小数。

             sum=sum+pow(a[i],2)-pow(a[j],2);

    (3)使用printf输出时,如果格式控制符和输出列表不一致,导致输出结果为0.

     

           

  • 相关阅读:
    [jni]Getting Started
    USB接口程序编写
    mysql
    learn 学习 试错 练习 SSL
    svn
    第三方支付链接
    错误信息
    app 推广
    xcode 配置等
    .net wordpress 服务器类
  • 原文地址:https://www.cnblogs.com/ssfzmfy/p/4260220.html
Copyright © 2020-2023  润新知