鱼C论坛

 找回密码
 立即注册
查看: 4411|回复: 16

跪求解释

[复制链接]
发表于 2012-7-23 07:44:44 | 显示全部楼层 |阅读模式
1鱼币
#include<stdio.h>
int main()
{
int a,b=322;
float x,y=8.88;
char c1='k',c2;
a=y;
x=b;
a=c1;
c2=b;
printf("%d,%f,%d,%c\n",a,x,a,c2);
return 0;
}

最佳答案

查看完整内容

#include int main() { int a,b=322; float x,y=8.88; char c1='k',c2; a=y; x=b; //所以x最终的值是b的值,322,只不过转换成的float型 a=c1; //所以a最终的值是c1的值,即'k'的ASCII码值107 c2=b; //所以c2最终的值是b的值,322,但是第九位的1溢出了,即-256成了66,用%c打印便是'B' printf("%d,%f,%d,%c\n",a,x,a,c2); //a干嘛要打印两次? return 0; }
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-23 07:44:45 | 显示全部楼层
#include<stdio.h>
int main()
{
        int a,b=322;
        float x,y=8.88;
        char c1='k',c2;

        a=y;
        x=b;   //所以x最终的值是b的值,322,只不过转换成的float型
        a=c1;  //所以a最终的值是c1的值,即'k'的ASCII码值107
        c2=b;  //所以c2最终的值是b的值,322,但是第九位的1溢出了,即-256成了66,用%c打印便是'B'

        printf("%d,%f,%d,%c\n",a,x,a,c2);  //a干嘛要打印两次?

        return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-7-23 08:05:49 | 显示全部楼层
a=(int)y; x=(float)b; a=c1; c2=b;
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-7-23 08:06:42 | 显示全部楼层
107,322.000000,107,B
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-23 08:39:12 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-23 08:40:00 | 显示全部楼层
1144290241 发表于 2012-7-23 08:05
a=(int)y; x=(float)b; a=c1; c2=b;

求详细解释额
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-7-23 09:15:53 | 显示全部楼层
#include<stdio.h>
int main()
{
        int a,b=322;
        float x,y=8.88;
        char c1='k',c2;
        a=y;//先将y的值赋值给a由于你将浮点型数赋给整型,会发生精度的损失,此时a=8
        x=b;//将b的值赋给x,此时是将整型赋值给浮点型,会发生数据类型转换,即x=322.00000....
        a=c1;//此时将c1的值赋给a,覆盖了原来的a值,此时存放的是c1的值'k',k对应的ASICII码是107.
        c2=b;//将b的值赋值给c2,
        printf("%d,%f,%d,%c\n",a,x,a,c2);//其结果为107,322.0000,107,B
        return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-23 09:38:24 | 显示全部楼层
收藏点滴 发表于 2012-7-23 09:15
#include
int main()
{

谢谢拉  讲的很好 还有一题能给我讲讲么
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-23 09:42:30 | 显示全部楼层
洋溢丶sniper 发表于 2012-7-23 09:38
谢谢拉  讲的很好 还有一题能给我讲讲么

#include<stdio.h>
int main()
{
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf("%d,%d\n",y,x);
return 0;
}
  求解释啦
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-7-23 09:46:10 | 显示全部楼层
你上面那个题目我也有给你解释的。在你提问的地方。呵呵
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-7-23 10:27:13 | 显示全部楼层
洋溢丶sniper 发表于 2012-7-23 08:39
怎么算的 啊  可以讲讲么

#include<stdio.h>        //这个不用讲了吧int main()        //main主函数{int a,b=322;           //定义整形变量a和b,然后给b赋值为322float x,y=8.88;         //定义浮点型变量x和y,然后给y赋值为8.88char c1='k',c2;         //定义字符型变量c1和c2,然后给c1赋值为'k'也就是ASCII码的107(十进制的)a=y;                 //把y的值赋给a。因为a是整数型所以当浮点型的变量y把8.88赋值给a,a要四舍五入之后得到a==9x=b;                //把b的值赋给x。因为x是浮点型变量,整数型变量b的值赋给x要把小数部分补上0,所以得x=322.000000a=c1;              //把c1的值赋给a。因为a是整属性变量,,c1是字符型变量,所以当c1赋值给a的时候其实是把'k'的ASCII码,赋给a,所以a==107c2=b;             //把b的值赋给c2。因为b==322,ASCII码有256位,所以赋给c2的值是322-256=66。c2==66(也就是c2=='B')printf("%d,%f,%d,%c\n",a,x,a,c2);        //输出整数型a==107,输出浮点型x==322.000000,输出整数型a==107,输出字符型c2==‘B’return 0;}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-7-23 10:29:50 | 显示全部楼层
#include<stdio.h>        //这个不用讲了吧
int main()        //main主函数
{
int a,b=322;           //定义整形变量a和b,然后给b赋值为322
float x,y=8.88;         //定义浮点型变量x和y,然后给y赋值为8.88
char c1='k',c2;         //定义字符型变量c1和c2,然后给c1赋值为'k'也就是ASCII码的107(十进制的)
a=y;                 //把y的值赋给a。因为a是整数型所以当浮点型的变量y把8.88赋值给a,a要四舍五入之后得到a==9
x=b;                //把b的值赋给x。因为x是浮点型变量,整数型变量b的值赋给x要把小数部分补上0,所以得x=322.000000
a=c1;              //把c1的值赋给a。因为a是整属性变量,,c1是字符型变量,所以当c1赋值给a的时候其实是把'k'的ASCII码,赋给a,所以a==107
c2=b;             //把b的值赋给c2。因为b==322,ASCII码有256位,所以赋给c2的值是322-256=66。c2==66(也就是c2=='B')
printf("%d,%f,%d,%c\n",a,x,a,c2);        //输出整数型a==107,输出浮点型x==322.000000,输出整数型a==107,输出字符型c2==‘B’
return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-7-23 12:17:30 | 显示全部楼层
洋溢丶sniper 发表于 2012-7-23 09:42
#include
int main()
{

你要问的主要是y=(x=a+b),(b+c);吧。这一句是一个逗号表达式。
逗号表达式形式是:表达式1,表达式2,表达式3...    它们会按照顺序计算。而这个表达式的值是最后一个表达式的值。但是本题,是将(x=a+b)的值给y,而不是将逗号表达式的值给y,所以跟y有关的只是:y=(x=a+b),而这里的括号是标明优先级,便于阅读,实际上跟y=x=a+b一样(c语言里是默认从右向左的)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-23 13:55:38 | 显示全部楼层
1144290241 发表于 2012-7-23 12:17
你要问的主要是y=(x=a+b),(b+c);吧。这一句是一个逗号表达式。
逗号表达式形式是:表达式1,表达式2,表 ...

你的vip是不是买光盘然后小甲鱼送你滴啊:loveliness:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-7-23 14:14:54 | 显示全部楼层
洋溢丶sniper 发表于 2012-7-23 13:55
你的vip是不是买光盘然后小甲鱼送你滴啊

是啊,说实话,他的视频真心不错。当时我想学汇编的时候,在网上纠结了有半个月,才算是弄明白汇编是个什么情况,debug又是个什么东西。他的视频真心的是零基础!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-24 15:13:38 | 显示全部楼层
1144290241 发表于 2012-7-23 14:14
是啊,说实话,他的视频真心不错。当时我想学汇编的时候,在网上纠结了有半个月,才算是弄明白汇编是个什 ...

那我也要入手一个  你买的是优盘的还是光盘的啊 话说光盘的 需要解压?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-7-24 16:17:50 | 显示全部楼层
洋溢丶sniper 发表于 2012-7-24 15:13
那我也要入手一个  你买的是优盘的还是光盘的啊 话说光盘的 需要解压?

我买的光盘的,光盘的是需要解压,但是这些都是小事。相对而言确实有点不方便,因为你看不同的光盘需要来回换盘。要是经济允许的话还是买u盘的好,方便,相当于是32g的u盘100块钱,感觉价格不是太贵。而且u盘上有一些光盘上没有的视频,那些我还得自己下
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 07:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表