Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2008, 19:33   #1
Crazy Jimm
Новичок
Джуниор
 
Регистрация: 27.11.2008
Сообщений: 2
По умолчанию Задача для курсовой

Пожалуйста!!!! Помогите найти ошибку в ходе решения, т. к. программа выдаёт одни нули........ Не обращайте внимания на то, что нет ничего о файлах в тексте программы, я их потом пририсую, когда рабочая часть заработает в штатном режиме

Телефонный номер называется "шахматным", если его цифры набираются на телефонном кнопочном номеронабирателе ходом шахматного коня. Написать программу, подсчитывающую, сколько можно набрать различных шестизначных "шахматных" номеров, начинающихся с заданной цифры.
1 2 3
4 5 6
7 8 9
0
Программа должна выводить полученный номер на экран и в файл output.txt(C++)
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<fstream.h>
void st (int g,int m,int n,int i,int j,int c,int d,int k)
{
if (((i==m+2)&&((j==n+1)||(j==n-1)))&&(g!=(-1)))
{
c=i;
d=j;
k++; c++;c--;d++;d--;
}
if (((i==m-1)&&((j==n+2)||(j==n-2)))&&(g!=(-1))) { c=i;
d=j;
k++;
}
if (((i==m-2)&&((j==n+1)||(j==n-1)))&&(g!=(-1))) {c=i;
d=j;
k++;
}
if (((i==m+1)&&((j==n-2)||(j==n+2)))&&(g!=(-1))) {c=i;
d=j;
k++;
};

}
void main (void)
{
clrscr();
int a[4][3],i,j,k=1,a0,b,cifra,t,t1,t2,t3,t4,k 1,k2,k3,k4,kolvo=0,c,d,e,f,g,h,a1,b 1,a2,b2,p,q,u,v,w,x,y,z;
for(i=0; i<3; i++)
for(j=0; j<3; j++)
a[i][j]=k++;
a[3][0]=0;
a[3][1]=-1;
a[3][2]=-1;
printf("Vvedite ishodnuyu tsifru\n");
scanf("%d",&cifra);
for(i=0; i<4; i++)
for(j=0; j<3; j++)
if (a[i][j]==cifra) {
a0=i;
b=j;
}
t=0; k=0;
for(i=0; i<4; i++)
for(j=0; j<3; j++)
{
st(a[i][j],a0,b,i,j,c,d,k);
if (k>t) {
t++; k1=0; t1=0;
for(p=0; p<4; p++)
for(q=0; q<3; q++)
{
st(a[p][q],c,d,p,q,e,f,k1);
if (k1>t1) {
t1++; k2=0; t2=0;
for(u=0; u<4; u++)
for(v=0; v<3; v++)
{
st(a[u][v],e,f,u,v,g,h,k2);
if (k2>t2) {
t2++; k3=0; t3=0;
for(w=0; w<4; w++)
for(x=0; x<3; x++)
{
st(a[w][x],g,h,w,x,a1,b1,k3);
if (k3>t3) {
t3++; k4=0; t4=0;
for(y=0; y<4; y++)
for(z=0; z<3; z++)
{
st(a[y][z],a1,b1,y,z,a2,b2,k4);
if (k4>t4) {
t4++;
kolvo++;
}
}
}
}
}
}
}
}
}
}
printf("Kolichestvo combinatsyi ravno\n%d ",kolvo);
getch();
}
Deathstar

Последний раз редактировалось Crazy Jimm; 19.12.2008 в 20:31.
Crazy Jimm вне форума Ответить с цитированием
Старый 19.12.2008, 22:26   #2
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

Посмотри здесь с кодом на паскале
http://subscribe.ru/archive/comp.sof.../02004231.html
Reskov вне форума Ответить с цитированием
Старый 20.12.2008, 20:20   #3
Crazy Jimm
Новичок
Джуниор
 
Регистрация: 27.11.2008
Сообщений: 2
По умолчанию

Я чёт не врубился, чё они там делали, можно сразу на Turbo C++?
Да и номер там семизначный и положение нуля другое.......................
Deathstar
Crazy Jimm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Срочно нужны материалы для курсовой. Ольчик Свободное общение 1 10.11.2008 12:18
Нужна помощ с игрой для курсовой работи. Alexkr2002 Помощь студентам 3 10.03.2008 17:47
Задача для интеллекта offmonreal Общие вопросы C/C++ 1 24.01.2008 22:48