Форум программистов, компьютерный форум CyberForum.ru

Работа с файлом - C++

Восстановить пароль Регистрация
 
Predvestnik
 Аватар для Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
16.02.2011, 21:50     Работа с файлом #1
Добрый вечер. Нужно подсчитать количество точек, попадающих в круг радиуса 4 с центром в начале координат. На паскале такую прогу уже делал и сейчас по тем же принципам писал, только вот бред какой-то вышел.Что не так то сделал?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
void main()
{
    
    FILE *f,*g;
    f=fopen("lab7.txt","w");
    printf("Vvodie tochki,konec vvoda:0 0 \n");
    float x,y,n;
    do
    {
        scanf("%i",&x);
        scanf("%i",&y);
        fwrite(&x,sizeof(x),1,f);
        fwrite(&y,sizeof(y),1,f);
    }
    while((x!=0)&&(y!=0));
    fclose(f);
    f=fopen("lab7.txt","r");
    float r=0;
    printf("Koordinati, radius:\n");
    do
    {
        fread(&x,sizeof(x),1,f);
        fread(&y,sizeof(y),1,f);
        r=sqrt(pow(x,2)+pow(y,2));
        printf("%4i %4i %7.2f",x,y,r);
        printf("\n");
        if (r<=4) n++;
    } while (!feof(f));fclose(f);
    printf("Kol-vo tochek: %4i",n);
    getch();
}
Добавлено через 30 минут
прошлые проблемы решил, всё из-за невнимательности...
теперь такая проблема, я ввожу 3 точки, но при подсчёте радиусов программа мне выдаёт четыри, притом четвёртая равна последней введённой тоесть 0 0, как это исправить???

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "stdafx.h"
#include <math.h>
#include <conio.h>
 
void main()
{
    
    FILE *f,*g;
    f=fopen("lab7.txt","w");
    printf("Vvodie tochki,konec vvoda:0 0 \n");
    float x,y;
    int n=0;
    do
    {
        scanf("%f %f",&x,&y);
        fwrite(&x,sizeof(x),1,f);
        fwrite(&y,sizeof(y),1,f);
    }while((x!=0)&&(y!=0));
    
    fclose(f);
    g=fopen("lab7.txt","r");
    float r=0;
    printf("Koordinati, radius:\n");
    do
    {
        if(!feof(g)){
        fread(&x,sizeof(x),1,g);
        fread(&y,sizeof(y),1,g);
        r=sqrt(pow(x,2)+pow(x,2));
        printf("%4f %4f %7.2f",x,y,r);
        printf("\n");}
        if (r<=4) n++;
    } while (!feof(g));
    printf("Kol-vo tochek: %4i",n);
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2011, 21:50     Работа с файлом
Посмотрите здесь:

Работа с файлом C++
C++ Работа с файлом
C++ Работа с файлом
C++ C++. Работа с файлом
Работа с файлом C++
Работа с файлом C++
Работа с файлом C++
Работа с файлом C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.02.2011, 21:56     Работа с файлом #2
цикл ввода
C
1
2
3
4
5
6
7
8
9
10
while(1)
{
    scanf("%f %f",&x,&y);
    if( x && y )
    {
         fwrite(&x,sizeof(x),1,f);
         fwrite(&y,sizeof(y),1,f);
    }
    else break;
}
Добавлено через 2 минуты
+ в 29 строке надо
C
1
r=sqrt(pow(x,2)+pow(у,2));
Predvestnik
 Аватар для Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
16.02.2011, 21:59  [ТС]     Работа с файлом #3
спасибо я какраз только сам так сделал)))
Yandex
Объявления
16.02.2011, 21:59     Работа с файлом
Ответ Создать тему
Опции темы

Текущее время: 20:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru