Ⅰ 在c語言中,表達式5/3的結果是什麼
5和3如果都是整形變數的話,那麼結果就是1,因為『/』是得到的結果是商。其實在寫程序時,無論是%d還是%f,5/3都是等於1,無非是%f的話是1.0000。
編譯環境為Dev-C++ TDM-GCC 4.9.2 64-bit。這個結果其實非常合理,C語言中,/是除法運算沒錯,但是5/3是兩個整數相除,得到的結果也是一個整數,有點類似於一些語言當「整除」運算的概念。
那麼要怎麼樣才能得到小數的結果呢?其實也很簡單,按照整型類型數相除只能得到整型類型的結果來推測,基本可以得出結論:表達式中需要出現浮點數。至於浮點數做除數還是被除數都沒有問題。如果是變數的話,可以先乘以1.0,然後再做除法運算,得到的結果也會是浮點數。
如果在整型表達式中 5 / 3 = 1,因為 int 數據類型會將小數點後面的指數部分直接截斷。所以如果在需要精確到小數點的場景下,萬萬不可用整型數據類型。
而在浮點型表達式中 5 / 3 = 1.666667,因為浮點型(這里使用 float)他只保證小數點後6位的精確,並將最後一位四捨五入。所以如果要更加精確可以使用 double 或者是 long double。
Ⅱ C語言 按照程序段的功能填寫橫線上的表達式
#include<stdio.h>
intmain()
{intn,s;
printf("Enteranumber:");
scanf("%d",&n);
printf("Output:");
do
{s=n%10;
printf("%d",s);
n=(n-s)/10;<=====
}while(知態n>0);<====
return0;
}
第二段:
#include<stdio.h>
#include<math.h>擾猛磨
intprime_pal(intn)
{inti,k=(int)sqrt(n),m;<===這里不唯一,也可以寫成k=n,或者k=n/2
for(i=2;i<=k;i++)
if(n%i==0)return緩斗0;<====
k=n;m=0;
while(k>0)
{m=m*10+k%10;
k=k/10;<====
}
if(m==n)return1;
return0;
}
intmain()
{intj,k=0;
for(j=100;j<=999;j++)
{if(prime_pal(j))<=====
{printf("%d ",j);
if(++k%5==0)printf("%n");}
}
return0;
}
Ⅲ C語言字元串表達式求值
#include<stdio.h>
intmain(void)
{
longlongx;
intt,i,a;
charc;
for(scanf("%d%lld ",&t,&x),i=1;i<=t;i++)
{
while((c=getchar())!=' '&&c!=EOF)
{
scanf("%d",&a);
switch(c)
{
case'+':x+=a;break;
case'-':x-=a;break;
case'*':x*=a;break;
case'/':x/=a;break;
default:break;
}
}
printf("Case#%d:%lld ",i,x);
}
return0;
}
Ⅳ C語言表達式5>3<7>8的值是
5>3 的值是 :1
3<7的值是 : 1
7>8 的大森值是 : 0
5>3<7>8 的值是 : 0
printf("5>3: %d ",5>3);
printf("3<7: %d ",3<7);
printf("7>8:源碰 %d ",7>8);
printf("5>3<7>8: %d ",5>3<7>雹仿談8);