c角度が0度からスタートし、5度ずつ増やしながら360までのsin値、cos値を求め、sinカーブとcosカーブを一緒に描くプログラムを作成するという課題です。
表示の仕様は
(1)表示の1行目には「角度」、「サイン値」「cos値」の文字と横線のために「-」を51個連ねて表示する。左端が-1、右端が1に相当する。
(2)
2行目以降は、角度、サインの値、cosの値、およびグラフの縦線もじ「|」、サイン、cosのプロット文字を表示してカーブを描いて行く。なお、サインは「*」、cosは「#」でプロットする。
(3)角度の表示式は、%3d、サイン値とcos値の表示は%6.3fを指定する。値が負になると負号がつくので桁数が勝手に1つ増える。このため、何もしないと各行の|がずれてしまうのでcos値の表示式の後に¥tを入れる。
char pbuf[60]を用意して、そこに*、#や|を入れていくのですがどうやっていいかわかりません。教えてください。
C
1#include<stdio.h> 2#include<math.h> 3int main (void) 4{ 5 int i,j,x,k,y,t,genbun=5; 6 double rad,cosvalue,sinvalue,pai=3.14; 7 printf("==sin cos curve plot=="); 8 char pbuf[60] ; 9 pbuf[51]='\0'; 10 printf("\n角度\tsin値\tcos値\t"); 11 for (i=0;i<=50;i++){ 12 printf("-"); 13 } 14 for (j=0;j<=360;j+=genbun){ 15 rad=(pai*j)/180.0; 16 sinvalue=sin(rad); 17 cosvalue=cos(rad); 18 printf("\n%3d\t%6.3f" "\t%6.3f\t",j,sinvalue,cosvalue); 19 printf("|"); 20 x=(int)(sin(rad)*25+25); 21 for(k=0;k<x;k++) 22 printf(" "); 23 printf("*"); 24 y=(int)(cos(rad)*25+25); 25 for(t=0;t<=y;t++) 26 printf(" "); 27 printf("#"); 28 } 29 printf("\n"); 30 return(0); 31}
回答3件
あなたの回答
tips
プレビュー