Я новичок в C, и я хорошо учился в своем классе (онлайн) до последней пары программ. Они усложняются, а я не очень стратег. Но я пытаюсь и я расстроен.
Я работал над этим некоторое время (он просрочен), и моя конечная цель - преобразовать число в слова для зарплаты.
То, что я пытаюсь сделать здесь, - это преобразовать двойное значение в int и поместить int в массив char, чтобы в конечном итоге «сумма массива» читалась (если оплата составляла $ 1234,56) 001234. Тогда я подумал что я мог бы сделать, если бы или случаи для каждой позиции (hundThous = 0, tenThous = 0, Thous = 1 и т. д.), чтобы преобразовать его. Я застреваю здесь, хотя и нуждаюсь в помощи.
Как поместить значение 1234 в массив char?
Кроме того, в функции выше я назвал "checkWriter (money);" где деньги удваиваются. Это верно? Я просто хочу, чтобы она вызывала эту функцию, чтобы печатать преобразованные двойные слова.
void checkWriter(double z)
{
double v;
int w, y, cents;
int b, c, x, length;
char array[SIZE];
char amount[SIZE]; /*size = 7, our largest value will be in the hundred thousands*/
v = 100 * z; /*make z a whole number*/
w = ((int)v); /*convert z to an integer w*/
cents = w % 100; /*cents equals the remainder of w/100*/
y = (w - cents)/100; /*y equals the converted integer minus cents, divided by 100*/
sprintf(array, "%-6d", y); /* ATTEMPTING TO PUT y INTO array (saw this on google) */
printf("%s\n\n", array); /* Just wanted to see if it worked. It didn't. I got -2big
number.*/
length = strnlen(array); /*find length of the value in array*/
array[length] = '\0'; /* affix terminating null character to array */
b = SIZE - length - 1; /* b is amount of zeroes needed */
for(c = 0; c < length - 1; c++) { /* loops, plugging zeroes in amount until b=c,
then attaches array to amount */
if(b == c) {
amount[c] = '\0';
strcat(amount, array);
}
else {
amount[c] = '0';
}
}
printf("%s\n\n", amount); /* Checking to see if it worked. Nope. All zeroes. And
sometimes extra symbols at the end*/
return;
}
Был бы очень признателен за помощь. Спасибо!!!