よろしければ

にょんた
記事: 5
登録日時: 11年前

よろしければ

投稿記事 by にょんた » 11年前

#include
int main(){
int y=0;
int c;
int m=0;
int g;

printf("西暦を入力してください\n");

while((c=getchar()) !='\n'){
if(c>='0' && c=1900 && y='0' && g=1 && m<=12){
printf("%d\n",m);
}

return 0;
}






この問題でいまこの中にあるものだけで、文字コードから年号を入力するプログラムをつくってるのですが数字意外の文字が入力されたらまた最初の入力に戻る繰り返し分にし、Enterが入力されたらgetcharをやめて全て数字だったときに1900〜2100の範囲内にはいっていなければ最初の入力に戻る繰り返し文をつくっています(T . T)

また空白空白1900空白空白Enterとかであればokで
空白1空白9空白0空白0Enterなどのいくつも数字がバラける場合は入力に戻るプログラミングを作りたいのですがどなたか教えていただけないですか(T . T)

アバター
みけCAT
記事: 6734
登録日時: 14年前

Re: よろしければ

投稿記事 by みけCAT » 11年前

にょんた さんが書きました:ungetcとかつかわないでもかけますか?(T . T)

まだgetcharとかしかしらなくて(T . T)
何が「とか」に相当するかがわかりませんが、ungetcを使わずに書き直してみました。

CODE:

	while((c=getchar())==' ' || (c|=0x1000,0));
	while(c=((c&0x1000) && c>=0?c&0xFF:getchar()),c>='0' && c=0&&(y=((y*10)/10==y?(y*10+c-'0'>=y?y*10+c-'0':-1):-1)),1):(c|=0x1000,0));
	while((c=((c&0x1000) && c>=0?c&0xFF:getchar()))==' ' || (c|=0x1000,0));
	while((c=((c&0x1000) && c>=0?c&0xFF:getchar()))=='\n'?0:((y=-1),c!=EOF));
	if(y>=1900 && y<=2100)printf("%d\n",y);

にょんた
記事: 5
登録日時: 11年前

Re: よろしければ

投稿記事 by にょんた » 11年前

ありがとうございます(T . T)

にょんた
記事: 5
登録日時: 11年前

Re: よろしければ

投稿記事 by にょんた » 11年前

#include
int main(){
int c;
printf("年を入力してください\n");
c=getchar();
while(c==' ' ){
}

c=getchar();
while(c>='0' && c<='9'){
}

c=getchar();
while(c==' '){
}



}

にょんた
記事: 5
登録日時: 11年前

Re: よろしければ

投稿記事 by にょんた » 11年前

とりあえずさいごのwhile分のなかでif文を使うみたいです(T . T)

多分年号判定のifはあととしてとりあえずかけるとこまでかいてみました

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前

Re: よろしければ

投稿記事 by Dixq (管理人) » 11年前

初めまして。
softyaさんも書かれていますが、プログラムの質問は質問掲示板
http://dixq.net/forum/viewforum.php?f=3
にてお願いします。

にょんた
記事: 5
登録日時: 11年前

RE: よろしければ

投稿記事 by にょんた » 11年前

黒猫のやつです(^^)