Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #60 : 30-06-2008 10:12 » |
|
По другому не реализовать функцию. Аааа, понятно. Эт я просто так спросил. Как-то сразу не увидел, что по другому не реализовать. Есть варианты (нормально работающие)? А если так попробовать? Тоже по идее должно работать. #include <stdio.h>
int func(const char *s);
void main() { char s[]="12345"; printf("summa=%d\n",func(s)); }
int func(const char *s) { int result = 0; for(;*s; ++s) result += (*s-'0'); return result; }
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Apheyhys
Гость
|
|
« Ответ #61 : 30-06-2008 10:24 » |
|
Да Джон ты прав
|
|
|
Записан
|
|
|
|
Apheyhys
Гость
|
|
« Ответ #62 : 30-06-2008 10:53 » |
|
Если в массиве встретиться какой либо другой символ, отличный от цифры, то его следует пропустить. Сразу вспоминается вариант со switch...
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #63 : 30-06-2008 10:56 » |
|
свич или , так как случай простой, сравнение:
если символ между числами '0' и '9' (включительно) , то учитываем, а если нет - то идут лесом. Ну и 0 не забывать в конце строки )
|
|
|
Записан
|
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #64 : 30-06-2008 12:49 » |
|
Алексей1153++, если символ между числами '1' и '9' (включительно)
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
DrGluck
|
|
« Ответ #65 : 30-06-2008 12:59 » |
|
Господа, я вас щас огорчу. Массив может и из WCHAR состоять. Кстати, отсюда и проблема получения цифры в зависимости от кодировки. А вы уверены, что во всех кодировках '0' = 48?
|
|
|
Записан
|
Good user - dead user
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #66 : 30-06-2008 13:04 » |
|
DrGluck, А там без разници чему равно '0' Компилятор сам поправит, если будет не так. Хотя я пока что не видел кодировки, кроме Unicode пожалуй, где бы забивали бы ASCII область по другому.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #67 : 30-06-2008 13:23 » |
|
Господа, я вас щас огорчу. Массив может и из WCHAR состоять. Внимательно предыдущие посты прочитай. Кстати, отсюда и проблема получения цифры в зависимости от кодировки. А вы уверены, что во всех кодировках '0' = 48? Ну вобще-то - да. ASCII она везде ASCII, даже в юникоде. Но даже если это и не так, то кто здесь ваще говорит о 48? Даже если это будет 64, '0'-'0' всё-равно даст 0.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #68 : 01-07-2008 03:40 » |
|
PooH, нет, пущай '0' тожже проверяет, может он захочет посчитать количество числов ? ))
|
|
|
Записан
|
|
|
|
Apheyhys
Гость
|
|
« Ответ #69 : 02-07-2008 22:24 » |
|
Даны 3 формулы: L=2*пи*R; S=пи*(R*R); V=4/3*пи*(R*R*R). Переменная R меняется от 2.0 до 5.0 с шагом 0.5. Написать функцию, которая будет выводить эти значения. Вывод данных из функции организовать с помощью указателей или структуры.
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #70 : 03-07-2008 03:44 » |
|
Как всё грустно. начни с функции которая получает R, расчитывает значения L,S,V и выводит их на экран. Вывод данных из функции организовать с помощью указателей или структуры.
чтобы значила эта фраза?
|
|
|
Записан
|
Странно всё это....
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #71 : 03-07-2008 08:17 » |
|
LogRus, тут ещё до этой загадочной фразы попадалово. ТЗ не полное, не указана погрешность измерения... А тут ваще труба! Чему "пи" равно? Издевается.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #72 : 03-07-2008 08:47 » |
|
думается, под "указателем или структурой" нонимается ссылка на структуру, переданная в функцию, хде (в функции) её (структуру) и заполнят
|
|
|
Записан
|
|
|
|
Ochkarik
|
|
« Ответ #73 : 03-07-2008 11:42 » |
|
Джон, однозначно) но это еще понятно. Пи можно и посчитать... а вот скажите... а кто сказал, что задание надо на Си выполнять?)))))
PS кто какие языки вообще знает?) я Basic, потом паскаль, потом ассемблер немного потом C и мало-мало С++.
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #74 : 03-07-2008 12:43 » |
|
Джон, однозначно) но это еще понятно. Пи можно и посчитать... Да посчитать не проблема. ВОПРОС - с какой точностью? а вот скажите... а кто сказал, что задание надо на Си выполнять?))))) А никто про С для этого задания пока и не говорил. зы это новая тема была, её просто с этой объединили. Посмотри на название топика с вопросом.
|
|
« Последнее редактирование: 03-07-2008 12:44 от Джон »
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Ochkarik
|
|
« Ответ #75 : 03-07-2008 13:32 » |
|
ага. понял. решение на МАТЛАБе: i = 1; A = zeros(3,6); for R=2:0.5:5 A(1,i) = 2*pi*R; A(2,i) = pi*(R*R); A(3,i) = 4/3*pi*(R*R*R); i = i+1; end disp(A);
PS 4 минуты ровно. с набивкой и исправлением синтаксических и дурацких ошибок) (просто матлаб как раз запущен был)
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
Apheyhys
Гость
|
|
« Ответ #76 : 03-07-2008 13:55 » |
|
с точностью до 2х знаков после запятой(это не так важно) на Си
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #77 : 03-07-2008 14:11 » |
|
а я объединил темы, потому что название было такое же И по странному совпадению, автор тоже такой же
|
|
|
Записан
|
|
|
|
Apheyhys
Гость
|
|
« Ответ #78 : 04-07-2008 12:30 » |
|
Вывод с помощью структуры: #include <math.h> #include <stdio.h> struct data //объявление структуры { float L, S, V; }; data func(float R) // функция func структуры data { data r; r.L = 2 * M_PI * R; r.S = M_PI * R * R; r.V = 4.0 / 3.0 * M_PI * R * R * R; return r; }
int main() { float R; for (R = 2.; R <= 5. ; R += 0.5) { data h= func(R); printf("L=%.3f\t S=%.3f\t V=%.3f\n", h.L,h.S, h.V); } return 0 ; }
|
|
|
Записан
|
|
|
|
Apheyhys
Гость
|
|
« Ответ #79 : 04-07-2008 12:31 » |
|
С помощью указателей: #include <math.h> #include <stdio.h> void func(float R, float *V, float *S, float *L) { *L = 2 * M_PI * R; *S = M_PI * R * R; *V = 4.0 / 3.0 * M_PI * R * R * R; printf("%.3f %.3f %.3f\n", *L,*S,*V); } float main() { float R,L,S,V; for (R = 2.; R <= 5. ; R += 0.5) { func(R, &L, &S, &V); } return 0; }
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #80 : 04-07-2008 12:35 » |
|
Apheyhys, при помощи указателей - лучше. Быстрее работать будет
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #81 : 04-07-2008 12:54 » |
|
Алексей1153++, а почему?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Ochkarik
|
|
« Ответ #82 : 04-07-2008 13:55 » |
|
Sla, поймет компилятор или нет, что структуру data не обязательно создавать локально в функции а потом копировать наружу. может не понять.
Алексей1153++, с другой стороны - передача лишних трех указателей через стек)
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #83 : 04-07-2008 17:07 » |
|
Sla, не понял твоего вопроса Считаю шуткой ))) Ochkarik, ну раз пошла такая пьянка - создать структуру , в которой все парамертры и хранятся, обычно это и удобно - массив и его размеры. Передавать только указатель на всю структуру - одЫн то есть
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #84 : 04-07-2008 18:31 » |
|
Алексей1153++, да какой нах массив, структура блин Алексей1153++, не путай праведное с грешным я не увидел выигрыша в быстродествии, ну разве что на копировании в стек/ из стека При сегдняшних "скоростях" нах это комку нужно. Но в данном случае, по крайней мере для меня, ни хрена не рубящего в сях, так нормательно.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #85 : 05-07-2008 05:21 » |
|
Sla, ничего я не перепутал Ну вот и будешь возвращать 222222-байтную структуру через стек ) А мне всего 4 байта надо для этого
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #86 : 07-07-2008 03:45 » |
|
Sla, поймет компилятор или нет, что структуру data не обязательно создавать локально в функции а потом копировать наружу. может не понять.
если достаточно свежий компилятор, то должен корректно использовать NRVO http://alenacpp.blogspot.com/2008/02/rvo-nrvo.htmlя бы передал ссылку на структуру а если бы нужно было бы вычислять одно значение типа long, то вернул бы по значению
|
|
|
Записан
|
Странно всё это....
|
|
|
Ochkarik
|
|
« Ответ #87 : 07-07-2008 08:29 » |
|
LogRus, ага, сенькс, интересно.... перечитаю повнмимательнее... хотя (ИМХО!) компилятору помогать - все равно дело благое)
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
Антон (LogRus)
|
|
« Ответ #88 : 07-07-2008 08:37 » |
|
Ochkarik, лучше помогать процессору
|
|
|
Записан
|
Странно всё это....
|
|
|
Ochkarik
|
|
« Ответ #89 : 07-07-2008 10:01 » |
|
LogRus, процессор - это святое))) PS и шине с памятью - тоже)
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
|