始めまして プログラム初心者のリョウといいます。
質問したいのは下の問題です。
キーボードから入力した整数を n とする。アルファベット順で英小文字 'a' から 数えて n 番目の文字を印字するプログラムを作成せよ。
% ./NthChar
Input integer: 9
The charater away from 'a' by 9 is 'j'.
%
この問題をとけと言われているのですが、ヒントや説明もなくてまずどうすればいいかわかりません。
教科書を見ても分からないので、どういう方法でプログラムすればいいか教えてくれないでしょうか?
osはlinuxです。
無題
Re:無題
それです。「gcc」がコンパイラの名前です。
Hello, World! はそれでOKです。
以下は惜しい。
printf("%c\n",0x65);なら 'e' が出力されます。
printf("%c\n",65);では 'A' です。
http://e-words.jp/p/r-ascii.html
上記のページにもある通り、ASCII文字コードの処理系ならば、
文字 文字コード
'a' 97
'b' 98
:
:
'j' 106
:
:
と並んでいます。例題では 9 を入力しており、'a'(97)に 9 足した 'j'(106) が印字されている、ということになります。
で、作りかけのものがあったら貼ってもらったほうが、回答が集まりやすいと思いますよ。
Hello, World! はそれでOKです。
以下は惜しい。
printf("%c\n",0x65);なら 'e' が出力されます。
printf("%c\n",65);では 'A' です。
http://e-words.jp/p/r-ascii.html
上記のページにもある通り、ASCII文字コードの処理系ならば、
文字 文字コード
'a' 97
'b' 98
:
:
'j' 106
:
:
と並んでいます。例題では 9 を入力しており、'a'(97)に 9 足した 'j'(106) が印字されている、ということになります。
で、作りかけのものがあったら貼ってもらったほうが、回答が集まりやすいと思いますよ。
Re:無題
一応作ってみました。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
fputs("Input integer:", stdout); fflush(stdout);
char s[2+1], c;
scanf("%2[0-9]%c", s, &c);
int i;
if (c != '\n' || (i = atoi(s)) >= 26)
return EXIT_FAILURE;
printf("The character away from 'a' by %d is '%c'.\n",
i, "abcdefghijklmnopqrstuvwxyz");
}
例によって、コメントなし、解説なしです。
自力で理解してください。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
fputs("Input integer:", stdout); fflush(stdout);
char s[2+1], c;
scanf("%2[0-9]%c", s, &c);
int i;
if (c != '\n' || (i = atoi(s)) >= 26)
return EXIT_FAILURE;
printf("The character away from 'a' by %d is '%c'.\n",
i, "abcdefghijklmnopqrstuvwxyz");
}
例によって、コメントなし、解説なしです。
自力で理解してください。