问题描述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;
运行结果:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。