#include <stdio.h>
#include <string.h>
void gyakumoji(int mojiretu)
{
int i, n, z;
int seimoji[100];
do{
scanf(%d, &seimoji[n]);
n++;
}
while(seimoji[n] != '\n');
z = strlen(n);
for(i = 0;i < n;i++)
mojiretu[i] = seimoji[n - i];
return (0);
}
int main(void)
{
printf(文字列を入力してください。\n);
return (0);
}
mojiretu[i] = seimoji[n - i];の文に
1、配列または、ポインタでない変数に添字が使われました。
2、'=' : 左のオペランドが、左辺値になっていません。
というエラーが出ます。
どうぞご指摘お願いします。
「mojiretu」はint型の変数ですよね?
mojiretu[i]にはなりえないわけですが…
mojiretuはただの変数で配列ではないんですか?
はぁ?
void gyakumoji(int mojiretu)
^^^^^^^^^^^^
mojiretu はただの int でしょ?
まぁそれが解決してもまだまだ問題は山積みのような・・・
> int i, n, z;
> int seimoji[100];
> do{
> scanf(%d, &seimoji[n]);
> n++;
> }
> while(seimoji[n] != '\n');
このwhileからどうやって抜けるやら。
> z = strlen(n);
このnは何であるやらと。
ご参考: C++版
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string line;
cout << input :;
getline(cin, line);
reverse(line.begin(), line.end());
cout << result: << line << endl;
return 0;
}
----- 実行結果 -----
input :Hello, world
result:dlrow ,olleH
#include <stdio.h>
#include <string.h>
char *gyakumoji(char mojiretu[])
{
static char seimoji[80];
int i, n;
n = strlen(mojiretu);
for(i = 0;i < n;i++)
mojiretu[i] = mojiretu[n - i - 1];
mojiretu[n] = '\0';
return (mojiretu);
}
int main(void)
{
char z[80];
printf(文字列を入力してください。\n);
scanf(%s, z);
printf(%s\n, gyakumoji(z));
}
このプログラムでは実行したときに
yamaguchi
ihcuguchi
とちゃんと逆にしてくれません。どうしてでしょうか?
> for(i = 0;i < n;i++)
> mojiretu[i] = mojiretu[n - i - 1];
> とちゃんと逆にしてくれません。どうしてでしょうか?
最初の i が 0 の時の処理だけでも自分で分かりませんか?
mojiretu[0]にいきなり代入されては、もともとmojiretu[0]に有ったデータはデータはどう
なるのでしょう?
.../03010007.txt の最後のヒントを読んで
くれなかったのかなぁ。しくしく。
解決しました。ありがとうございました。