プログラミングC: 投稿 13 – 構造のタイプ – 構造体
コンテンツ
構造体の型にアクセスするための最も簡単な方法は、生徒の一例です. クラス 100 学生は各学生は、自分の名前と受験番号が含ま. クラスのデータを入力します。. ヘヘ. あなたが使用する方法を考える 2 プレート: 1 配列名, 1 アレイ·学生コード右. 右, その方法がない間違った...しかし、それでは次の要求...完成ティ学期を見てみましょう, 各生徒のスコアを入力してください, 各学生は含まれて 10 被験者 (数学, 信じる, 化学, 物理学,...). Giờ bạn thấy sao nào… Dùng 12 ああ...しませんでした配列, hãy dùng 構造のタイプ. ちょうど型構造 1 プレートのみ.
1. 構造のタイプ
アレイの場合, 多くの情報を保存することができ、同じデータ型を持つ. しかし、このタイプの構造で、私たちは情報複数の異なるデータタイプを格納することができます.
1.1 VD開口部
//code by nguyenvanquan7826 #include <stdio.h> #include <stdlib.h> // khai bao struct struct sinhvien { char MSV[20]; // ma sinh vien char hoten[30]; // ho ten sinh vien double toan, tin, anh; // cac diem toan, tin, anh }; /* Hay thay tat ca fflush(stdin); thanh __fpurge(stdin) khi ban lam tren linux*/ int main() { /* khai bao 2 bien sv1, sv2 va 1 mang * CNPMK10A gom 100 sinh vien */ struct sinhvien sv1, sv2, CNPMK10A[100]; printf("Nhap du lieu cho sv1:\n"); printf("MSV: "); fflush(stdin); gets(sv1.MSV); printf("Ho ten: "); fflush(stdin); gets(sv1.hoten); printf("Diem toan, tin, anh: "); fflush(stdin); scanf("%lf %lf %lf", &sv1.toan, &sv1.tin, &sv1.anh); printf("Nhap du lieu cho sv2:\n"); printf("MSV: "); fflush(stdin); gets(sv2.MSV); printf("Ho ten: "); fflush(stdin); gets(sv2.hoten); printf("Diem toan, tin, anh: "); fflush(stdin); scanf("%lf %lf %lf", &sv2.toan, &sv2.tin, &sv2.anh); printf("\n --------- Thong tin sinh vien -----\n"); printf("%-20s %-30s %-7s %-7s %-7s\n", "MSV", "Ho ten", "Toan", "Tin", "Anh"); printf("%-20s %-30s %-7.2lf %-7.2lf %-7.2lf\n", sv1.MSV, sv1.hoten, sv1.toan, sv1.tin, sv1.anh); printf("%-20s %-30s %-7.2lf %-7.2lf %-7.2lf\n", sv2.MSV, sv2.hoten, sv2.toan, sv2.tin, sv2.anh); return 0; }
結果:
Nhap du lieu cho sv1: MSV: DTC1 Ho ten: Pham Thi Ha Diem toan, tin, anh: 9 9 8 Nhap du lieu cho sv2: MSV: DTC2 Ho ten: Nguyen Van Quan Diem toan, tin, anh: 9 9 8 --------- Thong tin sinh vien ----- MSV Ho ten Toan Tin Anh DTC1 Pham Thi Ha 9.00 9.00 8.00 DTC2 Nguyen Van Quan 9.00 9.00 8.00
この例の冒頭, chúng ta có rất nhiều điểu phải bàn 🙂
1.2 工事の種類構造, 可変構造を宣言
上記の例として、, 構築する 1 構造の種類我々は構文に従う:
struct TenKieuCauTruc { Khai báo các thành phần của kiểu; };
非常によく似たスタイルである構造のその後型の後 1 正規型 (int型, フロート, タンク,...) そして私達はちょうど別の変数が終了すると宣言. しかし、変数宣言は、前のstructキーワードに追加する必要があります: (C は必要としないために).
struct TenKieuCauTruc TenBienCauTruc;
さらに、我々はまた、次のように構成された構造と変数宣言のいくつかの種類を構築している:
struct TenKieuCauTruc { Khai báo các thành phần của kiểu; } danh sách các biến thuộc kiểu cấu trúc;
または
struct { Khai báo các thành phần của kiểu; } danh sách các biến thuộc kiểu cấu trúc ;
この宣言, とすぐに別の場所で宣言された私たちの構造への構造型名が存在しないような構造で変数を宣言するために必須のことです.
このセクションでは、言及する必要があります 1 重要なキーワード, すなわち typedefで. このキーワードを定義するために使用され 1 新しいデータ型.
typedef struct sinhvien { char MSV[20]; // ma sinh vien char hoten[30]; // ho ten sinh vien double toan, tin, anh; // cac diem toan, tin, anh } kieuSinhVien;
我々はこれを持っている場合 kieuSinhVien た 1 データ型 (int型として, ダブル, ...) 私たちはその構造を通して、変数を宣言することができます. この中で、あなたが注意を払う必要があることがいくつかあります:
- とともに sinhvien (構造体のタイプは、キーワードstructの後に配置され) このタイプの構造体の変数を宣言するときに我々はまだそれの前に持っている. (最高経営責任者(CEO: SVA sinhvien; -> Sai còn struct sinhvien svA; -> đúng), (C での注意が必要とされていません).
- とともに kieuSinhVIen このタイプの私達の変数を宣言するとき 構造体を持っていない その前に. (最高経営責任者(CEO: 構造体kieuSinhVIenすべて; -> sai, kieuSinhVIenすべて; -> đúng).
さらに、我々はまた、構造ネストされた宣言を入力することができます: 例えばのように 1 学生の誕生日, 日中の生年月日, 月, 生年.
struct ngaysinh { int ngay, thang, nam; } typedef struct sinhvien { char MSV[20]; // ma sinh vien char hoten[30]; // ho ten sinh vien double toan, tin, anh; // cac diem toan, tin, anh struct ngaysinh ns; } kieuSinhVien;
それとも構造内で宣言:
typedef struct sinhvien { char MSV[20]; // ma sinh vien char hoten[30]; // ho ten sinh vien double toan, tin, anh; // cac diem toan, tin, anh struct ngaysinh { int ngay, thang, nam; } ns; } kieuSinhVien;
1.3 構造のコンポーネントへのアクセス
構造のコンポーネントへのアクセスのために我々は、ドットを使用 (.).
TenBienCauTruc.TenThanhPhan;
以下のアクセス上の1例として、:
sv1.hoten; sv1.toan; // 自分の名前へのアクセス, 数学のスコア
sv1.ns.ngay; sv1.ns.thang; // 生年月日と出生の月へのアクセス.
...
アクセス構造体の構成要素になると、各成分は 1 これは、通常の変数で、値を割り当てるか、通常のように、それらに値を入力しますが、我々はまだやる.
また、特定の要素に長い場合は、キーワードを定義し使用して長い行を避けることができます.
たとえば、代わりに書き込み:
sv1.ns.thang; sv1.ns.nam;
私たちは書く:
#define p sv1.ns p.thang; p.nam;
1.4 変数は構造の同じタイプの割り当て
//code by nguyenvanquan7826 #include <stdio.h> #include <stdlib.h> struct sinhvien { char MSV[20]; // ma sinh vien char hoten[30]; // ho ten sinh vien double toan, tin, anh; // cac diem toan, tin, anh }; /* Hay thay tat ca fflush(stdin); thanh __fpurge(stdin) khi ban lam tren linux*/ int main() { /* khai bao 2 bien sv1, sv2 va 1 mang * CNPMK10A gom 100 sinh vien */ struct sinhvien sv1, sv2, CNPMK10A[100]; printf("Nhap du lieu cho sv1:\n"); printf("MSV: "); fflush(stdin); gets(sv1.MSV); printf("Ho ten: "); fflush(stdin); gets(sv1.hoten); printf("Diem toan, tin, anh: "); fflush(stdin); scanf("%lf %lf %lf", &sv1.toan, &sv1.tin, &sv1.anh); sv2 = sv1; // gan gia tri cua sv1 cho sv2 printf("\n --------- Thong tin sinh vien -----\n"); printf("%-20s %-30s %-7s %-7s %-7s\n", "MSV", "Ho ten", "Toan", "Tin", "Anh"); printf("%-20s %-30s %-7.2lf %-7.2lf %-7.2lf\n", sv2.MSV, sv2.hoten, sv2.toan, sv2.tin, sv2.anh); return 0; }
= SV1 SV2を割り当てた後、SV2 SV1のすべての情報もあります. 加えて、構造の初期値を割り当てることも可能である.
struct sinhvien sv1 = {"ABC", "Nguyen Van Quan", 9, 9, 8, {4, 5, 1992}};
その後、我々は元のデータがSV1である持っている:
MSV: ABC hoten: Nguyen Van Quan toan: 9 tin: 9 anh: 8 ngày sinh: 4/5/1992.
2. 配列構造
我々は構造型の基礎や構造のいくつかの例を学ぶ必要が上記のsinhvien. 今、私たちは実行する方法を学ぶ 1 プレート 50 学生 1 クラス構造は、上記のように入力する. 例を考えてみましょう:
//code by nguyenvanquan7826 #include <stdio.h> #include <stdlib.h> struct sinhvien { char MSV[20]; // ma sinh vien char hoten[30]; // ho ten sinh vien double diemTB; // diem trung binh struct ngaysinh { int ngay, thang, nam; } ns; }; int main() { int n = 2, i; struct sinhvien CNPMK10A[n]; for (i = 0; i < n; i++) { #define sv CNPMK10A[i] printf("Nhap du lieu cho sinh vien thu %d:\n", i + 1); printf("MSV: "); fflush(stdin) gets(sv.MSV); printf("Ho ten: "); fflush(stdin); gets(sv.hoten); printf("Diem TB: "); fflush(stdin) scanf("%lf", &sv.diemTB); printf("Ngay sinh: "); scanf("%d/%d/%d", &sv.ns.ngay, &sv.ns.thang, &sv.ns.nam); } printf("\n --------- Thong tin sinh vien -----\n"); printf("%-20s %-30s %-7s %-10s\n", "MSV", "Ho ten", "Diem Tb", "Ngay sinh"); for (i = 0; i < n; i++) { #define sv CNPMK10A[i] printf("%-20s %-30s %-7.2lf %02d/%02d/%4d\n", sv.MSV, sv.hoten, sv.diemTB, sv.ns.ngay, sv.ns.thang, sv.ns.nam); } return 0; }
結果:
Nhap du lieu cho sinh vien thu 1: MSV: DTC1 Ho ten: Pham Thi Ha Diem TB: 9.2 Ngay sinh: 21/01/1993 Nhap du lieu cho sinh vien thu 2: MSV: DTC2 Ho ten: Nguyen Van Quan Diem TB: 9.2 Ngay sinh: 31/12/1992 --------- Thong tin sinh vien ----- MSV Ho ten Diem Tb Ngay sinh DTC1 Pham Thi Ha 9.20 21/01/1993 DTC2 Nguyen Van Quan 9.20 31/12/1992
3. 構造体ポインタ
//code by nguyenvanquan7826 #include <stdio.h> #include <stdlib.h> struct sinhvien { char MSV[20]; // ma sinh vien char hoten[30]; // ho ten sinh vien double diemTB; // diem trung binh struct ngaysinh { int ngay, thang, nam; } ns; }; int main() { int n = 2, i; // cap phat bo nho struct sinhvien *CNPMK10A = (struct sinhvien*) malloc(n * sizeof(struct sinhvien)); for (i = 0; i < n; i++) { printf("Nhap du lieu cho sinh vien thu %d:\n", i + 1); printf("MSV: "); fflush(stdin); gets(CNPMK10A[i].MSV); printf("Ho ten: "); fflush(stdin); gets(CNPMK10A[i].hoten); printf("Diem TB: "); fflush(stdin); scanf("%lf", &(CNPMK10A+i)->diemTB); printf("Ngay sinh: "); scanf("%d/%d/%d", &(CNPMK10A+i)->ns.ngay, &(CNPMK10A+i)->ns.thang, &(CNPMK10A+i)->ns.nam); } printf("\n --------- Thong tin sinh vien -----\n"); printf("%-20s %-30s %-7s %-10s\n", "MSV", "Ho ten", "Diem Tb", "Ngay sinh"); for (i = 0; i < n; i++) { #define ns CNPMK10A[i].ns printf("%-20s %-30s %-7.2lf %02d/%02d/%4d\n", CNPMK10A[i].MSV, (*(CNPMK10A+i)).hoten, (CNPMK10A+i)->diemTB, ns.ngay, ns.thang, ns.nam); } return 0; }
構造上のコンポーネントにアクセス
ポインタ構造を持つデータアクセスコンポーネントを得るために 3 以下:
- 方法 1: CNPMK10A[で].diemTB;
- 方法 2: (*(CNPMK10A I)).diemTB;
- 方法 3: (CNPMK10A I) ->diemTB;
両方 3 方法はDTBにアクセスする必要があります.
我々が持っているアドレスを取得するには 2 から:
- 方法 1: &CNPMK10A[で].DTB;
- 方法 2: &(CNPMK10A I)->diemTB
anh ơi cho em hỏi là ở đây khi mình cấp phát động để nhập vào dữ liệu cho sinh viên, khi kết thúc trương trình này không giải phóng bộ nhớ động đã cấp phát ra ạ?
Ukm đúng rồi, cái này mình quen thói quên mất, chứ đúng ra là cần phải thêm vào đó.
cảm ơn các bài của anh rất hữu ích cho sinh viên nhập môn như em ạ 😀
ngồi hóng anh làm giải phóng bộ nhớ cho bài 11++ ạ 😀
Giải phóng bộ nhớ bạn chỉ cần free các biến con trỏ sau khi dùng là xong.
はい. em biết cách giải phóng bộ nhớ cấp phát cái này rồi ạ 😀
A ơi cho e hỏi muốn thêm 1 sinh viên vào thì phải lsao ạ
Bên trên có rồi mà.
町のemホイアンの#define NS CNPMK10A[で].NSは、先生を意味します?
あなたは上記のNHEを見ます. 私はそれがNPMK10Aのために短縮するための変数NSを置く手段[で].NS
はい! ありがとう!
A Quân ơi cho em hỏi!!!
printfの(“Nhap du lieu cho sv1:\N”);
printfの(“MSV: “); fflushは(標準入力);
取得します(sv1.MSV);
printfの(“ホー10: “); fflushは(標準入力); //fflushは(標準入力) 先生は何ですか???
取得します(sv1.hoten); //取得します(sv1.hoten) 先生は何ですか??nó có giống scanf(“%S” ,sv1.hoten);?
printfの(“Diem toan, 信じます, あなた: “); fflushは(標準入力);
scanf関数(“%lf %lf %lf”, &sv1.toan, &sv1.tin, &sv1.anh); //%lf là gì ạ??
fflush và gets đọc mục 4 と 5 ở bài này nhé: https://cachhoc.net/2014/12/04/lap-trinh-c-bai-2-kieu-du-lieu-va-nhap-xuat-trong-c/#4_Nhap_chuoi_trong_C
lf là ký hiệu định dạng kiểu double.
thank anh trai !!!đã hiểu
cho em hỏi như bài này làm sao để tìm trong danh sách trên thông tin về sinh viên có MSSV là X nếu
持っている. 学生が12月に生まれた情報を表示 3, 兄弟姉妹, 出ていない熟考 :((
推奨されます: プログラムを書きます 1 学生のn個のリスト. 各学生は、 1
構造としては、: 彼らは名前を付けます, セックス, 出生地, 生年月日 (た 1 構造からなる日,
月と年), MSSV, コードグループ. 学生に関する情報を表示し、入力されました
スクリーン. 学生証を持つ学生の情報のリストを探してくださいする場合はXであります
持っている. 学生が12月に生まれた情報を表示 3
あなたがstrcmpの機能で文字列を比較するにはどのとXと呼ばれています
ダーリンはこの場所を理解していません :”%-20S%-30s%-7s%-10s”. 小さなもの -20,-30 何をAドライブです?
予約済み 20.30.7.10 対応する値と負を表示するためのスペースがフラットなままであります
ウェイター, ở VD gán 2 biến SV trên, それは、各変数を割り当てる必要がされていないかどうかを? strcpyのような特殊な割り当てを含む文字列を持って学校に(,)
ここで必要はありません, SV1 SV2が保たれている=すべてに与えられたSV1、SV2の任意の値.
サイト%マイナス何-20f A
カイ%20fがにあります 20 数字の表示のためのスペース. だから、出力値の前にスペースがあるでしょう. その後、我々がする必要があるとして、. マイナス記号なら、私たちはそれをベースに左.
彼の記事基本的なJavaまたはありません . 参照DC KO先生までキッズ
アドホックのみ基本的なJavaの新しいキッズ- ずっと、先生を知っているべきではありません
ああ, これはダウンして書いていないです, のみ 2 すべてのオブジェクト指向退職
https://www.cachhoc.net/category/lap-trinh/lap-trinh-huong-doi-tuong/
printfの(” %-20S%-30s%-10s%-7s n個”,”MSV”,”脅威”,”ngaysinh”,”GPA”);
printfの(“%-20S%-30s%-7.2lf%02D / 02D%/%4D nを”, sv.MSV, sv.hoten, sv.diemTB, sv.ns.ngay, sv.ns.thang, sv.ns.nam);
数%-20s …. どのような考えがあなたを持っています. 私はに戻すとき
printfの(“%-20S%-30s%-10s%-8s”,”MSSV”,”HO TEN”,”NGAYSINH”,”DIEMTB”);
printfの(“%-20S%-30s%D /%D /%D%-8.2f”,SV[で].MSV,SV[で].ハイチ,SV[で].ns.ngay,SV[で].ns.thang,SV[で].ns.nam,SV[で].TB);
それは学生証ドリフトと比較した結果を出力します,脅威,NGAYSINH,DIEMTB
%20sが利用可能です 20 スペースは、文字列を印刷しますが、それは悪い見て必要があります, %の-20sを使用すると、このようにあなたの左のフラットを助けます.
あなた ,私はスープは、学生証を与えることができる方法,脅威,ngaysinh,diemtb, その結果は、それらに対応する共同の位置も示しています 1 ポスト ( ない歪んだコラム)…. この記事では、彼は-30s%-20s%を獲得していない場所ではありません %-10 %-7 私はそのように記述する必要がなぜvv.the. これではありません %-30 %-30 %-30 彼のLUN.
同じようにあなたの見出しの基礎はそれのような行がされてやって価値がありました. と 20 がある 30 その後、あなたまでその鎖の長さを推定します.
だから、あなたが推測したとき , 私は余白に比べ推測します (左) または、前の配列と比較して
など: %-20 その後に %-30 彼はおおよそのものです %-30 より %-20 または %-30 そう、彼のマージンを考慮し
そうではありません, つまり、あなたが最大の長い名前を見積もります 50 文字は、あなたが使用します %50 あなたがやりました.
そう 50 彼は部品をスペア空白を含む文字を印刷しました + 名前( 学生証など,脅威) ではない彼の右
UKM…
printfの(“\n個のnhapの学生数は、n します”);
フォーラム nは彼の上部の様々な文の前後
同様の. ダウンと同時にあります.
前方N フォーラムは、行にあります : 記号 n個のリア.CONラインの下、学生の数を入力し、ラインを降ろされている次の文では、彼はいけません
[はい.
typedefは構造体sinhvien {
文字MSV[20]; // 学生による
char型の脅威[30]; // 咳学生名
ダブルtoan, 信じます, あなた; // ポイントtoan, 信じます, あなた
} kieuSinhVien;
彼の場所KO NI宣言 :” sinhvien” LUNを宣言しています “kieuSinhvien” DC KO彼. 私はその宣言、構造体の型を見ました “sinhvien” どこで使用しています !
OK, あなたは、ああしています.
Anh nguyenvanquan cho em hoi:
私は上記の言っています 3 構造体ポインタのデータ要素を取得する方法 :
方法 1: CNPMK10A[で].diemTB;
方法 2: (*(CNPMK10A I)).diemTB;
方法 3: (CNPMK10A I) ->diemTB;
私はそれはハードな方法を理解するために見つけます 1 彼は書いすべてのアドレスポインタのポインタゴーストに参加します:
PX : それが保たれるアドレスを取得します (ポイントへ)
*PX : それが指すメモリの値を取得.
彼はあまりにも不可解な支出を私に役立ちます. 私はあなたに感謝.
理解することは困難を使用する方法です, それはそれの原則つまり.
最愛の人。. thế em muốn tìm tên những sinh viên có điểm toán cao nhất thì làm như thế nào ạ 🙂
そして、見つけてそれを比較します, 彼の通常の比較A> BはBXはある>時間の斧を比較します
C# có struct, vậy trong java có cái gì tương tự như struct k ( k tính đến class ở đây)
thực sự là mình chưa nắm vững về java nên mới hỏi câu này, có gì k phải mong b bỏ qua
Java không có struc bạn ah. Class có thể đảm nhiệm mọi thứ 😉
anh Quân ơi em có 1 thắc mắc nhỏ muốn anh làm sáng tỏ hộ em
ここに私のコードです :
/* リストコーンを介してドキュメントのプログラミング 100 約を含む学生:ホー10, 少年たち
1, DSドゥア学生アウト男の子 1990
2, ヌサドゥアはアウトdssvアルファベット順 */
/* 私が使用できない理由スワップスペース文字のだろうか: temp.ho_ten文字=[で].ho_ten; LIST[で].ho_ten文字=[J].脅威; LIST[J]= temp.ho_ten; */
#含まれる
#含まれる
#含まれる
typedefは構造体sinh_vien
{
チャーho_ten[20];
int型のナム;
}EN;
メイン()
{
int型のn,で,J,T;
SVリスト[100],一時;
の{
printfの(“nは持ち込ま寸法を入力してください (0<N<= 100):");
scanf関数(の "%D",&N);
}同時に(N100);
printfの(“\nは各学生のための情報を入力します。:\N”);
のために(I = 0;で<N;私 )
{
printfの("\n NHap ten cua sinh vien thu %d: ",のi 1);
fflushは(標準入力); 取得します(LIST[で].ho_ten);
printfの("\n nam sinh:");
scanf関数(の "%D",&LIST[で].男性);
}
printfの("\ndanh sach sinh vien khi chua sap xep:");
printfの("\nstt Ho va ten nam sinh\n");
のために(I = 0;で<N;私 ){
printfの("%-2d %-20s %-4d\n",I + 1、LIST[で].ho_ten,LIST[で].男性);
}
printfの("\n danh sach cac sinh vien sinh nam 1990 インクルード:\n");
のために(I = 0;で<N;私 )
もし(LIST[で].男性== 1990) printfの("%-20s\n",LIST[で].ho_ten);
のために(I = 0;で<-1;私 )
のために(J = I + 1;J0) {温度= LIST[で]; LIST[で]文字=[J]; LIST[J]=一時;}
}
printfの(“リスティングは、後で気を配置しました:\N”);
printfの(“\フルネームnstt少年たちは、 nを”);
のために(I = 0;で<N;私 )
printfの("%-2d %-20s %-4d\n",I + 1、LIST[で].ho_ten,LIST[で].男性);
getchは();
}
スワップ、あなたではなく、なぜそれぞれの名前STRUCスワップをスワップする必要があります?
ああ、私に質問を与えます: 私は、関数にパラメータを渡す構造はNTNであるポインタであります? 感謝!
例えば、構造体は、空隙を伝えたいという願望です(*で)
printfの(“%-20S%-30s%-7s%-7s%-7s nは”, “MSV”, “ホー10”, “努力”, “信じる”, “英語”);
printfの(“%-20S%-30s%-7.2lf%-7.2lf%-7.2lf nは”, sv1.MSV, sv1.hoten, sv1.toan, sv1.tin, sv1.anh);
printfの(“%-20S%-30s%-7.2lf%-7.2lf%-7.2lf nは”, sv2.MSV, sv2.hoten, sv2.toan, sv2.tin, sv2.anh);
対giùm電子メールを説明
ただあなただけではscreenコマンドを印刷します.
ウェイター, 私に聞いてみましょう: 彼のアジアアレイ構造の最大値を見つける方法?…^^
あなたがしたい場合に比べて、ループのために使用し、. それがすべてです
彼は下の点で学生のために配置されたどのように私は尋ねました
次のように入力します :
テン日当
ザ· 2
B 1
℃ 3
あなたは、ソートを行います 2 数, 彼のチームが変更のみということ 1 構造体の学生のレビュー.
彼は下の点で学生のために配置されたどのように私は尋ねました
次のように入力します :
テン日当
ザ· 2
B 1
℃ 3
———
QA
テン日当
ザ· 3
B 2
℃ 1
ポイントは、 ,しかし、なぜ愛する学生のポイントに応じてそれに名前を付けます !
私を助けて.
変更あなたは、両方の構造体の学生の使用を変更する必要がある場合.
なぜ私はSV2 = SV1 LAHを割り当てることが必要です ?! eは、本当にこの場所を理解していません
ああ、我々はそれ= Bのような腱を割り当てます
Eは、申し訳ありませんが、電子まだ本当にあなたが何を意味するか分かりません. 情報のみ、または他の目的を転送するために割り当てられたSV2 = SV1 ?!
あなたの広告が尋ねます,私は、上記で述べました 3 アクセスの方法は、あなたが間の相違の.Vayヘルプ子どもたちを説明できるデータを取得します 3 そのようにK ?(^ - ^)
その結果は同じです. 書き込みについての詳細は、ちょうどあなたを停止します.
私は、インポートおよびエクスポート機能のリストについては、広告を作成する方法を尋ねたが、構造体SVサーを使用することを許されませんでした
あなたは、配列を使用することができます. VD学生の名前, 年齢, ポイント、私がやります 3 配列名, 年齢, ポイント.
クローサー広告PESガイドサー. 私は、この問題のサーlam.ma理解していません:
カードリーダーの情報管理を含む必要があります: コードリーダ, 名前, ID, 日付
生年, セックス, Eメール, アドレス, カードの日付と、カードの有効期限 (48 月
カードの日から)
プログラムは、次のような機能を持っています:
1. 読者管理
ザ·. 図書館での読者の一覧をご覧ください。
B. 読者を追加
℃. 情報に読者を編集します
D. 読者のクリア情報
と. IDカードリーダを検索
F. 名前の書籍を検索します
構造体配列を使用しない場合は、カードリーダーというあなたは、それを必要とする何をすべきか.
私はあなたが勉強してみましょうTKS
àこの広告を書きます
#含まれる
#含まれる
無効madocgia(int型MADG[])
{
のために (int型のi = 0; で < 2; 私 )
{
printfの("Nhap ma doc gia %d: ", で);
scanf_s(の "%D", &MADG[で]);
}
}
無効CMND(int型のCM[])
{
のために (int型J = 0; J < 2; J )
{
printfの("Nhap so CMND %d: ",J);
scanf_s(の "%D", &cm[J]);
}
}
無効xuatma(int型MADG[])
{
のために (int型のi = 0; で < 2; 私 )
{
printfの(の "%D", MADG[で]);
}
}
無効xuatcm(int型のCM[])
{
のために (int型J = 0; J < 2; J )
{
printfの(の "%D", cm[J]);
}
}
無効メイン()
{
int型A[100], B[100];
madocgia(ザ·);
CMND(ザ·);
xuatma(ザ·);
xuatcm(B);
_getch();
}
Cに記載されている組合せアルゴリズムは++、ほんの数例あったと、私はC ++がない上書きされることなく、すべてのケースをエクスポートするためにどのように頼むので、上書き? またはプログラミングプログラムは、組み合わせのすべてのケースを表示しないことができます?
ルミンホアンアルゴリズムNHEを見ます. Googleが出ています
彼の軍隊. 私はあなたがへの入力としての機能に分け欲しいものを聞いてみたいです 1 印刷機能 1 その後、どのように顎先生. 私は、私たちの主な機能には、そのためにあなたを参照してください.
次に、あなただけの一人で別の関数を書きます.
printfの(“%D”, cm[J]); あなたを行います
i番目の識別を印刷するには.
vd mo dau:
スターnhapのデュオック・コ MSV.
msv2クリックできません
このコマンドを漂わせています. 私はあなたを得た上で、私は言いました, 次のコマンドを置き換えるfflush_stdin(); fflush(標準入力) 勝利コードながらNHE. Ubuntuの中に彼らのコードはfflush_stdin必要があります();
#含まれる
#含まれる
typedefは構造体ngaythangnamsinh
{
int型の右,はしご,男性;
}日付;
typedefは構造体sinhvien
{
CHAR 10[21];
文字MS[11];
char型の垂れ[10];
日付NS;
フロートDTB;
}SV;
無効nhap1sv(SV &X)
{
printfの(“\nnhapホ10:”);fflushは(標準入力);取得します(x.ten);
printfの(“コードを入力します。:”);fflushは(標準入力);取得します(x.ms);
printfの(“垂れnhap:”);fflushは(標準入力);取得します(x.lop);
printfの(“日付の男の子を入力します。:”);
scanf関数(“%D%D%dの” ,&x.ns.ngay,&x.ns.thang,&x.ns.nam);
printfの(“平均のエントリポイント:”);fflushは(標準入力);scanf関数(“%F”,&x.dtb);
}
無効xuat1sv(セントX)
{
printfの(“\N ——— 学生情報 —–\N”);
printfの(“%-20S%-15s%-15s%-15s%-15s nは”, “脅威”, “MSSV”, “切り調えます”, “Ngaysinh”, “DTB”);
printfの(“%-20S%-15s%-15s%D-%D-%D%15F”,x.ten,x.ms,x.lop,x.ns.ngay,x.ns.thang,x.ns.nam,x.dtb);
}
無効nhapdssv(聖と[],int型のn)
{
printfの(“dssvクリック”);
のために(I = 0 int型;で<N;私 )
{
printfの("nhap vao thong tin sinh vien thu %:",のi 1),
nhap1sv(ザ·[で]);
}
}
メインint型()
{
セントX;
聖と[10];
int型のn;
nhapdssv(ザ·,N);
nhap1sv(X);
xuat1sv(X);
}
aanh私はあなたに何のエラーコードでお願いしますが、それはループ先生をバック実行されません?????
nの値は、あなたがああありませんので.
彼の胃がRUIました !!!おかげnhìu!!!
彼は私に私の見解を尋ねました
実装ジョーOK timslmax
xuatspslmax誤差関数検査!!!
int型timslmax(SPのA[],int型のn)
{
int型温度= A[0].SL;
のために(I = 1 int型;で<N;私 )
{
もし(一時<ザ·[で].SL)
TEMP = A[で].SL;
}リターンの一時;
}
無効xuatspslmax(SPのA[],int型のn)
{
int型メートル= timslmax(ザ·,N);
printfの("san pham co sl max la:\n");
のために(ザ·[で].SL ==メートル)
xuat1sp(ザ·[で]);
}
メインint型()
{
SPのX;
int型のn;
N = 3;
SPのA[10];
nhapdssp(ザ·,N);
printfの("%-20s %-15s %-15s\n","maso","tensp", "soluong");
xuatdssp(ザ·,N);
xuatspslmax(ザ·,N);
構造関数 のために(ザ·[で].SL ==メートル) そのような物は何も間違っていません.
彼は、プログラムがまだ正常に実行されているが、このエラーは先生だったか私に尋ねました.
57 2 ℃:\Users ユーザー管理ドキュメント bai2.c [警告] 渡す引数 1 「docsvの’ 互換性のないポインタ型から [デフォルトで有効になって]
12 6 ℃:\Users ユーザー管理ドキュメント bai2.c [注意] 期待される「構造体SV *’ しかし、引数が**型「構造体SVのです’
#含まれる
#含まれる
typedefは構造体sinhvien{
char型の脅威[50];
int型のDCC;
int型のDTH;
int型DCK;
ダブル地デジ;
char型のxephang[10];
}EN;
無効docsv(EN * EN){
printfの(“ホ10:”);
取得します(SV>脅威);fflushは(標準入力);
printfの(“\N”);
printfの(“日当のchuyyenすることができます:”);
scanf関数(“%D”,&SV>DCC);printfの(“\N”);
printfの(“日当の練習:”);
scanf関数(“%D”,&SV>DTH);printfの(“\N”);
printfの(“エンドポイントKI:”);
scanf関数(“%D”,&SV>DCK);printfの(“\N”);
}
ダブルDTB(EN * EN){
SV-戻ります>DTB = SV>DCC * 0.1 + SV->DTH * 0.3 + SV->DCK 0.06 *;
}
無効INSV(constのSVの*のSV){
printfの(“—–学生情報—–\N”);
printfの(“ホー10:”);
printfの(“%S”,SV>脅威);
printfの(“\N”);
printfの(“出席:”);
printfの(“%D”,SV>DCC);
printfの(“\N”);
printfの(“日当の練習:”);
printfの(“%D”,SV>DTH);
printfの(“\N”);
printfの(“エンドポイントKI:”);
printfの(“%D”,SV>DCK);
printfの(“\N”);
printfの(“GPA:”);
printfの(“%.2LF”,SV>DTB);
printfの(“\N”);
printfの(“ランキング:”);
もし(SV>DCC>= 7&&SV>DTH>= 4&&SV>DCK>= 40)
printfの(“学生”);
他のprintf(“誕生スキー”);
}
メインint型(){
EN * EN;
docsv(&SV);
DTB(&SV);
INSV(&SV);
}
それは単なる警告だと思います (警告) 停止, 過失ません.
電子感謝!!
よりAのためのだから、
有難うございます。 !!!
自分の欲望のOIミルクはどのように彼ということを主題を懸念しました
それは最初のを探して変更する必要がある修正, そして、それだけのための情報を入力します。.
ありがとうございます。.
私はそれをやりました。.
上書き. コミットありがとうございました
ありがとう, NHEもう友達に共有します.
HI, e機能サブルーチンのスター, その一部は、構造体の関数定義のエラーunknowタイプです.
E CソリューションDEV.
どのようにF @@コード?
構造体のDCの町全角ホイアンのカーソル宣言とは、それまでに灰の値を取得する方法
あまりにも持っています. あなたはここにリンクのリストが表示されます表示します. https://cachhoc.net/2014/12/21/lap-trinh-c-bai-13-danh-sach-lien-ket-don-cai-bang-con-tro/
彼は私に先生に尋ねました, 代わりに 2 キーワードのtypedefの例, kieusinhvien sinhvienと我々は定義し、その後sinhvien構成されているタイプの間, kieusinhvienは、それはまた、可変構造型sinhvienではありません? 物事が注意を理解していないので、私はこれを聞いて 2 サー, たとえば、この注意我々がなくなっ定義kieusinhvien皮膚構造タイプが存在する場合, 答えに彼を期待.
それはkieusinhvienさtypdefキーワードを使用して 1 タイプ.
最高経営責任者(CEO:
int型A // =>変数
//のtypedef int型、A =>同様のタイプはintです.
その構造体に使用したときに依頼するために英国陸軍があります * ?
私は一部を読んだときに、例えば、Treapは次いで構造体ノードNTNを宣言する :
構造体のノード
{
int型の優先順位;
int型SZ;
int値;
ノード* L,*R;
};
なぜノードL,R戻る追加します * 前
マーク * =変数がポインタであることを意味する>常にカーソルを使用して、ユーザーのニーズ *.
イギリス軍は、構造体にスワップで質問親愛なる兄弟を持っています:
例: 学生シーベルトをストラクト [N] ; 名前と場所を含みます.
離れて名前と順番に場所の変更は常に変更される可能性がありシーベルトから[ で ] シーベルト付き[ のi 1 ] そうではありません
DJK NHE.
しかし、どのような先生になります。..!
子供たちはせずに仲介する新しい構造体を作成します
学生シーベルトをストラクト [N];
構造体SinhVienの一時=シーベルト[0] ;
SV[0] = E[3] ;
SV[3] = TEMP ;
ウェイター,「私はどこかEここで間違ってこのコードを聞いてみましょう?.私が使用にfflush(標準入力) 何回それは、コマンド・エラー・ドリフトとなっています。(コードは、単に情報だけでは先生をリスト入り).
#含まれる
#含まれる
#含まれる
構造体diachi {
char * = quan_huyen(タンク *)のmalloc(10*はsizeof(タンク));
=へのchar *(CHAR *)のmalloc(10);
};
danhba構造体{
int型SDT;
char * hoten =(CHAR *)のmalloc (30);
そのdiachiをコンパイル;
}*danhbadt =(danhba *)のmalloc(40);
danhba newi(danhba * A){
printfの(“新しい電話番号 : “);
scanf関数(“%D”,&A->小さじ);
fflushは(標準入力);
printfの(“所有者のフルネーム : “);
取得します(A->脅威);
fflushは(標準入力);
printfの(“地区 : “);
取得します(A->canhan.quan_huyen);
fflushは(標準入力);
printfの(“に (プオン) : “);
取得します(A->canhan.to);
}
メインint型(){
int型のチョン;
printfの(“__________________________________ nは”);
printfの(“1. 新しい情報 nを入力します。”);
printfの(“2. N 電話番号を探します”);
printfの(“3. アドレス nのLOCの電話番号”);
scanf関数(“%D”,&チョン);
スイッチ(チョン){
ケース 1: newi(danhbadt);
ブレーク;
}
}
私が注文する内容で漂流しました? チェーンを入力した番号を入力した後、標準入力を削除するという原則を参照すると、.
eはその入力に間違っていました “quan_huyen” そして、入力します。 “に” サー. Eの標準入力を複数回削除してみてください、まだできません.
どのようにあなたが間違っています? インポートまたは入力されなく処理されません?
カップEは、学生が入る求めることができます , 輸出の卒業生 2 ではない別の関数直流?
あまりにも持っています.
質問してもいいですか?, 私はメニューのDC教師に切り替えました
あなたの意味がわかりません.
仲間にリストを尋ねて、必要な材料を転送したいのですが、どうすればいいですか
あなたの質問がわかりません.
彼の文章は理解しやすい, 私が書いた 1 簡単なテスト投稿, エラーはしなかったのですが、学生証を入力できず、すぐに学生名にジャンプしました, 見てください:
#含まれる
#含まれる
名前空間stdを使用して;
struct sv {
char maSv[30], 十[30];
int soMon;
};
無効メイン() {
int型のn, で;//nは学生の数です
COUT <> N;
構造体sv stt[100];//番号順
のために (I = 0; で < N; 私 ) {
#g sttを定義する[で]
COUT << "\nNhap thong tin cua sinh vien thu " << で + 1;
COUT << "\nMa sinh vien : "; fflushは(標準入力);// この段落はDCには入りませんが、SV名を下にジャンプします
fgetsの(g.maSv, 30, 標準入力);
COUT << "\nTen sinh vien : ";
fflushは(標準入力);
fgetsの(g.ten, 30, 標準入力);
COUT <> g.soMon;
}
}
cout entryコマンド<>あなたのnは間違っています…
修正してください, eここでデバイスにオリジナルをコピーします, 投稿すればそれだけ, 私はすでにコードを実行しました
レッスン番号を復習します 2, 先に進んでください.
コードを注意深くチェックした, 投稿がいくつかの場所で変更されました, 例:#include投稿に後で欠落している部分がある,
CIN >> nはcout nに変わります, CIN >> g.soMonはcout g.soMonに変換されます