要素数335の文字配列の各要素に,要素番号の下一桁の数字を代入する.
ただし,要素番号が3の倍数,もしくは,いずれかの桁に3を含む場合には3を代入する.
また,作成した文字配列の各要素を,改行キーを押すごとに1文字ずつ画面表示する.
という問題についてです.
要素番号をnとして以下のようにプログラムを書いてみたのですが,実行してみると
0: 0
というものが無限に表示されてしまいました.
しかし,どこを直せばよいかがわからないので,教えていただけたら幸いです.
また,改行キーを押すごとに一文字ずつ画面表示されるようにするにはどうすればよいかもわからないので,教えていただきたいです.
よろしくお願いします.
以下に私が書いたプログラムを貼らせていただきます.
viエディタを利用しています.
#include <stdio.h>
int main(void)
{
int n;
for(n = 0; n <=335; n++){
if(n % 3 == 0)
printf(“%d: 3\n”, n);
else if(n % 10 == 3)
printf(“%d: 3\n”, n);
else if(n = n / 10, n % 10 == 3)
printf(“%d: 3\n”, n);
else if(n = n / 100, n % 10 == 3)
printf(“%d: 3\n”, n);
else
printf(“%d: %d\n”, n, n % 10);
}
return 0;
}
No.3ベストアンサー
- 回答日時:
こんなトコかなぁ。
/* ここから */
#include <stdio.h>
int main(void){
char str[335];
int i;
for (i = 0; i < 335; i++) {
if ((i % 3 == 0) || (i % 10 == 3) || (i / 10 == 3) || (i / 100 == 3)) {
str[i] = '3';
} else {
str[i] = (i % 10) + '0';
}
}
for(i = 0; i < 335; i++) {
getchar();
printf("%c ", str[i]);
}
printf("\n");
return 0;
}
/* ここまで */
ただ、最近の、utf-8で文字列フツーに扱えるコンパイラだと、このコードだと上手くいかないんですよね。
あくまで、「かなりやっつけ」な解です。
ありがとうございます!
配列をどのように用いればいいのかも悩んでいたのですっきりしました.
一つ質問なのですが,エンターを押すと次の式が出るようになる部分は,
2つ目のforの中の getchar(); のところでいいのでしょうか...
回答いただけたら嬉しいです.
No.4
- 回答日時:
> エンターを押すと次の式が出るようになる部分は,
> 2つ目のforの中の getchar(); のところでいいのでしょうか
はい、その通りです。
昔のゲームのStartrekとかのC言語版とかでお馴染みのテクニックですね・・・あんまりスマートにも思えませんが。
スタートレック (マイコンゲーム):
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%BF …
マイコンソフト PC-8001 「スタートレック」:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語 3 2022/11/09 13:27
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
10個出力で改行したいのですが...
-
printf で二進表示を行いたい。
-
コマンドプロンプトがすぐ消える
-
C言語で四則演算を使って結果が...
-
CTRL+Dでループを抜けるには
-
switch分のケースを範囲数?に...
-
文字と数字の判定について
-
unsigned int型について
-
C言語で、「自然数nを入力し、n...
-
getcharの連続について
-
入力したお金の金額からお札の...
-
8人分のテストの点数を入力し、...
-
int型 00 を表示するのに0とな...
-
C言語で 選択肢: |?| |?| |?| 1...
-
数当てゲームを作っているのですが
-
【プログラム】2の倍数で表示非...
-
アドレスの比較について
-
C言語プログラミングで「コマン...
-
C言語の数値入力
-
改行について 1行に何個かづ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
既約分数の表示プログラム
-
printf で二進表示を行いたい。
-
8人分のテストの点数を入力し、...
-
printf( " %2d", p * q );
-
strcmp
-
CTRL+Dでループを抜けるには
-
4の倍数を論理演算で表す。。
-
%P と %X の違い
-
【C言語教えてください】sin波...
-
c言語でAからZまでを表示する...
-
cshの文字列操作(0埋め)
-
万年カレンダーのC言語プログラ...
-
コマンドラインに出力した文字...
-
scanfに文字が入力されたときに...
-
ホームページをC言語で作りたい...
-
改行について 1行に何個かづ...
-
コンパイルエラーについて
-
台形の面積を求めるプログラム
-
なぜgccはstdio.hをインクルー...
おすすめ情報