内容は、ポインタを使ったプログラムに書き換えるというものなのですが、うまくいきません……。
下記のプログラムになります。
// 左1文字シフト関数 void slshift(char str[/url]) { char t; int len, i; t = str[0]; len = strlen(str); for (i = 0; i < len - 1; i++) { str = str[i + 1]; } str = t; } // 右1文字シフト関数 void srshift(char str[/url]) { char t; int len, i; len = strlen(str); t = str[len - 1]; for (i = len - 1; i > 0; i--) { str = str; } str[0] = t; } // 文字列のn文字シフト関数 void strshift(char str[/url], int n) { int an, j, len; if (n < 0) { an = -n; } else { an = n; } len = strlen(str); if (len != 0) { an %= len; } for (j = 0; j < an; j++) { if (n < 0) { slshift(str); } else { srshift(str); } } }
もう一つの課題は、
整数配列xとxの先頭から格納されているデータの個数nを受け取り,xの平均値と標準偏差を計算してavrとstdに返す関数を作れ.関数内では配列要素を全てポインタで表現せよ.
void stats(int *x, int n, double *avr, double *std);
ネットでポインタについて調べてみましたが、どうも上手くいきません……
今の状況は、こんな感じです
void slshift(char *str) { char *t; t = str; while (*str++ != '\0') { str = str + 1; } str = t; }
解答まではいかなくていいですので、助言をお願いしますm(_ _)m