超入門者コード

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

超入門者コード

#1

投稿記事 by » 18年前

#include <stdio.h>

int main(void) {
	int num1,num2;
	char ch;

	do{
	printf("1:足し算 2割り算\n");
	ch = getchar();
	while(ch !='1' && ch != '2');

	if(ch == '1') {
		printf("二つの整数を入力\n");
		scanf("%d",num1);
		scanf("%d",&num2);
		printf("足し算=%d",num1 + num2 );
	}else {
		printf("整数入力\n");
		scanf("%d",&num1);
		scanf("%d",&num2);
			if(num2 != 0){
				printf("割り算=%d",num1/num2);
			}else if(num2 == 0){
				printf("エラーです\n");
			}
	}
	return 0;
	}
:\vc\Practice1\ex01.c(32) : fatal error C1004: 予期せぬ EOF が検出されました。
なぜ? }の数?

Blue

Re:超入門者コード

#2

投稿記事 by Blue » 18年前

> }の数?
そうです。
多分
>	do{
>	printf("1:足し算 2割り算\n");
>	ch = getchar();
>	while(ch !='1' && ch != '2');
の対応が取れていないから。

また
>scanf("%d",num1);
&が抜けているような。

Re:超入門者コード

#3

投稿記事 by » 18年前

}が足りません。

do{
 printf("1:足し算 2割り算\n");
 ch = getchar();
}while(ch !='1' && ch != '2');

ここ

Re:超入門者コード

#4

投稿記事 by » 18年前

ありがとうございます!!
もっとこうしたほうがいいと思うところありますか?

keichan

Re:超入門者コード

#5

投稿記事 by keichan » 18年前

>もっとこうしたほうがいいと思うところありますか?
getchar() は int型を返すので
char ch;

int ch;
にしなくてはいけません。

管理人

Re:超入門者コード

#6

投稿記事 by 管理人 » 18年前

別の「電卓作成中」のトピに電卓プログラムのサンプルを書いておりますので
よければそちらも参考にしてください。

Re:超入門者コード

#7

投稿記事 by » 18年前

int i;

i = strcmp(str1,str2);
if(!i){
	printf("文字列は等しい\n");
}else if(i < 0){
	printf("%sは%sより小さい\n",str1,str2);
}else 
	printf("%sは%sより大きい\n",str1,str2);
}
文字列を比較している部分のコードですが、if(!i)というのが分かりません。!iというのはiではないなら、ということですよね?またstrcmpも説明があやふやですごく分かりにくいです。
ここでは何をしているのですか?

box

Re:超入門者コード

#8

投稿記事 by box » 18年前

> if(!i)というのが分かりません。

if (!i)
  ↓
iが偽ならば
  ↓
ここで、偽はゼロと等価
  ↓
つまり、iがゼロならば、という意味
  ↓
if (!i) は、if (i == 0) と等価

Re:超入門者コード

#9

投稿記事 by » 18年前

boxさんありがとうございます。理解できました。

閉鎖

“C言語何でも質問掲示板” へ戻る