ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Программа для универа
  #1  
Старый 23.12.2005, 01:32
Аватар для Meister
Meister
Участник форума
Регистрация: 13.10.2005
Сообщений: 210
Провел на форуме:
371736

Репутация: 14
По умолчанию Программа для универа

Я прошу помочь решить одну проблему, но проблема не типа "Решите мне задачу", просто до меня не дойдет как сделать следующее:
"Дан текстовый файл с неизвестным количеством вещественных чисел Написать функцию для определения есть ли среди них число у которого равны сумма цифр целой и дробной части"
У меня получилось сделать так, чтобы прграмма отвечала на каждое число, равны ли его сумма дробной и целой части:

#include <conio.h>
#include <fstream.h>
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>

void main()
{
char fni[256];
const N = 100;
cout<<"enter filename of input file\n";
cin>>fni;
double* pn=new double[N];
fstream fi;
fstream fo;
fi.open(fni,ios::in);
for(int i=0;(!fi.eof())&&(i<N);i++)
{
fi>>pn[i];
char a[20],b[20];
sprintf(b,"%f",pn[i]-((int)pn[i]));
char* tb=b;
tb+=2;
while(*tb=='0') tb++;
sprintf(a,"%d",(int)pn[i]);
int ia=0,ib=0;
char tmp[2];
for(int j=0;j<20;j++)
{
tmp[0]=a[j]; tmp[1]='\0';
ia+=atoi(tmp);
}
for(int j=0;tb[j]!='\0';j++)
{
tmp[0]=tb[j]; tmp[1]='\0';
ib+=atoi(tmp);
}
if(ia==ib) fo<<printf("DA - EST");
else printf("NET - NETU");
}
delete [] pn;
fi.close();
fo.close();
getch();
}

Потом, я парился парился и допарился, что выводит ответ один, но лишь для первого числа в файле:

#include <conio.h>
#include <fstream.h>
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>

int main()
{
char fni[256];
const N=100;
cout<<"enter filename of input file\n";
cin>>fni;
double* pn=new double[N];
fstream fi;
fstream fo;
fi.open(fni,ios::in);
for(int i=0;(!fi.eof())&&(i<N);i++)
{
fi>>pn[i];
char a[20],b[20];
sprintf(b,"%f",pn[i]-((int)pn[i]));
char* tb=b;
tb+=2;
while(*tb=='0') tb++;
sprintf(a,"%d",(int)pn[i]);
int ia=0,ib=0;
char tmp[2];
for(int j=0;j<20;j++)
{
tmp[0]=a[j]; tmp[1]='\0';
ia+=atoi(tmp);
}
for(int j=0;tb[j]!='\0';j++)
{
tmp[0]=tb[j]; tmp[1]='\0';
ib+=atoi(tmp);
}
if(ia==ib) printf("DA - EST");
else printf("NET - NETU");
getch();
return 0;
}}

А мне нужно, чтобы программа не по первому числу отвечала, а анализируя все. Никто не возьмется меня поправить?
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа Rainbow Rex@ Расшифровка хешей 7 21.12.2005 20:42
программа для чистки словорей!! Dread Болталка 2 17.12.2005 20:55
Программа для автоматоав КСИ Zakary Разное - Покупка, продажа, обмен 2 28.09.2005 14:02
ПРОГРАММА "АНТИБАН" Киллер АнтиАдмин 7 09.04.2005 12:00



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