条件运算符,为什么输出的结果是0不是2

img


为什么输出的结果是0,不是2?
C语言谭浩强第五版

为什么提问必须30个字以上,没话了

三目运算符条件为0 走表达式2
但是你输出的是a(a值不变) 跟2没关系

因为你没有对a赋值,a的值是不变的,如果是这样,才是2

int a=0;            
a=0?(a+2):2 ;
printf("%d ",a);

这样就是2了

#include <stdio.h>

void max(int a, int b);

int main(void) {
  
  int a = 0;
   
   a = 0 ? (a + 2) : 2;


  printf("%d\n", a);
  
  return 0;

}

你应该对啊a进行赋值,赋值用=,不是数学中的等号哦,在程序里叫赋值,意思是把等号右边的值,赋值给左边。我还是一名小学生,希望被采纳

第6行的这句条件运算,因为经条件运算后得到的结果没有被保存或赋值,相当于运行了一句空语句,对输出没有影响。

a的值没有参与运算,直接输出原值。

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7808289
  • 这篇博客也不错, 你可以看下用C语言实现:对关键字码构成哈希表并输出,输出操作次数,输出平均查找长度,输入一个数,输出所在哈希表位置
  • 除此之外, 这篇博客: 【C语言上机练习题目-代码+运行结果】中的 5.2  从键盘输入一串字符串,统计字符串中特定字符的个数(特定字符也需要从键盘输入),并输出个数。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 源代码
    # include <stdio.h>
    # include <string.h>
    
    int main ( )
    {
    	int b=1,i,k;
    	char str[800],ch;
    
    
    	printf("-------------------------------------------------------------------------------------------------------\n");
    	printf("\n\n       从键盘输入一串字符串,统计字符串中特定字符的个数(特定字符也需要从键盘输入),并输出个数。        \n");
    	printf("-------------------------------------------------------------------------------------------------------\n");
    
    	while (b==1)                        //进行循环输入分数
    	{
    	printf("\n请输入需要统计某个单词字符的单词或者句子\t");//提示输入
    	fflush(stdin);
    	
    	gets(str);
    	printf("\n请输入需要统计的字符:\t");
    	scanf("%c",&ch);
    
    
    	
    	i = 0;
    	k = 0;
    	while(str[i]!=0)        //进行统计字符个数
    	{
    	if(str[i]==ch)
    		k++;
    	i++;
    	}
    
    
    	printf("\n您输入的单词或者句子为:\t %s\n\n想要检索个数的字符是:\tch = %c\n",str,ch);
    
    	printf("\n\n检索到的字符个数为\t%d",k++);
    
    
    
    	printf("\n_________________________________________________________________________\n");
    
    printf("\nBRAEK(0) or CONTINUE (1):\t");       //确认是否循环
    		scanf("%d",&b);
    printf("\n_________________________________________________________________________\n");
    	/*memset(str,0,sizeof(str));清除数组内容*/ 
    
    	}
    
    
    
    return 0;
    }
    
    
    
    • 运行结果
      在这里插入图片描述


  • 您还可以看一下 朱有鹏老师的指针才是C的精髓-4.3.C语言专题第3部分课程中的 4.3.7.指针与强制类型转换小节, 巩固相关知识点