Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
В помощь студенту по С или C++ |

15.12.2009, 20:18
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
В помощь студенту по С или C++
Примерно такую прогу обычно сдают студенты 2-го курса.В прогу входит открытие файла, записать в файл массива, чтение из файла в массив и сортировка массива методом перебора(Прога написанна на Turbo C++)
Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream.h>
#include <time.h>
void write_file(FILE *f, char *file_name,int size);
int main()
{
int a;
FILE *f1;
srand(time(NULL));
char *file_name = "file_in.txt";
char array[256];
printf("Random massiv:\n");
f1 =fopen(file_name,"wr");
if(f1==NULL)
printf("Error open file");
else
{
for(int i=0;i<256;i++)
{
a = rand() % 100;
array[i] = a;
if(i>0&&i<254)
{
fprintf(f1,"%d,",array[i]);
printf("%d,",array[i]);
}
if(i==255)
{
fprintf(f1,"%d.",array[i]);
printf("%d.",array[i]);
}
}
fclose(f1);
}
getch();
write_file(f1,file_name,256);
clrscr();
return 0;
}
void write_file(FILE *f,char *file_name, int size)
{
FILE *file_out;
file_out = fopen("file_out.txt","w");
f = fopen(file_name,"r");
int int_from_file,i=0;
char c;
char mass[256];
while(fscanf(f,"%d %c",&int_from_file,c)!=EOF)
{ mass[i] = int_from_file;
i++;
}
int min;
int temp;
for(int r=0;r<size-1;r++)
{
min = r;
for(int j=r+1;j<size;j++)
{
if(mass[j]<mass[min])
{
min=j;
}
}
temp = mass[r];
mass[r] = mass[min];
mass[min] = temp;
}
fclose(f);
if(file_out==NULL)
printf("Error open file");
else
printf("\nOtsortirovanii massiv\n");
for(int d=0;d<size;d++)
{
if(d>0&&d<size)
{
fprintf(file_out,"%d,",mass[d]);
printf("%d,",mass[d]);
}
if(d==size-1)
{
fprintf(file_out,"%d.",mass[d]);
printf("%d.",mass[d]);
}
}
fclose(file_out);
getch();
}
Если кому что не понятно , пишите ответим 
Последний раз редактировалось cheater_man; 17.12.2009 в 12:46..
|
|
|

15.12.2009, 20:26
|
|
Познающий
Регистрация: 21.06.2008
Сообщений: 57
Провел на форуме: 633209
Репутация:
44
|
|
разве в С++ ф-ция main не должна возвращять int число?
|
|
|

15.12.2009, 20:37
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
Провел на форуме: 9257858
Репутация:
979
|
|
Сообщение от ASQX
разве в С++ ф-ция main не должна возвращять int число?
Если void,то нет.
|
|
|

16.12.2009, 00:16
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме: 2868783
Репутация:
414
|
|
Вообще не могу понять зачем эта тема?
Уже есть тема для помощи студентам с лабами, хватит засирать раздел!
|
|
|

16.12.2009, 04:54
|
|
Новичок
Регистрация: 02.12.2009
Сообщений: 19
Провел на форуме: 131508
Репутация:
8
|
|
Вообще, по правилам языка С++ , если функция main() имеет тип возвращаемого значения void, то она должна заканчиваться так exit (0), где 0-код возврата
|
|
|

16.12.2009, 13:54
|
|
Новичок
Регистрация: 28.07.2008
Сообщений: 25
Провел на форуме: 139293
Репутация:
0
|
|
вообще то по стандарту с++ функция main должна возвращать int ..
|
|
|

16.12.2009, 23:23
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
Нет стандарта у main, и не обязательно она возвращать int.
Например могу еще и вот так написать
Код:
void main(void)
{
....
}
И это не будет считаться за ошибку, т.к main это главный поток программы и он должен быть не обязательно int
А эта тема создана для студентов  и всё на это 
|
|
|

17.12.2009, 01:40
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
Нет стандарта у main, и не обязательно она возвращать int.
Есть.
Только вот в нем написано should.
Т.е. "рекомендуется", которое применено к компилеру.
|
|
|

17.12.2009, 02:30
|
|
Новичок
Регистрация: 16.12.2009
Сообщений: 3
Провел на форуме: 1488
Репутация:
5
|
|
По стандарту всё-таки int. Есть (плохие) компилеры, которые это глотают, но вообще это некорректно. Программа должна хоть что-то отдавать ОС, т.е. обычно 0 в случае отсутствия ошибки - это весьма удобно, так как exit code тоже можно обработать уже в самой ОС, например так:
Код:
./proga
if [ $? -ne 0 ]; then
echo "Shit happens";
fi
|
|
|

17.12.2009, 12:45
|
|
Постоянный
Регистрация: 13.11.2009
Сообщений: 437
Провел на форуме: 709575
Репутация:
17
|
|
Сообщение от vdm
По стандарту всё-таки int. Есть (плохие) компилеры, которые это глотают, но вообще это некорректно. Программа должна хоть что-то отдавать ОС, т.е. обычно 0 в случае отсутствия ошибки - это весьма удобно, так как exit code тоже можно обработать уже в самой ОС, например так:
Код:
./proga
if [ $? -ne 0 ]; then
echo "Shit happens";
fi
Да всетаки соглашусь, что main должна быть int. Гуглил на счет main и в некоторых стaтьяx пишут:
Все таки это не правильно! Действительно правильней будет так:
Код:
int main()
{
...
return 0;
}
-> http://ru.wikipedia.org/wiki/C%2B%2B
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|