输入一个数,然后判断输出这是一个正数,或者这是一个负数,或者这是0 c语言

2024-11-27 16:36:54
推荐回答(5个)
回答1:

题目是求一个整数的二进制中1的个数。

具体分析如下:

  1. 例如输入10,由于其二进制表示为1010,有两个1,因此输出2。

  2. 先判断整数的最右边一位是不是1。接着把整数右移一位,原来处于右边第二位的数字现在被移到第一位了,再判断是不是1。这样每次移动一位,直到这个整数变成0为止。

  3. 现在的问题变成怎样判断一个整数的最右边一位是不是1了。很简单,如果它和整数1作与运算。由于1除了最右边一位以外,其他所有位都为0。因此如果与运算的结果为1,表示整数的最右边一位是1,否则是0。

  4. 1int NumberOf1_Solution1(int i)
    2{
    3    int count = 0;
    4    while(i)
    5    {
    6        if(i & 1)
    7            count ++;
    8        i = i >> 1;
    9    }
    10    return count;
    11}

回答2:

#include
#include "StdAfx.h"
void main()
{
float a; //定义变量
printf("请输入一个数:\n");//输入提示
scanf("%f",&a); //获取输入
if(a>0.0) //大于0
{
printf("%0.1f大于0",a);
}
else if(a<0.0) //小于0
{
printf("%0.1f小于0",a);
}
else //等于0
printf("%0.1f等于0",a);

}

回答3:

#include
int main()
{
int data = 0;
printf("请输入一个数:\n");
scanf("%d",&data);
printf("%c\n",(data>0?'+':(data<0?'-':'0')));
return 0;
}

回答4:

{int i;
scanf(“/n”);
if(i<0)
printf("%d",yes);
{if(i=0)
printf("%d",0);
else
printf("%d",no);}
}
大概就是这个意思,细节之处可能有点错误

回答5:

#include 

int main()
{
  int num;
  scanf("%d", &num);
  
  if (num < 0) printf("num is negative!\n");
  else if (num == 0) printf("num is 0!\n");
  else printf("num is positive!\n");
  
  return 0;
}