Вопрос по С : О жизни : Форум |
D3mon: |
14.11.09, 16:14 |
Есть программка: Код: #include <stdio.h> #include <conio.h> #define deg 3 unsigned int i, fn, gn; double F[4], G[3]; main(void) { fn = deg; gn = deg - 1; for (i = 0; i <= fn; i++) { F[i] = i * 2; } for (i = 0; i <= gn; i++) { G[i] = (i + 1) * F[i+1]; printf(" G[%1.0f", i); printf("] = %3.1f,", G[i]); } getchar(); } никак не могу понять, почему она в скобках пишет 0, а не значение i Подскажите, пожалуйста. |
MahmudS: |
14.11.09, 16:22 |
Потому что оно целое, попробуй %d |
D3mon: |
14.11.09, 16:25 |
мде..... Спасибо! Еще, а как можно объеденить принты в один, а то у меня не получается? ( [ Редактировано D3mon в 14.11.09 16:29 ] |
MahmudS: |
14.11.09, 16:38 |
printf("G[%d] = %3.1f\n", i, G[i]); \n - переход на новую строку. |
D3mon: |
14.11.09, 16:42 |
ну про \n я знаю. Но он мне здесь не нужен Спасибо!! p.s. если вдруг кому-то стало интересно, что это за программа, объясню.. Это код проги с использованием функции.. Код: #include <stdio.h> #include <conio.h> #define deg 3 void polydif(double *f, unsigned int fn, double *g, unsigned int gn) { unsigned int i; gn = fn - 1; for (i = 0; i <= gn; i++) { *g++ = *++f * (i+1); } } unsigned int i, fn, gn; double F[4], G[3]; main(void) { fn = deg; gn = deg - 1; F[0] = 0; F[1] = 2; F[2] = 4; F[3] = 6; polydif(F, fn, G, gn); for (i = 0; i <= gn; i++) { printf("G[%d] = %3.2f ", i, G[i]); } getchar(); } f - коэффициенты многочлена степени fn, начинаю с 0-го.. g - коэффициенты многочлена, полученного после дифференцирования f и имеющего степень gn.. И тут же назрел еще один вопрос: эта моя функция записывает степень полученного многочлена в gn, а как сделать, чтобы ее можно было потом использовать в основной программе? Есть ли аналог ключа VAR в паскале? [ Редактировано D3mon в 14.11.09 16:54 ] |
MahmudS: |
14.11.09, 19:10 |
В си просто пишешь int gn, вот и будет объявлена перемення. Если обьявишь сразу после инклудов и дефайнов (не внутри функций), она будет глобальной |
D3mon: |
14.11.09, 19:36 |
можеты меня не так понял, или я тебя в главной программе я знаю только fn. В ходе работы функции появляется gn, в данном случае оно равно fn-1. как мне сделать, чтобы gn имела тоже значение после работы функции, что и в ней? |
MahmudS: |
14.11.09, 21:30 |
Переменная gn у тебя описана дважды: в функции и в самой программе. Во втором случае она глобальная, т.е. на всю программу. А функция работает с той переменной gn, какую ей передали. Поэтому из описания функции надо gn убрать, пусть она работает с глобальной переменной. Другой вариант - в описании переменной в функции написать &gn, тогда функция будет работать с самой переменной, а не с ее копией |
noa: |
15.11.09, 11:31 |
D3mon, а разве сложно найти литературу в которой это все описано? Все что ты спросил - азы, разбираются в самом начале любой нормальной книги. |
URL этой темы: https://mobilefree.justdanpo.ru/newbb_plus/viewtopic.php?topic_id=4476 © 2005-2018 supertrubka.org |