• ベストアンサー

ヒントを教えて欲しいです

2と1が同時に表示されてしまうのです。 キーボードから2個の整数を読み込み、それらの和と差がともに偶数であれば整数の2を表示し、いずれか一方のみが偶数の場合は1を表示し、それ以外の場合は整数の0を表示するプログラムを作れ #include<stdio.h> main() { int A,B; printf("Enter an integer:"); scanf("%d",&A); printf("Enter an integer:"); scanf("%d",&B); if((A+B)%2==0,(A-B)%2==0){ /* 偶数ならば */ printf("2\n"); } if((A+B)%2==0){ /* 偶数ならば */ if((A-B)%2==0) /* 偶数ならば */ printf("1\n"); } else{ /* 奇数ならば */ printf("0\n"); } }

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

コンパイルエラーが出てたいませんか? >if((A+B)%2==0,(A-B)%2==0) こういうのはできませんよ。 複合条件式の書き方を勉強してください(&&、||)。 それと(A+B)、(A-B)を繰り返すよりも、 wa=(A+B); sa=(A-B); と最初に計算してその結果を使用したほうがスマートです。

wing444
質問者

補足

コンパイルエラーは出ていません。 複合条件式勉強します。 最初に計算するんですね 書き直してみます。

その他の回答 (1)

  • DRArusOK
  • ベストアンサー率27% (19/69)
回答No.2

0で初期化する。 和が偶数だったら1を足す。 差が偶数だったら1を足す。 表示する。

wing444
質問者

補足

足すんですか…? プログラミングは初心者で授業の宿題であまりわからないんです…

