为了账号安全,请及时绑定邮箱和手机立即绑定

我试着将题目跑了一下,有一点问题

#include <stdio.h>

int main()

{

int a = 3;

int b = 4;

char result; 

result = a + b % a - b / a + a * b - a ++;

printf("%d\n",result);

printf("a = %d\n",a);

return 0;

}

这是正常跑的,输出也是正常答案。

#include <stdio.h>

int main()

{

int a = 3;

int b = 4;

char result; 

result = a + b % a - b / a + a * b - a ++;

printf("result\n");

printf("a = %d\n",a);

return 0;

}

为何这个输出的是  result

                            a = 4

printf()中间输出的有什么规定么

正在回答

2 回答

怎么答不对问??printf是格式化输出函数 你上面说输出正常的代码 确定正常吗 我表示怀疑 看代码你会了解的

#include <stdio.h>

int main()

{

int a=3;
int b=4;

printf("a = %d;b=%d\n",a,b);//输出a = 3;b=4
printf("a = ;b=\n");//输出 a = ;b=
printf("result\n");//输出result

/*
第一个%d表示整形变量a的值
第二个%d表示整形变量b的值
如果后面还跟个%f什么的 那么后面跟在b变量后面就是浮点型变量了
都是一一对应的
printf("result\n")没有相关替代符,后面参数也没跟上变量或值所以直接当字符串输出

还有你第一遍说运行正常里面的代码 char result 应该是int result 定义成整形变量而不是字符型 学c 数据类型千万别弄错
至于你为什么不出错我也奇怪可能是对数值型字符型变量要求不严格 直接当成整形了 我也是新手 忘大牛解释为什么不出错

*/
return 0;

}


0 回复 有任何疑惑可以回复我~

在给一个变量赋值的时候使用++a或者 a++ 在此表达式后都会为a的值加1,(区别在于在赋值的时候是否计算a++或者++a的值)

printf是直接输出括号里的内容的,result当然会输出。a=4,你使用了表达式当然会输出a=4.明白吗?

0 回复 有任何疑惑可以回复我~
#1

彡夏

补充: result = a + b % a - b / a + a * b - a ++; a的值从上面表达式a++发生改变a=a+1.
2015-05-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926028    人
  • 解答问题       20793    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

我试着将题目跑了一下,有一点问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信