# Having Trouble w/ simple graphing program; need some help

• 04-11-2009
J2L703
Having Trouble w/ simple graphing program; need some help
Hey guys, I started on this simple plotting program, and everything seems to be fine with the program, no errors came up, but its not plotting the graph. Here's the code, and any suggestions would be more than appreciated.

Code:

```#include <stdio.h> #include <stdlib.h> #include <math.h> #define X_SEMIRANGE 3 #define Y_SEMIRANGE 2 int rtoi(double); double f(double); char graph[Y_SEMIRANGE*20+1][X_SEMIRANGE*20+1];/*store x and y points in a character array*/ int creategraph(); int plot(); int dispplot(); int main() {         creategraph();         plot();         dispplot();         getchar();                return 0; } int rtoi(double x) /*rounds the double values of f() to ints before storing points in the array*/ {         int i;         if(x >= 0)                 i = (int)(x + 0.5);         else /* x < 0 */                 i = (int)(x - 0.5);         return i; }  double f(double x) /*holds the function to be graphed. Can be easily overwritten*/ {              return cos(x*x); }                 int creategraph() {         int i,j;         for (i=0; i<=X_SEMIRANGE*20+1; i++)/*for loop defines where axes should be     placed*/         {                 for (j=0; j<=Y_SEMIRANGE*20; j++)                 {                         if(i==(X_SEMIRANGE*20/2))                                 graph[j][i] = '|';                         else if(j==(Y_SEMIRANGE*20/2))                                 graph[j][i]='-';                         else                                 graph[j][i]=' ';/*inserts empty spaces in the array, this will                 be replaced in the the graph*/                 }         } } int plot() {         int x_coor,y_coor;         double range;         double func;         for(range=-1*((X_SEMIRANGE*20)/2); range <=((X_SEMIRANGE*20)/2); range++)     /*for loop will plot the points onto graph, it starts from negative     X_SEMIRANGE and goes to the end of X_SEMIRANGE*/         {                 func = (f(range));/*units in x direction will increment by 1/10*/                 y_coor=(Y_SEMIRANGE)*20/2-rtoi(func);/*values are rounded and         plotted where the graph is*/                 x_coor=(X_SEMIRANGE)*20+range;                 if(y_coor >= 0 && y_coor <=20*Y_SEMIRANGE)                         graph[y_coor][x_coor]='o'; /*inserts 'o' where I previousle had             empty spaces in the previous for loop*/         } } int dispplot() {         int i,j;         for(j=0; j <= Y_SEMIRANGE*20; j++)/*checks if any graph gets cut off     by semirange*/         {                 for(i=0; i <= (X_SEMIRANGE*20); i++)                 {                         printf("%c",graph[j][i]);                 }                 printf("\n");         } }```
• 04-12-2009
`return 0;`