Сшка язык более низкого уровня чем Питон. В этом есть свои плюсы, но и есть свои минусы. Если тебе надо какую-то особую защиту в твоем приложении - тебе придется написать ее самому) Защиты от дурака не существует, зато есть быстродействие, более простой доступ к памяти и предположение что программист не дурак и знает что пишет Питон ориентирован на то чтоб тебе было максимально легко и комфортно писать программу, С ориентированна на то чтоб компьютеру было максимально легко и комфортно ее исполнять. На счет Инт и Хеллоу то это синтаксическая ошибка, такой код просто не скомпилируется. В отличии от Питона в С надо явно задавать тип переменных. На счет массивов - если ты не знаешь сколько элементов у тебя будет просто создай масив на количество элементво точно больше чем тебе может протребоватся(если не хочешь особо мучать свою голову), либо динамический масив, указатели, выделение памяти.... А вообще если ты в книге дочитал до структур, ЧИТАЙ ДАЛЬШЕ, там все это будет.... ------ Апаю свой вопрос на этапе линка Сшка(VC++ 2008 как и пробовал в 2005) выдает ошибки: Code: 1>Process.obj : error LNK2028: unresolved token (0A000009) "extern "C" struct HWND__ * __stdcall FindWindowW(wchar_t const *,wchar_t const *)" (?FindWindowW@@$$J18YGPAUHWND__@@PB_W0@Z) referenced in function "public: void * __clrcall CProcess::CreateGEProcess(void)" (?CreateGEProcess@CProcess@@$$FQ$AAMPAXXZ) 1>Process.obj : error LNK2019: unresolved external symbol "extern "C" struct HWND__ * __stdcall FindWindowW(wchar_t const *,wchar_t const *)" (?FindWindowW@@$$J18YGPAUHWND__@@PB_W0@Z) referenced in function "public: void * __clrcall CProcess::CreateGEProcess(void)" (?CreateGEProcess@CProcess@@$$FQ$AAMPAXXZ) Что ей так не нравится в моей програме, учитывая что по сути там всего одна гореинструкция hWindow=FindWindow(LPCWSTR("TForm"),0); ??? Пробовал создать консольное приложение, успешно линкует и запускается..... А в ВиндовсФормАпликейшн получается ошибка
Есть наверняка проверки дополнительные на ввод данных и создана система обработки ошибок try catch - поэтому не каждая вылетет.
Нету такой проверки, более того быть НЕ должно принципиально =) Если програма не вылетает или не появляется сыстем эррор это просто не тру Си программа Если програмеру такая проверка нужна - он должен написать ее сам! Тоесть считать текстовую переменную, переобразовать ее в число, если это не число сообщить об этом пользователю, а если число то ТОЛЬКО ТОГДА передавать это число на переменную Int Попробовал, не работает. ошибку выдает туже Подобные функции типа GetForegroundWindow тоже линкование не проходят.... Хэлп
А сортировать массивы в C можно? Я имею ввиду не методом прохождения в массиве и перекидыванием большего значения в конец, а просто какой-либо функцией?
в любом языке можно, если есть соответствующая либа. даже если кто напишет ее для асма, то и на асме можно будет - инклудь и ранай )
Почему этот код не даёт мне 10 случайных чисел? Code: # include <stdio.h> # include <stdlib.h> int main() { int a, i; i=0; while (i!=10) { int rand(a); i=i+1; printf("%g\n", a); } }
Code: #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int nStartValue = time(NULL); int i = 0; for (i = 0; i<10; i++){ srand(nStartValue); printf("%d\n",rand() % 100); } return 0; } Странно, srand не спасает.
Ой, ступил )) Вот рабочий код: Code: #include <stdio.h> #include <stdlib.h> int main() { int i; srand(9); for (i=0; i<20; i++) printf("%d\n", rand()); }
Ну и финальная версия Code: #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int nStartValue = time(NULL); int i = 0; srand(nStartValue); for (i = 0; i<10; i++){ printf("%d\n",rand() % 100); } return 0; }
ппц... на нубские вопросы, на которые в любом учебнике по С дают обширное описание, а Гугл выдает целую стопку ответов, ответ появляется сразу, даж находятся люди готовые код писать.... А чтоб отписать чето на реальную проблему, так все восновном молчат....
Как можно заменить двумерный динамический массив структурой? Понятно что как то так: Code: struct list{int element; list *sled, *vniz;}; А как ей пользоваться? Всмысли объявлять и записывать туда числа. У меня получается записать только один элемент, и от sled и vniz он почему то вобще не как не зависит
Доброго времени суток, возник такой вопросец: как можно удалить все пробелы из строки? ("5 3 1 2" = "5312")
n4e/\@ Code: #include<stdlib.h> #include<stdio.h> struct list_el { int val; struct list_el * next; }; typedef struct list_el item; void main() { item * curr, * head; int i; head = NULL; for(i=1;i<=10;i++) { curr = (item *)malloc(sizeof(item)); curr->val = i; curr->next = head; head = curr; } curr = head; while(curr) { printf("%d\n", curr->val); curr = curr->next ; } } ну это линейный список, как сделать то что тебе надо я думаю ты и сам сможешь теперь догадаться =)
Спасибо получилось. Только есть один вопрос. Code: curr->next = head; head = curr; Что происходит в этой части? т.е сначала мы присваиваем curr->next значение NULL Потом head = размеру выделенной памяти?