❶ 編寫c語言程序拆分輸入實數的整數部分與小數部分,用指針數組做,大神幫忙啊
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int SplitRealNumber(double RealNumber, int *RealPart, int *DecimalPart)
{
char RealNum[100] = {0};
char *rr[100];
int RealNumLength = 0;
int i = 0;
char *Tmp1;
char *Tmp2;
char tt[2] = {0, 0};
for (i = 0; i < 100; i++)
{
rr[i] = &RealNum[i];
}
sprintf(RealNum, "%lf", RealNumber);
RealNumLength = strlen(RealNum);
for (i = 0; i < RealNumLength; i++)
{
tt[0] = *rr[i];
tt[1] = '\0';
if (0 == strcmp(tt, "."))
{
printf("strcmp ok, i = %d \n", i);
break;
}
//printf("RealNum[%d] = %c \n", i, RealNum[i]);
}
Tmp1 = rr[0];
*RealPart = atoi(Tmp1);
if (i < (RealNumLength - 1))
{
Tmp2 = rr[i + 1];
printf("Tmp2 = %s \n", Tmp2);
*DecimalPart = atoi(Tmp2);
printf("DecimalPart= %d \n", *DecimalPart);
}
else if(i == (RealNumLength - 1))
{
printf("RealNumber err \n");
}
else
{
*DecimalPart = 0;
printf("DecimalPart == 0 \n");
}
return 0;
}
void main()
{
double a = 103.012345;
int res;
int realPart, decimalPart;
printf("a = %lf \n", a);
res = SplitRealNumber(a, &realPart, &decimalPart);
printf("res = %d \n", res);
printf("realPart = %d \n", realPart);
printf("decimalPart = %d \n", decimalPart);
printf("\n");
a = -123.978912;
printf("a = %lf \n", a);
res = SplitRealNumber(a, &realPart, &decimalPart);
printf("res = %d \n", res);
printf("realPart = %d \n", realPart);
printf("decimalPart = %d \n", decimalPart);
printf("\n");
a = 1.2;
printf("a = %lf \n", a);
res = SplitRealNumber(a, &realPart, &decimalPart);
printf("res = %d \n", res);
printf("realPart = %d \n", realPart);
printf("decimalPart = %d \n", decimalPart);
printf("\n");
a = -1.1;
printf("a = %lf \n", a);
res = SplitRealNumber(a, &realPart, &decimalPart);
printf("res = %d \n", res);
printf("realPart = %d \n", realPart);
printf("decimalPart = %d \n", decimalPart);
printf("\n");
a = 1;
printf("a = %lf \n", a);
res = SplitRealNumber(a, &realPart, &decimalPart);
printf("res = %d \n", res);
printf("realPart = %d \n", realPart);
printf("decimalPart = %d \n", decimalPart);
}
在我的VC上,%lf存的數據要小數點後6位,導致小數部分的值後面可能有一串0,好煩。。。你隨便看下吧,哎。
❷ 怎麼將c語言中一個浮點型數據的整數部分與小數部分提取出來
代碼如下:
#include <stdio.h>
int main(){
double number; //其中number表示輸入的數
int zhengshu; //表示實數的整數部分
double xiaoshu; //表示整數的小數部分
printf("請輸入一個實數:"); //提示輸入一個數
scanf("%lf",&number);
zhengshu = (int)number;
xiaoshu = number-zhengshu;
printf("%f整數部分為:%d,小數部分為:%f ",number,zhengshu,xiaoshu);
return 0;
}。
程序執行結果:
程序設計思路就是輸入一個浮點數,把這個浮點強轉為整數,C語言強制轉換浮點數為整數的話,會丟失精度,也就是小數部分,再把原來的數減去整數部分,就可以得到小數部分,然後定義變數把相應的部分存儲,列印出來就行了。
❸ 如何用C語言把一個數的正負號 、整數部分、小數部分區分出來
代碼如下:
#include <stdio.h>
int main(){
double number; //其中number表示輸入的數
int zhengshu; //表示實數的整數部分
double xiaoshu; //表示整數的小數部分
printf("請輸入一個實數:"); //提示輸入一個數
scanf("%lf",&number);
zhengshu = (int)number;
xiaoshu = number-zhengshu;
printf("%f整數部分為:%d,小數部分為:%f ",number,zhengshu,xiaoshu);
return 0;
}。
程序執行結果:
❹ C語言中如何將小數分成整數部分和小數部分
參見math.h中的庫函數modf
語法:
#include <math.h>
double modf( double num, double *i );
功能: 函數將參數num 分割為整數和小數,返回小數部分並將整數部分賦給i。
❺ c語言怎樣分離小數與整數
c語言中要分離小數與整數,可以使用以下的代碼,將一個帶小數分離出整數部分和純小數部分:
double a=3.14,b;
int c;
c=a;
b=a-c;
printf("c=%d b=%g\n",c,b);
❻ C語言中如何區別小數和整數
C語言中有int
,lang,float,double,其中整形有lang和int,lang是長整形,float是單精度浮點型,double是雙精度浮點型,浮點型就是小數,整形就是整數,明白了嗎?
❼ 一道c語言的題目,將整數與小數分離
1
轉化為字元串
2
以「.」分割為數組r
3
輸出r[0]、r[1] (不包括小數點)
有必要時,輸出前將r[0]、r[1] 轉化成數值
輸入正數c
var s:String=c.toString;
var r:Array=s.split(".");
var a:int=int(r[0]);
var b:int=int(r[1]);
輸出a(整數部分)、b(小數部分)、c(輸入的原數據)
❽ C語言中強制轉換數據類型如何將一個實數分離成整數部分和小數部分
#include <stdio.h>
#include <math.h>
int main() {
double x=3.1415, intpart; //為變數賦初值
double fractpart = modf(x, &intpart); //求3.1415的小數部分
int intNum=(int)x;
printf("%lf的整數部分是:%d,小數部分是:%lf\n", x,intNum,fractpart);
return 0;
}
❾ C語言,把一個數的整數和小數分開顯示。我這個程序哪裡錯了呢
是傳址,不是傳值
int main (void)
{
float i;
int a;//改
float b;//改
scanf("%f",&i);
t (i,&a,&b);//改
printf("%d\n",a);//改
printf("%f\n",b);//改
return 0;
}
❿ c語言中怎麼把一個實數分解成整數部分和小數部分
#include<stdio.h>
#include<math.h>
void
main()
{
double
F;
double
a;//存放整數部分
double
b;//存放小數部分
printf("請輸入一個浮點數:");
scanf("%lf",&F);
a=floor(F);
b=F-a;
printf("將該數分解後:\n");
printf("整數部分:%lf\n",a);
printf("小數部分:%lf\n",b);
}