ガイドコースCS 50トレーニング第2期第2週
19717 ワード
C言語
コンパイラ
私たちが自分で書いたコードは「ソースコード」と呼ばれています.これをバイナリ形式で記述された「マシンコード」に変換してこそ、コンピュータはそれを理解することができます.この操作は、コンパイラという名前のプログラムによって実行されます.
ソースコード->コンパイラ->マシンコード
砂箱コマンド
$ clang hello.c
clangという名前のコンパイラhelloでcはコンパイルコードを表す.a.outという名前のファイルを生成$ ./a.out
./コマンドでa.outプログラムを実行します(./から.現在のフォルダを表します)$ clang -o string string.c -lcs50
ここで-o stringはstringです文字列c.マシンコードoutを使用して格納されるコマンド-lcs 50は、-lというパラメータであり、「link」という追加の「cs 50」ファイルが含まれています.これにより、コンパイル時にcs 50ファイルに接続することができます.複雑なプロセスではなく、次のmakeコマンドを使用して簡単なコンパイルを実行できます.
$ make string
CS 50ライブラリでのget関数
フォーマット指定子
あふれ出る
ボウルのサイズには限度がありますが、限度を超えると問題が発生します.
チームタスク👩🏻💻
1.在庫量と売上高の求め問題
ぎじふごう
1受注番号
2既存在庫から受注数量を差し引いた在庫量
3残存在庫が0未満の場合
4在庫残量に応じて入力、出力してください
5それ以外の場合
6スイカの価格に付加税を加え、注文数量に既存の売上高を乗じて現在の売上高を加算
7既存在庫量を残存在庫量にリセット
8在庫残量が0より大きい場合
9列目に戻ります
そうでなければ
11終了
#include <cs50.h>
#include <stdio.h>
// 주문시 재고를 감소시켜준다.
int order(int product, int count){
product = product - count;
return product;
}
// 판매량을 계산한다.
int getSalesRate(int price, int count){
return price*count;
}
// 부가가치세를 계산한다.
int getTax(int amount){
return amount / 10;
}
// 오늘 하루 총 매출량에 대한 정보를 프린트해준다.
void printTodayCalculate(int orderCount, int originalCount, int afterOrderCount, int amount){
printf("---------------------------------\n");
printf("주문 건수 : %i\n", orderCount);
printf("기존 재고량 : %i\n", originalCount);
printf("남은 재고량 : %i\n", afterOrderCount);
printf("매출액(부가세 포함): %i\n", amount);
printf("---------------------------------\n");
if(afterOrderCount == 0){
printf("********************\n");
printf("**** sold out ! ****\n");
printf("********************\n");
}
}
// 남은 재고량과 주문량을 비교하여 주문 가능한지 확인한다
bool validOrderCount(int remainStock, int orderCount){
if(remainStock < orderCount) return true;
else return false;
}
int main(void){
int originalStock = 5;
int watermelonePrice = 10000;
int orderCount;
int amount;
int tax;
int totalPrice = 0;
int remainStock = originalStock;
while(remainStock > 0){
orderCount = get_int("주문시킬 양을 입력해주세요 : ");
if(validOrderCount(remainStock, orderCount)){
printf("주문량이 재고보다 많습니다 . 다시 주문해주세요 : ");
}else{
remainStock = order(originalStock, orderCount);
amount = getSalesRate(watermelonePrice, orderCount);
tax = getTax(amount);
totalPrice += amount + tax;
printTodayCalculate(orderCount, originalStock, remainStock, totalPrice);
originalStock = remainStock;
}
}
return 0;
}
2.預金額の問題
ぎじふごう
1預金金額の入力
2預金金額と預金金額に1.2を乗じた値を出力する
3終了
#include <cs50.h>
#include <stdio.h>
int main(void)
{
double myMoney = get_double("예금할 금액 : ");
double totalMoney = myMoney * 12;
printf("매달 %0.f원씩 1년 동안 저금할 경우 받게 되는 금액은 %0.f원 입니다.\n", myMoney, totalMoney * 1.2 );
}
3.曜日メニューの印刷に関する質問
ぎじふごう
月曜日を入力
2月曜日なら
3月曜日:清国味噌印刷
4そうでなければ火曜日なら
5火曜日:ビビンバ出力
6そうでなければ、水曜日なら
7水曜日:味噌汁
8そうでなければ木曜日なら
9木曜:出力カット麺
10金曜日がそうでなければ
11金曜日:冷麺を出力
12そうじゃない土曜日なら
土曜日
14いいえ、日曜日が日曜日なら
15日曜日:五三焼肉の輸出
16終了
#include <cs50.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
string answer = get_string("요일을 입력하세요 : ");
if(strcmp(answer, "월요일") == 0){
printf("월요일 : 청국장\n");
}
else if(strcmp(answer, "화요일") == 0 ){
printf("화요일 : 비빔밥\n");
}
else if(strcmp(answer, "수요일") == 0){
printf("수요일 : 된장찌개\n");
}
else if(strcmp(answer, "목요일") == 0){
printf("목요일 : 칼국수\n");
}
else if(strcmp(answer, "금요일") == 0){
printf("금요일 : 냉면\n");
}
else if(strcmp(answer, "토요일") == 0){
printf("토요일 : 소불고기\n");
}
else{
printf("일요일 : 오삼불고기\n");
}
}
レビュー🏻
私たちのグループはそれぞれのコードをアップロードすると、隊員たちがコメントするように行います.私のコードに対するコメントは「関数を使用して可読性を確保する」です.実際,単純なコードを記述する際には,必ず関数を使用するかどうか疑問視されるが,関数を使用するチームメンバーのコードを見ると,なぜ関数を使用するのか一目で分かる.関数や注釈処理を使用するチームメンバーのコードは確かに簡潔で分かりやすい.私のコードは私一人だけではないので、チームメンバーに理解してもらうために、関数の使用を生活化して、可読性と効率を高める練習をします.
Reference
この問題について(ガイドコースCS 50トレーニング第2期第2週), 我々は、より多くの情報をここで見つけました https://velog.io/@sainkr/부스트코스-CS50-코칭스터디2기-2주차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol