// http://d...content-available-to-author-only...o.jp/qa/question_detail/q1078453585
// questioner: tobe_scorpionさん
// answer: shira3
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#define Y_ORIGIN (10)
#define X_ORIGIN (5)
#define Y_WIDTH (10)
#define X_WIDTH (72)
#define Y_SIZE (Y_ORIGIN + Y_WIDTH + 1)
#define X_SIZE (X_ORIGIN + X_WIDTH + 1)
char graph[Y_SIZE][X_SIZE + 1]; /* +1 for '\0' */
void graph_init() {
int y;
memset(graph
, ' ', sizeof(graph
)); for (y = 0; y < Y_SIZE; y++) {
graph[y][X_ORIGIN] = '|';
graph[y][X_SIZE ] = '\0';
}
memset( &graph
[Y_ORIGIN
][X_ORIGIN
+ 1], '-', X_WIDTH
); strncpy(&graph
[Y_ORIGIN
- Y_WIDTH
][X_ORIGIN
- 5], "+1.0 +", 6); strncpy(&graph
[Y_ORIGIN
][X_ORIGIN
- 5], " 0.0 +", 6); strncpy(&graph
[Y_ORIGIN
+ Y_WIDTH
][X_ORIGIN
- 5], "-1.0 +", 6); strncpy(&graph
[Y_ORIGIN
+ 1 ][X_ORIGIN
+ 1 ], "0" , 1); strncpy(&graph
[Y_ORIGIN
+ 1 ][X_ORIGIN
+ X_WIDTH
/ 2 - 3], "180", 3); strncpy(&graph
[Y_ORIGIN
- 1 ][X_ORIGIN
+ X_WIDTH
- 3], "360", 3); }
void graph_plot(double x, double y) {
graph[Y_ORIGIN - lround(y * Y_WIDTH)][X_ORIGIN + lround(x * X_WIDTH / 360)] = '*';
}
void graph_print() {
int y;
for (y = 0; y < Y_SIZE; y++) {
}
}
int main(int argc, char** argv) {
double angle;
graph_init();
for (angle = 0; angle <= 360; angle += 360 / X_WIDTH) {
graph_plot
(angle
, sin(2 * M_PI
/ 360 * angle
)); }
graph_print();
return 0;
}
Ly8gaHR0cDovL2QuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLm8uanAvcWEvcXVlc3Rpb25fZGV0YWlsL3ExMDc4NDUzNTg1Ci8vIHF1ZXN0aW9uZXI6IHRvYmVfc2NvcnBpb27jgZXjgpMKLy8gYW5zd2VyOiBzaGlyYTMKCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxtYXRoLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCiNkZWZpbmUgWV9PUklHSU4gKDEwKQojZGVmaW5lIFhfT1JJR0lOICg1KQojZGVmaW5lIFlfV0lEVEggKDEwKQojZGVmaW5lIFhfV0lEVEggKDcyKQojZGVmaW5lIFlfU0laRSAoWV9PUklHSU4gKyBZX1dJRFRIICsgMSkKI2RlZmluZSBYX1NJWkUgKFhfT1JJR0lOICsgWF9XSURUSCArIDEpCmNoYXIgZ3JhcGhbWV9TSVpFXVtYX1NJWkUgKyAxXTsgLyogKzEgZm9yICdcMCcgKi8KCnZvaWQgZ3JhcGhfaW5pdCgpIHsKICAgIGludCB5OwogICAgbWVtc2V0KGdyYXBoLCAnICcsIHNpemVvZihncmFwaCkpOwogICAgZm9yICh5ID0gMDsgeSA8IFlfU0laRTsgeSsrKSB7CiAgICAgICAgZ3JhcGhbeV1bWF9PUklHSU5dID0gJ3wnOwogICAgICAgIGdyYXBoW3ldW1hfU0laRSAgXSA9ICdcMCc7CiAgICB9CiAgICBtZW1zZXQoICZncmFwaFtZX09SSUdJTiAgICAgICAgICBdW1hfT1JJR0lOICsgMV0sICctJywgWF9XSURUSCk7CiAgICBzdHJuY3B5KCZncmFwaFtZX09SSUdJTiAtIFlfV0lEVEhdW1hfT1JJR0lOIC0gNV0sICIrMS4wICsiLCA2KTsKICAgIHN0cm5jcHkoJmdyYXBoW1lfT1JJR0lOICAgICAgICAgIF1bWF9PUklHSU4gLSA1XSwgIiAwLjAgKyIsIDYpOwogICAgc3RybmNweSgmZ3JhcGhbWV9PUklHSU4gKyBZX1dJRFRIXVtYX09SSUdJTiAtIDVdLCAiLTEuMCArIiwgNik7CiAgICBzdHJuY3B5KCZncmFwaFtZX09SSUdJTiArIDEgICAgICBdW1hfT1JJR0lOICsgMSAgICAgICAgICAgICAgXSwgIjAiICAsIDEpOwogICAgc3RybmNweSgmZ3JhcGhbWV9PUklHSU4gKyAxICAgICAgXVtYX09SSUdJTiArIFhfV0lEVEggLyAyIC0gM10sICIxODAiLCAzKTsKICAgIHN0cm5jcHkoJmdyYXBoW1lfT1JJR0lOIC0gMSAgICAgIF1bWF9PUklHSU4gKyBYX1dJRFRIICAgICAtIDNdLCAiMzYwIiwgMyk7Cn0KCnZvaWQgZ3JhcGhfcGxvdChkb3VibGUgeCwgZG91YmxlIHkpIHsKICAgIGdyYXBoW1lfT1JJR0lOIC0gbHJvdW5kKHkgKiBZX1dJRFRIKV1bWF9PUklHSU4gKyBscm91bmQoeCAqIFhfV0lEVEggLyAzNjApXSA9ICcqJzsKfQoKdm9pZCBncmFwaF9wcmludCgpIHsKICAgIGludCB5OwogICAgZm9yICh5ID0gMDsgeSA8IFlfU0laRTsgeSsrKSB7CiAgICAgICAgcHJpbnRmKCIlc1xuIiwgZ3JhcGhbeV0pOwogICAgfQp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKICAgIGRvdWJsZSBhbmdsZTsKICAgIGdyYXBoX2luaXQoKTsKICAgIGZvciAoYW5nbGUgPSAwOyBhbmdsZSA8PSAzNjA7IGFuZ2xlICs9IDM2MCAvIFhfV0lEVEgpIHsKICAgICAgICBncmFwaF9wbG90KGFuZ2xlLCBzaW4oMiAqIE1fUEkgLyAzNjAgKiBhbmdsZSkpOwogICAgfQogICAgZ3JhcGhfcHJpbnQoKTsgICAgCiAgICByZXR1cm4gMDsKfQ==