ページ 11

はじめまして

Posted: 2008年7月31日(木) 21:07
by saito
はじめまして、学校の課題で8ビットのXNOR論理ゲート(否定排他的論理和)の動作をシミレーション(模擬動作)する関数 unsigned int xnor(unsigned int, unsigned int); を作成し入力した2つの正の整数aとbに対してXNOR論理演算を行うプログラムを作成せよ。なおa,bは16進数入力する。というのがでました。↓のようなプログラムを作ったのですが動きません。どうしたらよいかお願いします・・・
#include<stdio.h>
unsigned int xnor(unsigned int, unsigned int);
int main(void)
{
	int a,b;

	printf("16進数を入力してください\n:\n:");
	scanf("%4x",&a,&b );
	printf("%4x",xnor(a,b));
	return 0;
}
unsigned int xnor(unsigned int a, unsigned int b)
{
	return xnor=!(a^b);
}

Re:はじめまして

Posted: 2008年7月31日(木) 21:57
by たかぎ
scanfの書式文字列が間違っています。

Re:はじめまして

Posted: 2008年7月31日(木) 22:09
by saito
ありがとうございました。難しく考えすぎてました。

Re:はじめまして

Posted: 2008年7月31日(木) 22:11
by Hermit
unsigned int xnor(unsigned int a, unsigned int b)
{
	return xnor=!(a^b);
}
return ~a^b;
でいいんじゃない。
コンパイルエラーで、コンパイルさえ通らないと思います。