関連するQ&A

  • ヒントをください!

    ある課題があるんですが、 「ユーザに好きな整数を10個入力させ、その最小値と最大値を出力するプログラムを書いてください。if文を使ってください。」 このプログラムを作る際のヒントをください。ぜんぜんわからないので。。。 答えは作ってから見たいので。。。 よろしくおねがいします。 10個数字を入力させるプログラムは作りました。 #include <stdio.h> int main(void){ int c,e,r,u,t,v,d,a,p,n; printf("好きな整数を10個入力してください。\n"); printf("整数を入力:"); scanf("%d",&c); printf("整数を入力:"); scanf("%d",&e); printf("整数を入力:"); scanf("%d",&r); printf("整数を入力:"); scanf("%d",&u); printf("整数を入力:"); scanf("%d",&t); printf("整数を入力:"); scanf("%d",&v); printf("整数を入力:"); scanf("%d",&d); printf("整数を入力:"); scanf("%d",&a); printf("整数を入力:"); scanf("%d",&p); printf("整数を入力:"); scanf("%d",&n); return 0; } このようになりました。

  • エラーが出ます。

    「キーボードから受け取った整数が偶数か奇数かを表示するプログラムを、switch 文を使って作成する」 という問題で、プログラムを作ってみたのですが、エラーが出ます。 caseの後の%2==0 %2!=0の部分が間違っていると思うのですが、これは何と書けばいいでしょうか?偶数と、奇数の場合の条件の書き方はどうやるのでしょう? 回答お願いします。 #include<stdio.h> int main(void) { int a; scanf("%d",&a); switch(a) { case %2==0 : printf("%dは偶数です\n",a); break; case %2 != 0 printf("%dは奇数です\n",a); break; } }

  • Cプログラムの条件文  if,else if ,elseについて教えてください。

     こんにちは。課題でどうしても解らないところがあるので教えてください。  次のプログラムは一桁の数(0~9)が偶数(EVEN)か奇数(ODD)かを表示するものです。  #include <stdio.h> main() { int num; printf("please enter a number[0~9]:"); scanf("%d",&num); if (num % 2 ==0) printf("%d is an EVEN. \n", num); else printf("%d is an ODD. \n", num); } というプログラムをコンパイルして実行すると、ちゃんと実行されるのですが、10以上の数や負数を入力しても動作してしまうんです。  そこで0~9の範囲以外の数が入力されていないかを確認して、その場合を偶数、奇数の判断や表示をせず、エラーメッセージだけを表示して終了するプログラムに書き換えなくてはならないのですが、まず  (1)判断する条件式(変数numの内容が0~9の範囲にあるか)で、num >= 0 && num <= 9 をどこに入れればいいか。  (2)please enter a number[0~9]: 8 8 is an EVEN.  (←例えば8を入れると普通こうなるのですが)   please enter a number[0~9]:12   ERROR:12 is in out of range!!  (←0~9以外ののものだったら、この様にエラー表示にしたいのです。  私が考えたプログラムは  #include <stdio.h> main() { int num; printf("please enter a number[0~9]:"); scanf("%d",&num); if (num % 2 ==0) printf("%d is an EVEN. \n", num); if else printf("%d is an ODD. \n", num); else(num >= 0 && num <= 9) printf("ERROR:%d is in out of range!! \n",num); } という風に考えたのですがコンパイルできません。プログラミング初心者なので、書いている内容も解りにくいんですが、どうかよろしくお願いします。

  • 間違いを指摘して頂けませんか?(切実)

    私は大学で春からプログラミングの基礎を学び始めたプログラミング初心者です。 今、if関数のネストについて習っていて、if関数のネストを利用したプログラム作成の課題が出て、一応書いてはみたのですがどうしても上手くいきません。下に課題の内容と私の書いたプログラムを書いておきますので、間違っている箇所を指摘、修正して貰えませんか?宜しくお願い致します。 【課題】 次の項目に従ってプログラムを作成せよ。 (1)整数型の変数noを宣言 (2)「整数を入力してください。」と表示して改行 (3)キーボードから入力された値を変数noに代入 (4)入力された値が ・偶数で4で割り切れる数なら「整数○は偶数で4で割り切れます。」 ・偶数で4で割り切れない数なら「整数○は偶数だけど4で割り切れません。」 ・奇数で3で割り切れる数なら「整数○は奇数で3で割り切れます。」 ・奇数で3で割り切れない数なら「整数○は奇数だけど3で割り切れません。」 の○の位置にnoの値を当てはめて表示した後、改行 #include <stdio.h> main(void) { int no; printf("整数を入力してください。\n"); scanf("%d",&no); if(no/2==0,no%4==0){ printf("整数%dは偶数で4で割り切れます。\n",no); }else{ if(no/2==0,no%4!==0){ printf("整数%dは偶数だけど4で割り切れません。\n",no); }else{ if(no/2!=0,no%3==0){ printf("整数%dは奇数で3で割り切れます。\n",no); }else{ printf("整数%dは奇数だけど3で割り切れません。\n",no); } } } } ※なお、上のプログラムは全て左詰めになってしまっていますが、質問する上で表示出来なかっただけですので…実際にはちゃんと然るべき箇所にTabキーによる余白は入れてあります。

  • ヒントを教えて欲しいです

    C言語でヒントを教えて欲しいです。 C言語初心者です。 短縮できるとこを教えてほしいです。 キーボードから一文字入力し、それが特殊記号(空白や&等)であればPrintable Symbol、数字であればNumber、大文字の英字であればUpper-case Letter、小文字の英字であればLower-case letterと表示し、それ以外の場合はOthersと表示するプログラムを書け。 #include<stdio.h> main() { char a; printf("Enter a letter:"); scanf("%c",&a); if((a>=32&&a<=47)||(a>=58&&a<=64)||(a>=91&&a<=96)||(a>=123&&a<=126)) printf("Printable Symbol\n"); else if((a>=48&&a<=57)) printf("Number\n"); else if((a>=65&&a<=90)) printf("Upper-case Letter\n"); else if((a>=97&&a<=122)) printf("Lower-case letter\n"); else printf("Other\n"); }

  • Cのプログラミングを勉強中です。

    Cのプログラミングを勉強中です。 Aの値のBに対する割合を表示すしたいのですが、以下のように記述してもうまくいきません。 どこを直したらよいか教えていただけますか。 #include <stdio.h> int main(void) { int n1 , n2 ; printf("二つの整数を入力してください。\n"); printf("整数A:"); scanf("%d", &n1); printf("整数B:"); scanf("%d", &n2); printf("Aの値はBの%d%%です。\n" , n1 / n2 * 100 ); return(0); }

  • フローチャートについての質問です

    #include <stdio.h> int main(void) { int n1, n2, n3; printf ("数値1: "); scanf ("%d",&n1); if (n1%2==1){ printf ("数値1は奇数\n"); } else { printf ("数値1は偶数\n"); } printf ("数値2: "); scanf ("%d ",&n2); printf ("数値3: "); scanf ("%d",&n3); if (n2 > n3) printf ("数値2の方が数値3より大きい\n"); else if (n2 < n3) printf("数値2より数値3の方が大きい\n"); else printf("数値2と数値3は等しい\n"); return 0; } をフローチャートに直したいのですが方法が解りませんどなたか親切なかたお教えください JIS規格のものでお願いします

  • 使用できない文字

    //bはaの約数かどうかを求めるプログラムです。 #include<stdio.h> main(){ int a,b,amari; printf("2つの整数を入力してください。"); scanf("%d",&a); scanf("%d",&b); printf("整数a=%d",a); printf("整数b=%d",b); amari=a%b; if(c==0){ printf("BはAの約数です。\n"); }    else{ printf("BはAの約数でありません。\n"); } } というプログラムを作ったのですが、 Cmachineでコンパイルすると、 エラー:q3-2:24行目:使用できない文字が現れました。 とでます。一体なにが間違っているのでしょうか? またputsとprintfという関数がありますが、 どちらを使ったほうがいいのでしょうか?putsは \nを書かなくても改行してくれるので、putsのの方が いいのでしょうか?お願いします。

  • C言語 %表示

    二つの整数値を読み込んで、前者が後者の何%かを表示するプログラムを作成したいです。 #include<stdio.h> int main(void){ int no1,no2; printf("整数を入力してください。\n"); printf("整数A:"); scanf("%d",&no1); printf("整数B:"); scanf("%d",&no2); printf("Aの値はBの値の%f%%です。\n",(double)(no1/no2)); } Aの値はBの値の0.0000%です。となってしまいます。 上記のプログラムの訂正をお願いします。

  • またプログラムの修正おねがいします。

    キーボードから出力した3つの整数について、以下の判定を行い 判定結果を出力するプログラムを作成する。 全部同じ 2つ同じ バラバラ * 論理演算子を使わないこと。 * インデントを正しくつけること。 #include<stdio.h> void main(void) { int a,b,c; printf("a --->"); scanf("%d",$a); printf("b --->"); scanf("%d",$b); printf("c --->"); scanf("%d",$c); if(a==b){ if(b==c){ printf("全部同じ\n"); } } else if(a!=b){ if(b==c){ printf("2つ同じ"); } else if(a==c){ printf("2つ同じ"); } else{ printf("バラバラ"); } } } 最近c言語を習ったばっかりなのでわからないとこだらけです。よろしくお願いします。

専門家に質問してみよう