关于C语言
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于C语言相关的知识,希望对你有一定的参考价值。
从题1.3开始有错了
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
int a,b,c,d;
float f,g;
printf("练习1\n");
printf("是否进入练习1.1\n1:是\t2:否\n");
scanf("%d",&a);
while((a!=1)&&(a!=2))
printf("请确认后再输入:\n\n");
scanf("%d",&a);
if(a==1)
printf("欢迎进入练习1.1\n\n\n\n");
system("pause");
printf("1.1:输出字符:\n i am a student\n i love china \n\n\n\n");
system("pause");
else
printf("请看下题\n");
printf("\n\n\n\n是否进入练习1.2\n1:是\t2:否\n");
scanf("%d",&a);
while((a!=1)&&(a!=2))
printf("请确认后再输入:\n\n");
scanf("%d",&a);
if(a==1)
printf("欢迎进入练习1.2\n\n\n\n1.2:两数相加:\n ");
printf("请输入两个数字\n");
scanf("%f%f",&g,&f);
printf("%f+%f=%f\n\n\n\n",g,f,g+f);
else
printf("请看下题\n\n\n\n");
printf("\n\n\n\n是否进入练习1.3\n1:是\t2:否\n");
scanf("%d",&a);
while((a!=1)&&(a!=2))
printf("请确认后再输入:\n\n");
scanf("%d",&a);
if(a==1)
printf("欢迎进入练习1.3\n\n\n\n1.3:求函数值:\n ");
system("pause");
printf("cos60=%f\n",cos(60));
printf("log10=%f\n",log10(10));
printf("2^3=%f\n",pow(2,3 ));
else
printf("请看下题\n\n\n\n");
system("pause");
为什么说有多个重载函数。pow和log10 都是的,还有cos为什么算的是错的
还有就是2^3=%f可以有正确答案 2^3=%d就是0啊
你可以看下这个几个函数的声明,
pow返回值为浮点型,所以应该用%f或%lf;
cos函数里的参数为弧度值,不是度°,60° = 60° * π/180° = π/3: 参考技术A 我用VC6.0 没有错误 那个cos 的参数是实数 不是角度值
可以printf("2^3=%d\n",(int)pow(2,3 ));轻质砖换一下 pow的参数和返回值都是double的
练习1
是否进入练习1.1
1:是 2:否
1
欢迎进入练习1.1
1.1:输出字符:
i am a student
i love china
是否进入练习1.2
1:是 2:否
1
欢迎进入练习1.2
1.2:两数相加:
请输入两个数字
2 3
2.000000+3.000000=5.00000
是否进入练习1.3
1:是 2:否
1
欢迎进入练习1.3
1.3:求函数值:
cos60=-0.952413
log10=1.000000
2^3=8.000000
Press any key to continue追问
那为什么2^3不能等于%d啊,等于就是0
关于c语言宏定义
typedef unsigned char BYTE;
typedef unsigned short WORD;
意思是可以用BYTE替代unsigned char 对么
但是后面更不明白了
#define LOBYTE(w) ((BYTE)(WORD)(w))
#define HIBYTE(w) ((BYTE)((WORD)(w) >> 8))
w是哪里来的不需要事先定义么,LOBYTE(w)代表这什么意思
BYTE WORD为什么这么用
typedef unsigned short WORD;
意思是可以用BYTE替代unsigned char
是对的,BYTE,WORD是新的变量类型
#define LOBYTE(w) ((BYTE)(WORD)(w))
这里是宏定义。类似函数定义,w作为参数,是文本。在编译时把LOBYTE(w)变为 ((BYTE)(WORD)(w))。比如输入:
WORD dat;
BYTE b ;
b=LOBYTE(dat);
编译时会替换为b=((BYTE)(WORD)(dat));意思是得到低字节部分。
同理HIBYTE得到高字节部分 参考技术A ypedef unsigned char BYTE;
typedef unsigned short WORD;
意思是可以用BYTE替代unsigned char
是对的,BYTE,WORD是新的变量类 参考技术B LOBYTE(w) 是宏定义函数,w在函数体指明了。
LOBYTE(w)是取w的低八位, word是指明w是word类型。
以上是关于关于C语言的主要内容,如果未能解决你的问题,请参考以下文章