Си и DevC++ - C (СИ)
Формулировка задачи:
Всем привет! Проблема в следующем:
Есть код:
Все работает правильно(почти все), но что интересно, после цикла while(kl!=0) не хочет работать цикл for. Внутренний работает правильно, а внешний for (orbI=0;orbI<indexMAX;orbI++) проходит только один раз. Что не так, я никак не пойму. Вроде бы все правильно. Была мысль сделать через while, но это уже на самый крайний случай. Что может быть не так с этим циклом for?
#include <graphics.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <locale.h> #include <math.h> int midx, midy;//центр окна float angle=270.0,pov;//для поворота "прямой от центра float Y,X; //определение конечных коорлинат вершины графа int i=0,k=0,j=0; //индекс для структуры для свзи вершин, k,j - для считывания матрицы int kl=0;//количество вершин для прорисовки int matr[10][10];//матрица смежности, потом динамик int orbI=0,orbJ=0; struct index_graph//для связи матрицы смежности и визуального графа { int index; struct XY1 { float X,Y; }XY; }graphs[360]; void MID(void); //нахождение центра void RIS(float br);//изначальная прорисовка вершин, без ребер int main() { FILE *in, *out, *matrik; in=fopen("input.txt","r"); int gdriver = DETECT, gmode, errorcode; initgraph(&gdriver, &gmode, ""); MID();//центр окна находим //считывание из файла кол-ва вершин и матрицы для ребер printf("number of peek: "); fscanf(in,"%d", &kl); printf("%d\n",kl); printf("The matrix of weights:\n"); for (k=0;k<kl;k++) for (j=0;j<kl;j++) fscanf(in,"%d",&matr[k][j]); for (k=0;k<kl;k++) { for (j=0;j<kl;j++) printf("%d ",matr[k][j]); printf("\n"); } float br=360/kl; setcolor(8); bar(midx-320, midy-240, midx+320, midy+240); //делаем бэкграунд опр цвета setcolor(9); moveto(midx,midy); //поставили курсов в центр int indexMAX=kl; while(kl!=0)//рисуем кол-во веpшин { RIS(br); } //прорисовка ребер\\ for (orbI=0;orbI<indexMAX;orbI++) { for (orbJ=0;orbJ<indexMAX;orbJ++) printf("%d ",matr[orbI][orbJ]); printf("\n"); } getch(); //для задержки экрана closegraph(); fclose(in); return 0; } //0,0 - верхний, левый угол окна void MID(void) { midx = getmaxx() / 2; //определяем центра окна midy = getmaxy() / 2; } void RIS(float br) //прорисовка вершин и занесение в массив струтктур { //индекса и центра вершин(координаты) moveto(midx,midy); pov = angle / 180 * M_PI; Y=midy+(sin(pov))*150; graphs[i].XY.Y=Y; X=midx+(cos(pov))*150; graphs[i].XY.X=X; circle(X,Y,15); graphs[i].index=i; angle = angle-br; kl--; i++; }
АП! Проблема так и не решилась!
АП!
Решение задачи: «Си и DevC++»
textual
Листинг программы
float br = 360.0 / kl
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д