• 締切済み

お願いします

このプログラミングを作らなきゃいけないんですけど、 どうしたらいいかまったくわかりません まず、何をすればいいのか、 どんなデバック表示されるかもわかりません 助けてください。お願いします . 個人データを格納する表を作成し,入力された学 生番号に該当する個人データを表示するプログ ラムを作成せよ. . 表は配列として定義する . 個人データは次のフィールドからなる構造体とし て定義する -学生番号(文字列(数字列)) -姓(文字列) -名前(文字列) -性別(数字)0 男1 女 演習7データの入力 . データの入力. 学生数をマクロ定義する -以下のいずれか (1) 以下の形式からなるファイルあるいはキー . 学生番号,姓,名前の文字列(文字の配列)の長 さをマクロ定義する ボードから読み込む . 学生番号(文字列) -文字列の長さは,実際に必要な長さ+1 以上 とする. . 姓(文字列). 学生一人の個人情報の構造体の型を定義する . 名前(文字列). コンパイルしてみる . 性別(数字)0 男1 女. 学生の個人情報の配列の変数を宣言する (2) あるいは構造体変数の初期設定を用いる. コンパイルしてみる 演習7手順2 . ステップ1-1つのレコードを読み,それを出力するプログラムを作 成する. -コンパイルして実行してみる . ステップ2-1つのレコードを読み,それを出力するプログラムを作 成する -レコードを出力部は1つの関数にするのが良い -入力の終了を検出する . 入力の終了はEOF の検出,あるいは学生番号が0 を入力した時とする -配列のサイズを超えた入力をしないようにチェックす る -コンパイルして実行してみる 演習7手順1 プログラミング言語(1) 6 strcmp . ヘッダ #include <string.h> . 形式 int strcmp(const char *s1, const char *s2); . 機能 s1 が指す文字列とs2 が指す文字列の大小関係(先頭から 順に1文字ずつ比較していき、異なる文字が出現したとき に、それらの文字の対に成立する大小関係とする)の比較 を行う. . 返却値 等しければ0、s1 がs2 より大きければ正の整数値、s1 がs2 より小さければ負の整数値を返す. 演習7ヒント2 演習7ヒント3 . ステップ3. 学生番号の入力を繰り返して行うようにする. -ステップ2 で入力部が完成. 入力の終了はEOF の検出,あるいは学生番号が -キーを入力する0を入力した時とする -個人データの配列で, 入力した学生番号と一 致するレコードを探す -文字列の比較はstrcmp 関数を用いる (ヘッダファイルstring.h をインクルード) -見つかればその内容を表示する -見つからなければ,その旨を表示するメッセー ジ("Not Found") を表示する

みんなの回答

  • tuyo1980
  • ベストアンサー率0% (0/2)
回答No.1

これでいいのかな? #include<stdio.h> #include<string.h> #define max 100 struct student{ char number[max]; char firstname[max]; char undername[max]; int sex; }; int main(void) { struct student seito; printf("学籍番号を入力\n"); scanf("%s",&seito.number); if(strcmp(seito.number,"0") == 0) { printf("Not Found\n"); return; } printf("名字を入力\n"); scanf("%s",&seito.firstname); printf("名前を入力\n"); scanf("%s",&seito.undername); printf("性別を入力\n"); scanf("%d",&seito.sex); printf("学籍番号:%s\n名字:%s\n名前:%s\n性別:%d\n",seito.number,seito.firstname,seito.undername,seito.sex); }

関連するQ&A