问答详情
源自:3-5 赋值运算符

这样得程序能运行嘛?

#include<stdio.h>
int main()
{
   int a=5;
   int b=6;
   c=a-b;
   printf("c=%d\n",a-b>0?'0';'1');
   return=0;
   }


提问者:大大乖 2020-05-25 20:02

个回答

  • SheepShake
    2020-06-02 12:29:08

    不可运行,主要原因:语法错误。

    #include<stdio.h>
    int main()
    {   
        int a=5;
        int b=6;
        c=a-b;  // 此处c未定义
         //正确写法: int c=a-b;
         
        printf("c=%d\n",a-b>0?'0';'1');  // 三目运算符使用错误
        /* 正确写法:printf("c=%d\n",a-b>0?'0':'1');
        * 此处大于0时会打印0的ASCII编码,小于则打印1的ASCII编码
        *
        * 或:printf("c=%c\n",a-b>0?'0':'1');
        * 此处大于0时会打印字符0,小于则打印字符1
        *
        * 抑或:printf("c=%d\n",a-b>0?0:1);
        * 此处大于0时会打印整型0,小于则打印整型1
        */
        
        return=0; // 应为 return 0;
    }


  • 慕少8391027
    2020-05-26 12:08:52

    不行的。

    1. 变量c没有定义;

    2. 第7行,%是转义符,也就是和%一起出现的后面的内容会转义后输出,%d表示按整型输出后面给出的变量的值,所以后面双引号外面的第一个变量应该是整型的,并且%d与后面的整型变量应该一一对应,有几个%d就应该有几个整型变量;

    3. 第7行,双引号后面的变量之间,用逗号隔开;

    4. return可加可不加,规范的程序应该加上,表示程序的末尾,但是你定义的main函数是int类型的,返回值应该也是整型的,所以应该删除“=”写为“return 0”。