Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу Gcc-4.5.1 почему программа не работает
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
SeMiTr SeMiTr вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.11.2010
По умолчанию Gcc-4.5.1 почему программа не работает - 26.11.2010, 20:13

Написал программу на С++. По-моему она работает. Но на сервере (а там стоит компилятор gcc - GNU C 4.5.1) она не проходит ни одного теста (неверный ответ), в том числе 2 теста, которые даны для проверки решений (повторюсь: у меня на компьютере на них результат верный). Скачал архив gcc-4.5.1.tar.bz2. Распаковал. Помогите мне запустить его на моей задаче, поскольку там примерно 60000 файлов, и я не могу найти нужный (не могу запустить этот компилятор).
Ответить с цитированием
  (#2 (permalink)) Старый
Влад Влад вне форума
Специалист
 
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
По умолчанию 27.11.2010, 00:01

Что за программа-то, которую ты написал? Показывай код. Поглядим.....


The difference between theory and practice is that in theory, there is no difference between theory and practice, but in practice, there is.
Ответить с цитированием
  (#3 (permalink)) Старый
SeMiTr SeMiTr вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.11.2010
По умолчанию 01.12.2010, 20:32

Вот код.
#include <stdio.h>
#include <string.h>
//#include <conio.h>
char* strr(char* a){
char c[500];
int d, i;
d=strlen(a);
for(i=0; i<d; i++)
c[i]=a[d-i-1];
c[d]='\0';
return c;
}
char* raznost(char* a, char* b){
signed char c[500];
int da, db, i, bo, ia, ib, bl;
da=strlen(a); db=strlen(b);
if (db>da) bo=0;
if (db==da){
bo=0;
i=0;
while((a[i]==b[i]) && (i<da)) i++;
if(i==da) bo=1;
else{
if(a[i]>b[i]) bo=1;
if(a[i]<b[i]) bo=0;
}
}
if (db<da) bo=1;
if (bo==0)
{c[0]='-'; c[1]='\0';}
if (bo==1){
bl=0; ia=da-1; ib=db-1; i=0;
while(ia>=0){
c[i]=a[ia]-48;
if(ib>=0)
c[i]-=(b[ib]-48);
if(bl==1)
c[i]--;
if(c[i]<0){
c[i]+=10;
bl=1;
}
else bl=0;
c[i]+=48;
i++; ia--; ib--;
}
c[i]='\0';
i--;
while(c[i]=='0'){
c[i]='\0';
i--;
}
if(i==-1)
c[0]='0';
strcpy((char*)c,strr((char*)c));
}
return (char*)c;
}

char* summa(char* a, char* b){
char c[500];
int da, db, i=0, ia, ib, bl=0;
da=strlen(a); db=strlen(b);
ia=da-1; ib=db-1;
while((ia>=0) || (ib>=0) || (bl==1)){
c[i]=0;
if(ia>=0) c[i]+=a[ia]-48;
if(ib>=0) c[i]+=b[ib]-48;
if(bl==1) c[i]++;
bl=c[i]/10;
c[i]=c[i]%10+48;
ia--; ib--; i++;
}
c[i]='\0';
strcpy(c,strr(c));
return c;
}
int main(){
int i, n;
char m[1000][5], min[500], max[500], on[2];
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%s", &m[i]);
min[0]='0'; min[1]='\0';
max[0]='0'; max[1]='\0';
on[0]='1'; on[1]='\0';
for(i=n-1; i>=0; i--){
strcpy(min, summa(min, m[i]));
if(!((min[0]=='0') && (min[1]=='\0'))){
strcpy(min, summa(min, min));
strcpy(min, raznost(min, on));
}
strcpy(max, summa(max, m[i]));
strcpy(max, summa(max, max));
strcpy(max, summa(max, on));

}
printf("%s\n%s", min, max);
//getch();
return 0;
}
На сайте мне ответили, что компилятор выдаёт следующие предупреждения об ошибках:
015736.c :100 :2 : warning: no newline at end of file
015736.c: In function 'char* strr(char*)':
015736.c:5: warning: address of local variable 'c' returned
015736.c: In function 'char* raznost(char*, char*)':
015736.c:14: warning: address of local variable 'c' returned
015736.c: In function 'char* summa(char*, char*)':
015736.c:61: warning: address of local variable 'c' returned
015736.c: In function 'int main()':
015736.c:90: warning: deprecated conversion from string constant to 'char*'
015736.c:94: warning: deprecated conversion from string constant to 'char*'
Последние 2 я испрасвил (ввёл переменную on). Это не помогло. Первые 3 предупреждения, как я понимаю о том, что функция возвращает адрес.
Можно ли как то исправить программу не сильно меняя алгоритм?
P. S. Условие на сайте http://olympiads.ru/zaoch/2010/problems/zaoch.pdf, задача E.
Ответить с цитированием
  (#4 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию 10.12.2010, 19:05

Код не читабельный...

По-поводу gcc. Какая ОС? Если винда, возьми и поставь mingw. Если linux, ставь deb/rpm пакет.
По-поводу ворнингов. Напиши не char c[500]; а static char c[500]; Либо передавай через аргумент по ссылке. Например так:
Код:
void  strr(char *a, char *&c)
{
}
...
char a[500];
char *c = new char[500];
strr(a, c);
Только не забудь проверку на длину c поставить. И удалить потом его.
Ответить с цитированием
  (#5 (permalink)) Старый
SeMiTr SeMiTr вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.11.2010
По умолчанию Спасибо - 18.12.2010, 20:28

Спасибо за помощь
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не правильно работает программа.. Почему??? arthurfok Visual C++ 3 10.09.2011 01:18
Не правильно работает программа.. Почему??? arthurfok Вопросы начинающих программистов 0 08.09.2011 23:04
Почему программа сразу заканчивается Залим С/С++ 8 29.07.2011 15:46
Почему программа работает с ошибкой Leks100 Вопросы начинающих программистов 0 06.06.2011 16:49
Почему не работает COM порт Rickert Visual C++ 2 27.07.2006 11:09
GetDlgItemText почему не работает Slaia WinAPI 4 18.07.2006 18:39
Программа то работает, то не работает в зависимости от PC что с этим делать Kostafey Delphi 6 06.11.2005 02:42
Почему не работает imported_Dimok PHP 4 28.07.2005 12:00
Почему на работает написанная программа на С++ лисс Вопросы начинающих программистов 6 21.01.2005 00:12
Написанная программа не работает в отладчике и не работает в ОС Youri Visual C++ 0 28.05.2004 23:49
Почему написанная программа на С++ не работает вне среды разработки Youri Visual C++ 1 30.04.2004 14:16
Почему написанная программа на С++ работает только где есть С++ pinguin99 Visual C++ 2 17.02.2004 10:35



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов