C/C++常见赋值编译报错警告如何处理

问题描述1

将默认为双精度的实型常量赋值给单精度变量。

语句编写:

#include<stdio.h>
#define pl 3.14
int main()
{
    float r,area;
    r=1.5;
    area=pl*r*r;
    printf("area=%f\n",area);
    return 0;
}

编译警告

werning C4244:"=’:co onversion from 'double / to "float

但不影响程序运行

解决办法:

如果将float修改为double,将%f修改为%lf后,就没有警告了。

运行结果:

问题描述2

两个定义的时候,同时赋初值。

语句编写:

#include<stdio.h>
int main()
{
    int x=y=2,z;
    z=x+y;
    printf("x+y=%d\n",z);
    return 0;
}

编译错误erlor c2065: 'y' : undeclared identifier

解决办法:

变量x和y单独定义单独赋初值,将int x=y=2,z修改为int x=2,y=2,z;

运行结果:

问题描述3:

将带双引号的字符串赋值给了字符变量

语句编写:

#include<stdio.h>
int main()
{
    char ch;
    ch="A";
    printf("%c的ASCll的值为:%d\n",ch,ch);
    return 0;
}

编译警告

warning c4847: "=" : "char " diff Fers in levels of indirection from "char [2]

解决办法:

将字符串"A"修改为字符'A'。

运行结果:

问题描述4:

实型数据参与了%(求余)运算

语句编写:

#include<stdio.h>
int main()
{
    printf("%d\n",3%2.0);
    return 0;
}

编译错误:error C2297: '%' : illegal, right operand has type "const double "

解决办法:

只有整数才能参加%(求余)运算,将2.0修改为2。

运行结果:

乘法运算问题
问题描述5:

两个变量进行乘法运算时,忘记书写乘号"*"。

语句编写:

#include<stdio.h>
int main()
{
    double l=2,w=3,s;
    s=lw;
    printf("s=%lf\n",s);
    return 0;
}

编译错误 error c2065: 'lw’: undeclared identifler

解决办法:

乘法的符号不能省略,将s=lw;修改为s=l*w;

运行结果:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值