内容は、ポインタを使ったプログラムに書き換えるというものなのですが、うまくいきません……。
下記のプログラムになります。
// 左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