zoukankan      html  css  js  c++  java
  • 初学者常见错误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.

     

           

  • 相关阅读:
    字节跳动软开校招岗
    众安保险软开校招岗
    topjui中combobox使用
    easyui中datagrid+layout布局
    jquery/js记录点击事件,单击次数加一,双击清零
    java图片上传及图片回显1
    java格式化
    java中的String整理
    删除window10没用的服务
    修改mysql默认端口
  • 原文地址:https://www.cnblogs.com/ssfzmfy/p/4260220.html
Copyright © 2011-2022 走看看