gpt4 book ai didi

c - 如何将一个数分成正数、负数、整数和分数三部分

转载 作者:行者123 更新时间:2023-11-30 20:11:36 27 4
gpt4 key购买 nike

在学校作业中,我们应该编写一个程序,该程序接受一个数字并将其分为三个部分:1. 检查数字是正数还是负数2. 整数(大小)3.小数部分

要求是应该有一个自己的函数,名为separate,具有输入和输出参数。

例如:如果您输入 23.639,程序应该排序并打印出:符号:+整数大小:23小数部分:0.639

问题:1.正负区分功能,输入负数时会出现错误答案。它还发布了错误的字符。我尝试过不同的数据类型,如 int、char 和 float,但似乎都不起作用。非常感谢任何有关如何解决此问题的提示,因为我认为我被自己的错误蒙蔽了......

2.将小数与整数(分数)分开的函数不会从小数中减去整数,所以我只能使用整数。有人能发现我的错误吗?

<小时/>

* 更新 *

我设法解决了手头的问题,并在编辑我首先在这个问题中发布的代码时犯了可怕的 n00b 错误。我现在再次编辑了代码,以尽可能保留原始错误。正确的代码作为答案发布在下面。

很抱歉新手错误。

/*
Author: Thorbjørn Elvestad
Student ID: *****
E-mail: drommevandrer@gmail.com


This program take in number typed in by the user, and then divide it into three parts.

SIGN: '+' or '-'
Whole number: Show number as a whole number
Fraction: Show fractions

The program uses function to sort out the number, and print out the result*/

/* Declaring libraries */
#include <stdio.h>
#include <stdlib.h>


/* Declaring functions */
double sorting_sign(char x);
double sorting_whole(double x);
double sorting_fract(double x, int y);



/* Calling main function */
int main()
{
double num, fractures; /* declaring variables */
int sign_sorted, part;
double whole_sorted;

printf("LET ME TELL YOU SOME INTERESTING STUF ABOUT YOUR NUMBER!\n\n");
printf("Enter your number: ");
scanf("%d", &num);

sign_sorted = sorting_sign(num); /* Calling the function that sorts out if this number is '+' or '-' */
whole_sorted = sorting_whole(num); /* Calling the function separating whole number from decimals */
fractures = sorting_fract(num, num); /* Calling the function removing the whole number from the fractures */

printf("Sign: %c\nWhole: %0.lf\nFraction: %f", sign_sorted, whole_sorted, fractures);

return 0;
}


/* Function for sorting of if number is '+' or '-' */
double sorting_sign(char x)
{
int sign;

/* true if number is less than 0 */
if(x < 0.0){sign = '-';}

/* true if number is greater than 0 */
else if(x > 0.0){sign = '+';}

return (sign);
}


/* Function for sorting out the whole number */
double sorting_whole (double x)
{
int whole;

whole = x;

return (whole);
}

/* Function for sorting out the fractions */
double sorting_fract(double x)
{
int whole;
double fract;
whole = y;
fract = x - whole;


return (fract, whole);
}

最佳答案

您已声明您的 sorting_sign函数返回 double ,当您返回 int 时设置为 char 的值...整理您的类型。

关于c - 如何将一个数分成正数、负数、整数和分数三部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40071104/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com