ここから本文です

回答受付中の質問

知恵コレに追加する

C言語での質問です。 scanfで10個の適当整数を入手するこのときfprintfを使って...

monnhannmaxさん

C言語での質問です。
scanfで10個の適当整数を入手するこのときfprintfを使って10個の適当な整数を入力して下さいと表示するようにしたい
すべて入力したら入力した順番と逆に表示す
配列 定数を使用するこの条件でのプログラムをお願いします

違反報告

この質問に回答する

回答

3件中13件)
並べ替え:回答日時の
新しい順
古い順

 

pyon_naniwa2001さん

以前の、削除した質問への回答の
どこがどう気に入らないのか、もしくは、どこがどうわからないのか、
を書くこと。

念のため、
>fflushでバッファをクリアしてます。一応良くないですが、できます。
fflush(stdin) の動作は、未定義なので、
いいか悪いか、できるかできないか、は処理系次第。

>文字が入力されてもatoiで整数変換するので止まったりしません。
"atoi" は、結果の値が表現できない場合の動作は未定義なので、
安全を考えるなら"strtol"を使うべきだけど、
その前に、scanf(" %s", buff); を何とかしたほうがいい。

  • 違反報告
  • 編集日時:2010/5/4 16:39:08
  • 回答日時:2010/5/4 16:35:51

h_kskyさん

安全なやり方です。もし、文字が入力されてもatoiで整数変換するので止まったりしません。
#include<stdlib.h>をお忘れなく
//////////////////////////////////////////////////////////////
#include<stdio.h>
#include<stdlib.h>
#define INLEN 10

int main()
{
int i = 0, a[10];
char buf[30];
fprintf(stdout,"%d個の整数を入力してください\n", INLEN);
while(i < INLEN)
{
scanf(" %s", buf);
a[i] = atoi(buf);
i++;
}
printf("//////////////////////\n");
for(i = INLEN - 1; i >= 0; i--)
{
printf("%d\n", a[i]);
}
return 0;
}

const_unsigned_charさん

#include_<stdio.h>
#define_INPUTLENGTH____10
int_main()
____{
____int_a[10]_=_{0};

____fprintf(stdout,"%d個の整数を入力してください。\n",INPUTLENGTH);
____for(int_i_=_0_;_i_<_INPUTLENGTH_;_i_++)
________{
________fprintf(stdout,"%d_>",i);
________if(scanf("_%d",&a[i])_!=_1){printf("入力が不正です。\n");i--;}
________fflush(stdin);
________}
____fprintf(stdout,"\n%d個の整数入力が終了しました。\n<順表示>\n",INPUTLENGTH);
____for(int_i_=_INPUTLENGTH_-_1_;_i_>=_0_;_i_--)
________{
________fprintf(stdout,"%d_>%d\n",i,a[i]);
________}
____}


fflushでバッファをクリアしてます。一応良くないですが、できます。
あと、入力が正常でない場合、カウンタをマイナスして無理やりもう一度入力させてます

この質問に回答する

PR

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。

お客様自身の責任と判断で、ご利用ください。

話題のキーワード

[カテゴリ:C言語関連]

ただいまの回答者

17時06分現在

2557
人が回答!!

1時間以内に5,378件の回答が寄せられています。