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

来源:3-4 练习题

shadower

2015-05-27 18:48

#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回答

  • 劣徒残留
    2015-05-29 16:40:31

    怎么答不对问??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;
    
    }


  • 彡夏
    2015-05-27 23:46:24

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

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

    彡夏

    补充: result = a + b % a - b / a + a * b - a ++; a的值从上面表达式a++发生改变a=a+1.

    2015-05-27 23:48:27

    共 1 条回复 >

C语言入门

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

926028 学习 · 20793 问题

查看课程

相似问题