Wr5 の回答履歴
- C言語のプログラムみてください(isdigit)
質問は2つあります。 (1) scanf関数を使って、 時給: と表示されたところに一文字打ち込み、数字以外ならばもう一度 時給: と表示されるプログラムを作りたいです。 以下のプログラムなら、 isdigit関数は数字を渡せば0以外の数を返す(真)から、 while文の条件式(偽)のようにすれば、 ・数字を一文字うちこめばwhile文の条件式にあてはまらない、すなわち下のプログラムではisdigit(payment) != 0 となり、return 0; が実行され、プログラムが終わる ・数字以外を一文字打ち込めばwhile文の条件式が真となり、printf関数とscanf関数が実行されて入力待ち状態になる と思ったのですが、どうやら違うようです。実際には ・数字一文字打てばまた入力待ちになる ・数字以外を一文字打てば永遠にprintf関数とscanf関数が実行される のはなぜでしょうか。 #include <stdio.h> #include <ctype.h> int main(void){ int payment; do{ printf("時給[円]:"); scanf("%d",&payment); } while (isdigit(payment) ==0) ; return 0; } (2) 実際には、一文字の制限なく、数字以外の何かを入力したら、再び入力待ちになるプログラムを作りたいのですが、これはどうしたらいいのでしょうか。 つまり 時給: のところに数字以外ならまた 時給: となるようにしたいのです。お願いします。
- ベストアンサー
- C・C++・C#
- shitumon631
- 回答数4
- C言語のプログラムみてください(isdigit)
質問は2つあります。 (1) scanf関数を使って、 時給: と表示されたところに一文字打ち込み、数字以外ならばもう一度 時給: と表示されるプログラムを作りたいです。 以下のプログラムなら、 isdigit関数は数字を渡せば0以外の数を返す(真)から、 while文の条件式(偽)のようにすれば、 ・数字を一文字うちこめばwhile文の条件式にあてはまらない、すなわち下のプログラムではisdigit(payment) != 0 となり、return 0; が実行され、プログラムが終わる ・数字以外を一文字打ち込めばwhile文の条件式が真となり、printf関数とscanf関数が実行されて入力待ち状態になる と思ったのですが、どうやら違うようです。実際には ・数字一文字打てばまた入力待ちになる ・数字以外を一文字打てば永遠にprintf関数とscanf関数が実行される のはなぜでしょうか。 #include <stdio.h> #include <ctype.h> int main(void){ int payment; do{ printf("時給[円]:"); scanf("%d",&payment); } while (isdigit(payment) ==0) ; return 0; } (2) 実際には、一文字の制限なく、数字以外の何かを入力したら、再び入力待ちになるプログラムを作りたいのですが、これはどうしたらいいのでしょうか。 つまり 時給: のところに数字以外ならまた 時給: となるようにしたいのです。お願いします。
- ベストアンサー
- C・C++・C#
- shitumon631
- 回答数4
- yum updateでエラーが出たときの対処法
Transaction Check Error: file /usr/lib64/libpostproc.so.51.2.0 from install of ffmpeg-compat-0.6.6-1.el6.nux.x86_64 conflicts with file from package ffmpeg-libpostproc-0.6.5-1.el6.rf.x86_64 こんなエラーが表示されました。 調べてみたところ、64bitマシンなので重複しているi386のパッケージを削除するらしいのですが、i386がないので何を削除すればいいのか分かりません。 ご教示お願いします。
- 締切済み
- Linux系OS
- noname#204808
- 回答数3
- C言語のプログラムについて
三角形を判定するプログラムを作ったのですが直角三角形ができるはずがないのに直角三角形の判定が出てしまいます。簡単なことなのかもしれませんが自分ではわからなくなってしまったのでご指摘してもらいたいです。 #include<stdio.h> void tri(int x,int y,int z) { if((x*x==y*y+z*z)||(y*y==x*x+z*z)||(z*z==x*x+y*y)) { printf("これは直角三角形です。"); printf("これは三角形です。"); }else if((x+y>=z)||(x+z>=y)||(y+z>=x)) { printf("これは三角形ではありません。"); }else{ printf("これは三角形です。"); } } int main(void) { int e1,e2,e3; printf("3辺を入力してください"); scanf("%f,%f,%f",&e1,&e2,&e3); tri(e1,e2,e3); return(0); }
- ベストアンサー
- C・C++・C#
- yuzuyuzu772
- 回答数3
- コンパイルに失敗します。(RaspberryPi)
lwiringPiとOpenRTM-aistインストール済み ===コマンド===== gcc kasoku.c -lwiringPi =========== ======エラー=========== kasoku.c: In function ‘main’: kasoku.c:48:29: error: ‘rtc’ undeclared (first use in this function) kasoku.c:48:29: note: each undeclared identifier is reported only once for each function it appears in ========== ======ソースコード======== #include <stdio.h> #include <stdlib.h> #include <time.h> #include <unistd.h> #include <linux/i2c-dev.h> // I2C用インクルード #include <fcntl.h> #include <sys/ioctl.h> #include <wiringPi.h> // delay関数用にインクルード void L3GD20_readData(int *gyrodata, int fd); void L3GD20_write(unsigned char address, unsigned char data, int fd); unsigned char L3GD20_read(unsigned char address, int fd); void L3GD20_init(int fd); int main(int argc, char **argv) { int i2c_fd; // デバイスファイル用ファイルディスクリプタ // char *i2cFileName = "/dev/i2c-0"; // I2Cデバイスファイル名 char *i2cFileName = "/dev/i2c-1"; // RaspberryPiのリビジョンに合わせて変更 int i2cAddress = 0x6a; // L3GD20のI2Cアドレス int gyroData[3]; // ジャイロ3軸(x,y,z)データ格納用 printf("i2c Gyro(L3GD20) test program\n"); delay(500); // I2Cデバイスファイルをオープン if ((i2c_fd = open(i2cFileName, O_RDWR)) < 0) { printf("Faild to open i2c port\n"); exit(1); } // L3GD20用にセット if (ioctl(i2c_fd, I2C_SLAVE, i2cAddress) < 0) { printf("Unable to get bus access to talk to slave\n"); exit(1); } //デバイスイニシャライズ L3GD20_init(i2c_fd); // 1秒ごとに20回ジャイロデータを取得、表示 int i; for(i=0; i<20; i++){ // デバイスからデータ取得 L3GD20_readData(gyroData, rtc); // 取得したデータを校正して表示、1秒待ち printf("x, y, z : %5.2f, %5.2f, %5.2f\n",(float)gyroData[0]*0.00875,(float)gyroData[1]*0.00875,(float)gyroData[2]*0.00875); delay(1000); } return; } // L3GD20用 1バイト書き込みルーチン:addressで示すレジスタにdataを書き込む void L3GD20_write(unsigned char address, unsigned char data, int fd) { unsigned char buf[2]; buf[0] = address; buf[1] = data; if((write(fd,buf,2))!=2){ printf("Error writing to i2c slave\n"); exit(1);} return; } // L3GD20用 1バイト読み出しルーチン:addressで示すレジスタの値を読み出す // 戻り値がレジスタ値 unsigned char L3GD20_read(unsigned char address, int fd) { unsigned char buf[1]; buf[0] = address; if((write(fd,buf,1))!= 1){ // addressを一度書き込む所に注意 printf("Error writing to i2c slave\n"); exit(1);} if(read(fd,buf,1)!=1){ printf("Error reading from i2c slave\n"); exit(1);} return buf[0]; } // L3GD20用 ジャイロデータ読み出しルーチン:整数値配列へのポインタを使ってデータを受け渡す void L3GD20_readData(int *gyrodata, int fd) { unsigned char data[6]; // センサから3軸に対して2バイトずつデータを読み出す int i; for(i=0; i<6; i++){ data[i]=L3GD20_read(0x28+i,fd); } // 各数値を32bit幅の整数に整形する // センサの数値精度が16bit・2の補数表現での出力のため、シフトで加工 gyrodata[0]=((int)data[1]<<24|(int)data[0]<<16)>>16; gyrodata[1]=((int)data[3]<<24|(int)data[2]<<16)>>16; gyrodata[2]=((int)data[5]<<24|(int)data[4]<<16)>>16; return; } // L3GD20用 ジャイロデータイニシャライズルーチン void L3GD20_init(int fd) { unsigned char Data; printf("L3GD20 init seq. start\n"); // L3GD20 動作確認 // L3GD20の0x0fレジスタは常に0xd4にセットされているため動作確認ができる Data = L3GD20_read(0x0f,fd); if(Data != 0xd4){ printf("L3GD20 is not working\n"); exit(1);} delay(10); // レジスタへの書き込みチェックとイニシャライズを同時に行う printf("read OK, Now writing check...\n"); // 0x20レジスタに0x0fを書き込むことで動作させる L3GD20_write(0x20, 0x0f, fd); // 0x20レジスタに実際に0x0fが書かれたか確認 Data = L3GD20_read(0x20,fd); if(Data != 0x0f){ printf("Writing miss\n"); exit(1); } printf("Writing OK\n"); delay(10); return; } ===============
- 参考書3冊調べましたが!? 説明がありません!?
型 大きさ 記憶出来る範囲 char 1バイト 1文字-128~127 何で文字は”数字”ではないの・記憶できる範囲で!-128から始まっているのですか!!?? 文字のマイナス - の範囲はどんな概念なのでしょうか!? 宜しくお願いします。
- mantis 添付ファイル設定(VMware)
VMwareにlinuxOS(fedora)をインストールして、mantisをインストールした環境で、ファイルを添付することができません。また、システム管理>プロジェクト管理>ファイルの指定場所 に存在するディレクトリを指定しているのですが、「指定したフォルダが無い」旨のエラーメッセージが表示されます。 ・mantisのセットアップは運用している既存のmantisから設定ファイルをVWwareにコピーしています。 ・ファイルの指定場所 に設定しているディレクトリのオーナー・権限は、既に運用している環境に合わせています。 他に確認、変更すべき個所など、情報をお持ちでしたら、教えてください。 宜しくお願いいたします。
- 締切済み
- その他([技術者向] コンピューター)
- indigo45kk
- 回答数1
- 新宿署の普通の対応に有田議員激怒!何様?
■新宿署に警備強化を求めに行った。会議室も使わず署の受付けのテーブルで1時間の話し合い。対応したM警部は開いたノートに1行もメモをせず。横には腕を組んで立ったままの2人がいた。いまだ名前さえ明かさない。 https://twitter.com/aritayoshifu/statuses/495001850953728002 何コレ? 自分は何様だと思っいるの? そもそも自分の言動で招いたことでしょう?
- 消費者金融の審査について
消費者金融の審査について質問させて下さい。 先日知人から、消費者金融よりも銀行のカードローンの方が審査が通りやすいという話を聞きました。 今キャッシングする必要があって、どちらに申し込みしようか悩んでいるのですが、本当に銀行の方が審査が甘いのでしょうか? あまりたくさん申し込みするとブラックリストに載ると言われているのでできれば1社に絞りたいと思っています。
- 締切済み
- その他(マネー)
- hagetaka0112
- 回答数4
- LAMP(Linux・Apache等)の最適組合せ
LAMP(ランプ)における、OSであるLinux(CENTOS)、WebサーバであるApache HTTP Server、データベースであるMySQL、スクリプト言語であるPHPの最適バージョンの組み合わせを教えていただきたく。 いづれも最新バージョンの組み合わせで問題はないものでしょうか。 CENTOSのバージョンに規定される使用可能なPHPのバージョンなど、互いのバージョンが影響しあうことがあるかのように聞いています。 ならば、各4種(CENTOS Apache MySQL PHP)最適バージョンの組み合わせのリストがあるのでしょうか。
- ベストアンサー
- その他([技術者向] コンピューター)
- wai8605
- 回答数4
- C++でscanfは使えない?
お盆休みを利用してC言語の勉強をしようと思っています。 さわり程度にはわかるのですが、ポインタなどを本気で理解してみようと思っています。 PCにvisual studio2013が入っているので、2013のC++のプロジェクトを使って勉強していこうと思っているのですが、下記のように入力すると、scanfでエラーが出てしまいます。 #include "stdafx.h" #include <stdio.h> void main() { int n; scanf("%d",&n); } C++ではC言語の文法は全て使えると聞いていたのですが、ある程度例外もあるということなのでしょうか?それともなにか原因があるのでしょうか?
- ベストアンサー
- C・C++・C#
- satisfied999
- 回答数6
- PCゲームの作画サイズについて
この場をお借りいたします。 個人で18禁アドベンチャーゲームを制作しておりますが、脚本は完成してこれから キャラ、背景などの作画に入りますが、キャラの立ち絵などどのくらいの用紙サイズに 描けば良いのか判断に困っています。 ご存知の方、同じく個人やサークルでゲーム作成していらっしゃる方、 業界の関係者諸氏の皆様にアドバイス頂けましたら幸いと存じます。 すぐにでも作業を始めたいと考えておりますので、ご教示賜れましたら 何卒よろしくお願い致します。
- キャラクターの名前の付け方がわかりません。
ゲームなどのキャラクターの名前をどうしようか迷っていて考えても、しっくりくる名前が 思いつきません。 どのように名前を考えたらいいでしょうか?教えてください。 (ちなみに今のgooIDもしっくりきていません。)
- ヘリコプターラジコンをプレゼントしたい
ヘリコプタータイプのラジコンをプレゼントしたいのですが、 わりと遠くまで飛ぶので、1万円以内で丈夫なのがありましたら教えてください。 プレゼント相手は大人の男性です。
- 自己破産者はヤミ金しかお金を借りれない?
タイトル通りです。 自己破産して、3年になります。弁護士や司法書士に聞いても、答えはクレジットも分割払いも無理。 ヤミ金なら借してくれますが、利息が半端じゃないです。 何とかならないものでしょうか?
- 締切済み
- その他(暮らしのマネー)
- カズ
- 回答数9
- VS_EXPBSLN_x64_jpnとは?
Cドライブに VS_EXPBSLN_x64_jpn というのが2つあるのですが、これは何でしょうか? 削除しても大丈夫ですか?
- ベストアンサー
- C・C++・C#
- zsgtsllkfto
- 回答数1
- svnでマージ中止後からマージできない
trunkフォルダ内のsoftwareというフォルダ内でcpp builder2009で作成のプロジェクトファイルで作業をしているのですが、修正などの編集を行いたくなり、softwareのフォルダをtortoise svnのブランチ機能で/branch/20140722_softwareというフォルダでブランチして、修正作業はこのフォルダ内で行いました。 一通り修正作業が完了したので、/trunk/software/のフォルダ内にマージ機能を使って見ようと思いました。 とりあえず現在の/branch/20140722_software/内で変更のあったソースコード関連のテキストファイル関連のファイルを/trunk/software/フォルダ内にマージをしたかったのですが、dfmという拡張子のファイルでconfrictが起こったようで、Abort mergeでマージを中止させました。 そして、競合があったファイルをResolveというのを/trunk/software/に行って、再度マージを行おうとするとマージが完了しているという内容が出てきました。 /branch/20140722_software/の最新リビジョン /trunk/software/の最新リビジョン この2つのフォルダをDFという比較閲覧ソフトで確認してみたところ、/branch/20140722_software/で変更をかけたソースコードのテキストファイルは/trunk/software/フォルダ内にはコピーされていない状態でした。 tortoise svnのマージの操作方法はこちらのサイトを参考にして実施しました。 http://hide.xsv.info/tips/svnmanual/merge1/ マージの種類としては”リビジョン範囲のマージ”というのを使用しました。 また、”マージするリビジョンの範囲(specific range)”というのはshow log機能で、/branch/20140722_software/が作成されたrev128から最後の修正までのrev168までを指定しました。 Merge depth:というのはWorking copyを洗濯 Compare whitespaces という機能ボタンをONにしてマージをしました。 なお、現在/trunk/software/の最新リビジョンで、/branch/20140722_software/の最新リビジョンからのファイルでマージしようとしても、できない状態なのですが、 ”マージするリビジョンの範囲(specific range)” この時の設定で”URL to merge from”で設定している/branch/20140722_software/フォルダのshowlogを見ると、 Actions:Modified Already merged とすべての変更があったリビジョンに表示されています。 たぶんですが、/trunk/software/フォルダは/branch/20140722_software/の内容を既にマージしているということになっているようなのですが、これを取り消す方法などをありますでしょうか? また、このようなマージ機能の使用方法として適切な方法などご教示頂きまうよう、よろしくお願い致します。
- ベストアンサー
- その他([技術者向] コンピューター)
- techhouse
- 回答数1
- NATとNAPTについて教えてください
こんにちは、ネットワーク勉強中の初心者です、宜しくお願いします。 NATとNAPTについて教えてください 「NATの場合には、ルータ-はローカルアドレスからグローバルアドレスへの変換は、LAN内 の1個のPCからしか変換できない、そのためにPCのポート番号と組合せたNAPTというシステ ムがある」と参考書には書いてありますが、NATの場合でも、PCのローカルアドレスと組合せれ ば、NAPTと同じように複数のPCに対応出来る機能を持たす(1個のグローバルアドレスと複数 のローカルアドレスを組合せる)ことは出来るのではないでしょうか。 以上、宜しくお願いします。
- ベストアンサー
- ネットワーク
- westwest_2007
- 回答数3
- プログラミング 配列 最小値
プログラミング 配列 最小値 要素数が5の配列にキーボードから整数を入力し、最小値を表示する というプログラムのソースについてなんですが #include <stdio.h> int main(void) { int 1; int min, vc[5]; for(i = 0; i < 5; i++) vc(i) = i+1; ここまで自分で考えたんですが間違ってるでしょうか? 最小値を表示させる文がよくわからないのですが教えていただけないでしょうか
- NATとNAPTについて教えてください
こんにちは、ネットワーク勉強中の初心者です、宜しくお願いします。 NATとNAPTについて教えてください 「NATの場合には、ルータ-はローカルアドレスからグローバルアドレスへの変換は、LAN内 の1個のPCからしか変換できない、そのためにPCのポート番号と組合せたNAPTというシステ ムがある」と参考書には書いてありますが、NATの場合でも、PCのローカルアドレスと組合せれ ば、NAPTと同じように複数のPCに対応出来る機能を持たす(1個のグローバルアドレスと複数 のローカルアドレスを組合せる)ことは出来るのではないでしょうか。 以上、宜しくお願いします。
- ベストアンサー
- ネットワーク
- westwest_2007
- 回答数3