問題タブ [cs50]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - tolower()関数がC99で機能しない
ハーバードのCS50アプライアンスを使用しており、文字を小文字にしようとしています。関数を使おうとしていtolower()
ますが、使おうとするとメッセージが表示されますimplicit declaration of function 'tolower' is invalid in C99
。なぜ私がこのメッセージを受け取るのか、誰もが詳しく説明します。stdio.h
と同様に含めましたstring.h
。
c - KERN_INVALID_ADDRESS には困惑しました
デバッガーを実行しようとすると、次のエラーが発生し続けます。
これが私のコードです:
エラーなしでコードをコンパイルでき、正常に動作します。デバッガーを実行してfor
ループにステップインし、数学が何をしているかを調べて理解を深めています。
c - 演算トラブル
これは一部の人にとっては非常に単純な解決策のように思えるかもしれませんが、私はしばらくの間それを理解しようとしていて、私を悩ませていました.
数学は私の得意分野ではありませんでした。と の場合、の値はchar c
最後に 79 になるはずです。p[i]=72 or 'H'
s2[i]=5
この操作は素晴らしく機能しますが、何が起こっているのかを理解しようとしているので、通常の計算機で実行しようとしましたが、間違った答えを出し続けています. 操作の正しい順序と値はどうあるべきですか?
これまでに動作する完全なソースコードは次のとおりです。
私がこの操作を行っている方法は次のとおりです。
私は自分の数学がオフであることを明らかに知っていますが、デバッガーsum = 14
を介して操作を実行したときに正しく実行していると思っていchar c = 79 or 'O'
ました。
c - 私の短いCコードの小さなバグ。なんで?
これが入力の90%で機能するのに、他の入力では機能しない理由がわかりません。それはあなたが変化で何枚のコインを取り戻すかをあなたに伝えることを意味します。ほとんどのテスト金額は問題なく機能しますが、4.20(または$ 4.20)を入力すると、23コインが返されます... 18コイン(16クォーターと2ニッケル)である必要があります。バグはどこにありますか?これが私のコードです:
c - 低い機能のグリッチ
私はCS50xクラスをやっていて、グリッチで立ち往生しています。私は彼らに何が起こっているのか尋ねましたが、誰も何が起こっているのかわかりませんでした。
小文字のfを印刷しようとすると、常に?として表示されます。引数およびabcdefghijklmnopqrstuvwxyz
入力として23を実行してみてください。それはめちゃくちゃです。コードは次のとおりです。
c - C配列は、桁数が異なると動作が異なります。なぜですか。
入力から数値を取得し、それを配列に入れて、その配列を出力するコードがあります。しかし、非常に奇妙な副作用があります。13桁の数字を入力すると、最後の桁が間違っています。15桁または16桁の数字を入力すると、すべて問題ありません。何が起こっているのか理解できません!コードは次のとおりです。numberDigitsは、数値の桁数に基づいて、12、14、または15のいずれかになります。
編集:私の番号はlonglongintとして初期化されます。桁数を確認するためのチェックは次のとおりです。
編集:最後の更新、はい、コードを更新しました。提案どおりに機能しますが、コードが機能しない理由を理解する必要があります。おそらくarray[12]は実際には13ではなく12の要素を保持していると思います。それを使用して要素array[12]にアクセスすると、メモリからランダムな値を取得しますが、array[14]またはarrayではこれが発生しないのはなぜですか。 [15]それぞれ15桁と16桁の数字。また、間違った位置で配列にアクセスしたときに、プログラムがクラッシュしないのはなぜですか。動作しない古いコードを含む以下の元の質問。
編集:ここに興味のある人のための全体のリストがあります。
c - C: " ' " 文字を含むユーザー入力文字列
ユーザー入力とユーザー Caesar cypher を読み取って暗号化する必要があります。しかし、ユーザー入力を読み込んでいるときに、たとえば次のように入力するとプログラムが終了しないという問題が発生しました: " ./caesar 3 I'm
" 問題は文字のよう'
です。プログラムは他の入力に対しても機能します。
c - C で関数からの戻り値を使用する
私の目標は、Vigenere 暗号を作成することです。argv からキーを取得し、ユーザーから文字列を取得してから、作成した関数を介してメッセージとキーを渡し、それらを組み合わせて新しい値を返し、印刷することでこれを実行しようとしています。何らかの理由で、キーを印刷しているだけです。新しい関数と、戻り値をどのように使用しようとしているかに関係があると思います。コードは次のとおりです。
c - do-while の無限ループ。JPEG ヘッダーを探しているはずです。
繰り返しますが、.raw ファイルから jpeg をコピーするプログラムを作成しようとしています。最初のヘッダー (0xffd8ffe0 または 0xffd8ffe1) が正常であることを検出し、ヘッダーを outptr に書き込み、jpeg データを 512 ビット チャンクでコピーします。do-while ループを記述して、512 ビット配列を読み取り、各配列をチェックして、(配列の最初の 4 バイトに) 新しいヘッダーが含まれていないことを確認します。 while ループを再び開始し、次のヘッダーをコピーしますが、別のヘッダーがそこにあることはわかっていても、別のヘッダーが見つからないようで、最後の 512 ビット チャンクの直後に来るはずです。
}
c - Xcodeへのヘッダーファイルの追加
XcodeにCライブラリを追加しようとしています。cs50.c
オンラインのCクラスからライブラリをダウンロードしましたが、zipファイルにはとの2つのファイルが含まれていますcs50.h
。
次のコマンドを使用してこれらのファイルをインストールしました。
プロジェクトをビルドすると、次のエラーメッセージが表示されます。
これは、プログラムでヘッダーファイルを参照する方法です。
パスを含めないと、ファイルが見つかりませんというメッセージが表示されます。
私のXcodeのバージョンはバージョン4.5.2(4G2008a)で、OSX10.7.5を実行しています。
提案をありがとう。
アップデート: