Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Tari
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 8
#1

доработать программу

18.11.2013, 01:12. Просмотров 328. Ответов 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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include<iostream.h>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define word unsigned int
int i, j, n, p, xn, xk;
int flag[11];
word c[11][11], l[11];
char s[80], path[80][11];
int min(int n)
{
int i, result;
for(i=0;i<n;i++)
if(!(flag[i])) result=i;
for(i=0;i<n;i++)
if((l[result]>l[i])&&(!flag[i])) result=i;
return result;
}
 
word minim(word x, word y)
{
if(x<y) return x;
return y;
}
void main()
{
cout<<"Vvedite kolichestvo tochek: ";
cin>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++) c[i][j]=0;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
cout<<"Vvedite rasstoyanie ot x"<<i+1<<" do x"<<j+1<<": ";
cin>>c[i][j];
}
cout<<" ";
for(i=0;i<n;i++) cout<<" X"<<i+1;
cout<<endl<<endl;
for(i=0;i<n;i++)
{
printf("X%d",i+1);
for(j=0;j<n;j++)
{
printf("%6d",c[i][j]);
c[j][i]=c[i][j];
}
printf("nn");
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(c[i][j]==0) c[i][j]=65535; //бесконечность
cout<<"Vvedite nachalnuy tochku: ";
cin>>xn;
cout<<"Vvedite konechnuy tochku: ";
cin>>xk;
xk--;
xn--;
if(xn==xk)
{
cout<<"Nachalnaya I konechnaya tochki sovpadayt."<<endl;
getch();
return;
}
for(i=0;i<n;i++)
{
flag[i]=0;
l[i]=65535;
}
l[xn]=0;
flag[xn]=1;
p=xn;
itoa(xn+1,s,10);
for(i=1;i<=n;i++)
{
strcpy(path[i],"X");
strcat(path[i],s);
}
do
{
for(i=0;i<n;i++)
if((c[p][i]!=65535)&&(!flag[i])&&(i!=p))
{
if(l[i]>l[p]+c[p][i])
{
itoa(i+1,s,10);
strcpy(path[i+1],path[p+1]);
strcat(path[i+1],"-X");
strcat(path[i+1],s);
}
l[i]=minim(l[i],l[p]+c[p][i]);
}
p=min(n);
flag[p]=1;
}
while(p!=xk);
if(l[p]!=65535)
{
cout<<"Put: "<<path[p+1]<<endl;
cout<<"Dlina puti: "<<l[p]<<endl;
}
else
cout<<"takogo puti ne syshestvuet!"<<endl;
getch();
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2013, 01:12
Ответы с готовыми решениями:

Доработать программу
Как сюда добавить учет табуляции и переноса строки #include &quot;stdafx.h&quot;...

Доработать программу
День добрый. У меня есть программа, которая удваивает каждый символ, из...

Доработать программу
Помогите доработать программу-Даны натуральное n, целые числа a1, ..., an....

Доработать программу
Найти сумму ряда с точностью е=10^-3 ,общий член которого An = (-1)^n-1/n^n...

Доработать программу
Здравствуйте, преподавателю не нравится как выполнена задача,жалуется на...

4
dima55501
30 / 34 / 11
Регистрация: 14.07.2013
Сообщений: 146
18.11.2013, 01:42 #2
Переменным, стоящим после cin присвой те значения, которые нужно.
0
Tari
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 8
18.11.2013, 14:33  [ТС] #3
так и делал, но почему-то не работает программа после этого
0
dima55501
30 / 34 / 11
Регистрация: 14.07.2013
Сообщений: 146
19.11.2013, 16:52 #4
Tari, а можно увидеть что получилось?
0
Tari
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 8
26.11.2013, 20:32  [ТС] #5
вот что получилось, файл читает но почему-то программа после этого работает неправильно
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include<iostream.h>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
 
#define word unsigned int
int i, j, n, p, xn, xk;
int flag[11];
word c[11][11], l[11];
char s[80], path[80][11];
 
int min(int n)
 {
  int i, result;
  for(i=0;i<n;i++)
  if(!(flag[i])) result=i;
for(i=0;i<n;i++)
 if((l[result]>l[i])&&(!flag[i])) result=i;
 return result;
 }
 
word minim(word x, word y)
 {
if(x<y) return x;
 return y;
 }
 
 void main()
 {
 FILE *f;
 n=15;
 cout<<" ";
 for( i=0;i<n;i++) cout<<" X"<<i+1;
 cout<<endl<<endl;
   f=fopen("h.txt","rb");
  rewind(f);
  for ( i=0; i<50; i++)
   for (j=0; j<n; j++)  fread(&c[i][j],sizeof(c[i][j]),1,f);
  fclose(f);
 for(i=0;i<n;i++)
 {
 printf("X%d",i+1);
 for(j=0;j<n;j++)
 {
 printf("%6d",c[i][j]);
 c[j][i]=c[i][j];
 }
 printf("\n");
 }
 for(i=0;i<n;i++)
 for(j=0;j<n;j++)
 if(c[i][j]==0) c[i][j]=65535; //бесконечность
 cout<<"Vvedite nachalnuy tochku: ";
 cin>>xn;
 cout<<"Vvedite konechnuy tochku: ";
 cin>>xk;
 xk--;
 xn--;
 if(xn==xk)
 {
 cout<<"Nachalnaya I konechnaya tochki sovpadayt."<<endl;
 getch();
 return;
 }
 for(i=0;i<n;i++)
 {
 flag[i]=0;
 l[i]=65535;
 }
 l[xn]=0;
 flag[xn]=1;
 p=xn;
 itoa(xn+1,s,10);
 for(i=1;i<=n;i++)
 {
 strcpy(path[i],"X");
 strcat(path[i],s);
 }
 do
 {
 for(i=0;i<n;i++)
 if((c[p][i]!=65535)&&(!flag[i])&&(i!=p))
 {
 
if(l[i]>l[p]+c[p][i]);
 {itoa(i+1, s, 10);
  strcpy(path[i+1], path[p+1]);
  strcat(path[i+1], "-X");
  strcat(path[i+1], s);
  }
  l[i]=minim(l[i],l[p]+c[p][i]);}
 p=min(n);
 flag[p]=1;
 }
 while(p!=xk);
 if(l[p]!=65535)
 {
 cout<<"Put: "<<path[p+1]<<endl;
 cout<<"Dlina puti: "<<l[p]<<endl;
 }
 else
 cout<<"takogo puti ne syshestvuet!"<<endl;
 getch();
 }
0
26.11.2013, 20:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2013, 20:32

Доработать программу
Ниже рабочая программа, но надо сделать без использования циклов (кроме уже...

Доработать программу по итераторам
Используя разработанные классы, решить задачу. Содержимым элемента списка...

Структуры))доработать программу
Вот программа. Чуть не доделанная. Вот задание: Создать структуру, реализующую...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru