977 :
デフォルトの名無しさん:
キーボードから「c」を入力した時に「OK!」、それ以外の時には「NG!」と出力するプログラムはどう書けばいいですか?
if( キーボードから入力された文字 == 'c' ) puts("OK!");
else puts("NG!");
979 :
977:2005/12/04(日) 16:17:46
else if文でお願いしますorz
自分ではこう書きましたがダメでした。
#include<stdio.h>
int main(void)
{
int x;
scanf("%c",&x);
if(x=='c'){
printf("OK!\n");
}
else{
printf("NG!\n");
}
return 0;
}
980 :
デフォルトの名無しさん:2005/12/04(日) 16:38:07
>>979 intで宣言して%cで受けるのはおかしいだろがッ
とりあえずchar xに汁
981 :
977:2005/12/04(日) 16:58:59
>>980 出来ました。
でも、「cc」でも「OK!」と出てしまいます。
>>981 ・・・・scanfが何してるか考えてるか?
983 :
977:2005/12/04(日) 17:30:52
>>982 キーボードから数値を取り込む関数?
すみません。激初心者ですorz
985 :
977:2005/12/04(日) 17:42:37
char x;
scanf("%c",&x);
if(a=='c')
この辺が間違ってる様な希ガス
986 :
977:2005/12/04(日) 17:47:33
char x;
scanf("%c",&x);
if(x=='c')
こうか
char型は文字一文字が入るサイズのデータ型です。所謂1バイト。これは全処理系共通です。
scanfの%cは文字一文字を受け取ることを示します。
つまり
char c;
scanf("%c",&c);
は標準入力からcに一文字入れるということです。
989 :
977:2005/12/04(日) 17:55:26
#include<stdio.h>
int main(void)
{
char x;
scanf("%c",&x);
if(x=='c'){
printf("OK!\n");
}
else{
printf("NG!\n");
}
return 0;
}
ccと入力してもON!にするにはどうしたら?
990 :
977:2005/12/04(日) 17:56:16
↑NG!ですorz
#include <stdio.h>
#include <string.h>
int main(void){
char c[3];
fgets(c,sizeof(c),stdin);
if(c[strlen(c)-1]=='\n')
c[strlen(c)-1]='\0';
else{
puts("NG");
return 0;
}
if(!strcmp(c,"c")) puts("OK");
else puts("NG");
return 0;
}
冗長だと思ったら改行文字除去削って比較文字列に改行文字加えれ
993 :
977:2005/12/04(日) 18:40:46
>>991-992 すいません。そこまで習っていません。
習ったのは
printf関数
scanf関数
if文
else if文
for文
等です。
これらで
>>977は出来るはずなんだけどなぁ
>>993 配列は習った?
習っていないなら2文字以上の入力は考えなくてもいいはずだ
995 :
977:2005/12/04(日) 19:17:21
>>987 乙
でも,そしたら993のような香具師はスルーされるかもな
初心者は2chじゃなくて,K&R読んで勉強汁ってことか
>>993 これでおk
#include<stdio.h>
int main(void)
{
char x,y;
if((scanf("%c%[^\n]%*c",&x,&y)==1)&&(x=='c'){
printf("OK!\n");
}
else{
printf("NG!\n");
}
return 0;
}