• 締切済み

C言語の課題

大学でC言語の課題がでて、わからないので質問しました。 課題が人数をキーボードから入力する。 人数分の得点を入力して成績を表示する。 結果をファイルに保存する。 A 80~100点 B 70~79点 C 60~69点 D 60点未満 との事でした。 授業では、fp、printf、scanf、else、などを使いました。 よろしくお願いします。

みんなの回答

  • ryos14
  • ベストアンサー率23% (44/190)
回答No.4

課題は自分でやるものです。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

で, 「どこが分からない」のですか? しかし, こんなことばっかり書いてるような気がするなぁ....

回答No.2

大学生だったら質問の仕方ぐらい覚えなさい。 あと大学の課題なんだから講師に質問しなさいよ。 まず言語以前の問題。 処理の流れを紙にでも書いて。 それに沿って言語で記述するのよ。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

何をどうしたいかサッパリ分かりません。 大学生でしょ?レポートを書く時、テーマとかを先ず書いて、相手に 理解してもらえるように、書き方を工夫しませんか? 先ずは入力する項目、順番を明記すること。 次にファイルに保存する場合の形式(フォーマット)を示す。 最低でも、これくらいは記述しないと答えようがありません。

関連するQ&A

  • C++言語の課題です

    C++言語の課題です 4つの数字をキーボードから入力させ、入力が終わったら、その最大値を表示するプログラムを作成しなさい という問題が出ました。 4つの数字を入力して 読み込むまではわかりましたが 条件分岐のところから わからなくなりました。 使ってる文法は printf scanf if elseif などです どなたか教えて下さい

  • C言語の課題で

    C言語の課題で 「成績集計プログラム 入力件数nをキーボードより入力し、n人分のテストデータを入力する。その際、合計点、最高点、最低点を求め、最後に平均点を計算しそれぞれを出力するプログラムを作成せよ。ただし、平均点は実数型とし小数点第2位まで出力する。平均点以外の変数は整数型とする。」というのが出ました。 #include <stdio.h> int main(void) { int n,a,b,c; int res,i; printf("入力件数を入力して下さい。\n"); scanf("%d",&n); for(i = 1; i <= n; i++) { printf("点数を入力して下さい。\n"); scanf("%d",&a); printf("%d人目=>%d\n",i,a); if(i == res) break; } return 0; } ここまでは、出来たのですが、後が分かりません。どなたか教えていただけませんか?お願いします。

  • この課題を解いてください

    大学で C言語の入門の授業を取っています。 受講生はC言語をやるのは初めてのようです。 私は何年か前からやっていたので楽勝の授業なんですが、 3週目にして、以下の課題を与えられました。 キーボードから数値を入力して、それが正なら「plus」を、負なら「minus」 を、ゼロなら「zero」を表示するプログラムを作成せよ。ただしピリオド「.」が入力されたら終了とする。 で、私は、 #include<stdio.h> #include <stdlib.h> int main(void){ char s[1]; int a; while (1){ printf("変数aに数字を入力してください\n"); printf("a="); scanf("%s",&s[0]); a=atoi(s); if(s[0]=='.')break; if(a>0){ printf("%d is plus\n",a); }else if(a==0){ printf("%d is zero\n",a); }else{ printf("%d is minus\n",a); } } return(0); } のように作りました。 私は授業ではまだ習っていない配列や、atoiという関数を使いましたが、 他の履修生にとっては難しい課題じゃないですか? それとももっとシンプルに作れますか?

  • C言語プログラミング

    C言語プログラミングを作成したいのですが、全くわかりません… 成績処理についてのプログラミングお願いします! キーボードから試験の点数を読み込み0.5を掛ける。つぎに課題点を読み込み0. 25を掛ける。2つを加えて四捨五入してこれを授業点(75点満点)として表示。そして演習点(25点満点)を読み込み授業点に加え全体成績(100点満点)として表示する。最後に判定をして、0~59点は「不可」、60~69点は「可」、70~79点は「優」、それ以外は「入力ミス」と表示。 これをC言語プログラミングお願いします。

  • C言語の課題でまたまた悩んでいます。

    前にも、投稿して一部はうまくいきその後自力で何とかしようと頑張ったのですがやはりできませんでした。そこでもう一度皆さんの力を借りたいと思い投稿しました。 改めまして、 課題は構造体で顧客情報を確保(キーボードで1~50の顧客情報の数を入力)し、分岐点(登録、一覧表示、削除、ファイル出力、終了)に行き、それぞれを行なうプログラムです。 登録では、名前、ふりがな、電話番号を入力(idは1から順につける)。名前、ふりがなの型はcharで確保して入力もそのままなんですが、電話番号の型はcharにして0~9までとハイフンのみ入力可能にし、他の文字を入力したらエラーを返すようにするみたいなんですが方法がわからないです。 一覧表示では、id、名前、ふりがな、電話番号をそれぞれ表示します。今のところ問題はないです。 削除では、指定したidを削除し、削除したidは再利用はできないがその分新たなidで顧客情報を入力することができる。 記述してエラーは出なかったのですが削除はされません。 ファイル出力では、csv形式で出力するみたいなんですが。記述してもエラーが返ってくるばかりでよくわからないです。構造体の出力の場合 、記述の仕方が違うと思うのですが???の部分など全体的に記述の仕方がわかりません。 ちなみに、私が記述したのは下記のとおりです。 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include "top.h" #include "ichiran.h" #define size_id (4) #define size_name (24) #define size_huri (24) #define size_tel (16) struct kokyaku { long id[size_id]; char name[size_name]; char huri[size_huri];   char tel[size_tel];   struct kokyaku *next; }; int main() { int kokyaku , bunki , sakuzyo , i , j; //顧客情報確保の件数 メニュー画面での分岐 削除id番号 顧客情報の件数と比較 long id = 1; //顧客番号 struct kokyaku *kok; printf("顧客情報がありません。何件分確保しますか?(1 - 50)"); scanf("%d",&kokyaku); system("cls"); if(kokyaku < 1 || kokyaku > 50) { printf("<<入力範囲にありません>>\n"); printf("<<処理を中断します>>\n"); return 0; }else{ kok = (struct kokyaku *)malloc( sizeof(struct kokyaku) * (kokyaku)); } i = 0; while(bunki = 5){ printf("%s", top1); printf("処理区分>"); scanf("%d",&bunki); system("cls"); switch(bunki) //メニュー画面での分岐 { case 1: //登録 if(id <= kokyaku)     {     printf("***** 顧客登録画面 *****\n");     *(kok[i].id) = id;     printf("氏名  :");     scanf("%s", kok[i].name);     printf("ふりがな:");     scanf("%s", kok[i].huri);     printf("電話番号:");     scanf("%s", kok[i].tel);     id++;     kok[i].next = &kok[i+1];     i++;     }else{ printf("登録がいっぱいになりました");   } break; case 2: //一覧表示 printf("%s\n", ichiran1); printf("%s\n", ichiran2); j = i; i = 0; while(i < j) { printf("%d%5s%25s%25s\n", *(kok[i].id) , kok[i].name , kok[i].huri , kok[i].tel); i++; } printf("%s\n", ichiran2); break; case 3: //削除 scanf("%d",&sakuzyo); for(i = 0;i < kokyaku || i < sakuzyo;i++) { if(i == sakuzyo - 1)   {  kok[i-1].next = &kok[i+1];  }  }  kokyaku++;     break; case 4: //ファイル出力 FILE *fp; if((fp = fopen("kokyaku.csv", "w")) == NULL ) { return 0; } while(fgets(???) != NULL) { printf("%s", ???); } fclose(fp); printf("プログラムが終了しました。\n"); return 0; break; case 5: //終了     return 0; break;     default: //エラー printf("<<処理区分エラー>>"); break; return 0; } } return 0; } ちなみにエラーが出ている場所は削除とファイル出力の部分のみです。 完成にはまだ遠くおかしなところがたくさんあると思います。ご指摘よろしくお願いします。

  • C言語の課題で困っています;

    C言語の課題で困ってます; 学校の課題で、キーボードから文字を入力する(最大80文字)。入力された文字列と、入力した文字列を逆順にした文字列を表示する。(malloc,freeを使って作成して下さい) ヒントで #invlude <stdio.h> void main(void){ char *buf; //入力文字列用 char *seq; //入力文字列用コピー用 char *rev; //逆順文字列用 int lec, i; buf =(char*)malloc(81); printf("文字列を入力:"); scanf("%s"buf ); for(i = 0; buf[i] ??? '\0'; i++){ } Ien = i; /* lenに文字列の長さが入る */ seq = ???(??? + 1); /* len+1文字文確保*/ for(i = 0; ???; i++){ seq[0] = buf[0]; } free(buf); rey = ???(len + 1); for(i = 0; < len; i++){ rev[len - i - 1] = seq[i]; } ren[i] ~ '\0'; printd("入力文字列 : %s\n",sep); でたんですが、全然分からなくて足りない部分の答えを教えてもらえると助かります;

  • C言語について

    C言語のじゃんけんゲームを作成したいのですが、 仕様は 1.利用者とコンピュータによる対戦形式とします。 2.利用者がキーボードから入力した手(グー・チョキ・パー)と、擬似乱数を用いて生成したコンピュータの手を比較し、利用者の勝ち・あいこ・負けの結果を表示しなさい。 3.利用者の入力が不正の場合には再度入力を促すなど、適切な処理をしなさい。 4.これまでの累積勝利数・引き分け数・敗北数をそれぞれ、user_win・user_draw・user_loseの3つの変数(int型)に格納しなさい。 5.連勝中の場合は「5連勝中!」などと表示させるようにしなさい。 6.あいこである限りは自動的にじゃんけんを反復しなさい。 7.勝敗がついた場合、利用者にまだ継続するか質問した上で、じゃんけんを反復させなさい。 8.じゃんけんを終了した場合、これまでの通算成績として、累積勝利数・引き分け数・敗北数のほか、勝利=累積勝利数÷(累積勝利数+累積敗北数)×100、および、最大勝利数を計算して表示しなさい。 という仕様のじゃんけんゲームを作成したいのですが、下記に書いているまでしかできません。誰か教えていただけないでしょうか。分からなくて困っています。 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ int a,c; srand(time(NULL)); c = rand()%3+1; printf("手を入力してください [1:グー 2:チョキ 3:パー] "); scanf("%d",&a); if(a==1 && c==1) printf("あなたはグーで、私もグーでした。アイコです。\n"); else if(a==1 && c==2) printf("あなたはグーで、私はチョキでした。あなたの勝ちです。\n"); else if(a==1 && c==3) printf("あなたはグーで、私はパーでした。あなたの負けです。\n"); else if(a==2 && c==1) printf("あなたはチョキで、私はグーでした。あなたの負けです。\n"); else if(a==2 && c==2) printf("あなたはチョキで、私もチョキでした。アイコです。\n"); else if(a==2 && c==3) printf("あなたはチョキで、私はパーでした。あなたの勝ちです。\n"); else if(a==3 && c==1) printf("あなたはパーで、私はグーでした。あなたの勝ちです。\n"); else if(a==3 && c==2) printf("あなたはパーで、私はチョキでした。あなたの負けです。\n"); else if(a==3 && c==3) printf("あなたはパーで、私もパーでした。アイコです。\n"); else printf("正しい手を入れてください。\n"); return 0; }

  • C言語の平均点の出し方

    C言語の平均点の出し方 こんばんは。 よろしくお願いいたします。 名前と得点を入力してから平均を出すプログラムを作っているのですが、名前と得点を対応させるにはどうしたらよいでしょうか。また、人数は固定化したくないためどのように平均点を出せばよいのかわかりません。 よろしくお願いいたします。

  • C言語についてです。(困っております)

    プログラミング初心者で右も左もわからないので力になってください。 ニコニコ動画で、【第05回】ミクと学ぶC言語【if文】という動画を見ています。 その中で出てきたソースコードで、コンパイルまではうまくいくのですが コマンドプロンプトの画面で、文字を入力すると、動作を停止しました。 という通知が出てきます。 うまくできなくて困っているのでどうかわかりやすくアドバイスの程 よろしくお願いします。 ソースコードです。 ↓ /* BMI.c */ #include<stdio.h> int main(void){ double height,weight,BMI; printf("身長[ m]:"); scanf("%if",&height); printf("体重[kg]:"); scanf("%if",&weight); BMI=weight/height/height; printf("BMIは%fです。\n",BMI); if(BMI>=25){ printf("肥満です!\n"); }else if(BMI<18.5){ printf("低体重です!\n"); }else{ printf("標準です!\n"); } return 0;

  • C言語 繰り返しの問題

    C言語の初心者です。 キーボードから値を入力して、1から入力された値までの奇数の和を求めて出力するプログラムを作成します。以下のように組んでみましたが、全然うまくいきません。誰か教えていただけませんか? #include<stdio.h> int main(void) { int i,n,sum; sum=0; printf("入力値:",n); scanf("%d",&n); if(n<=0) { printf("\n合計値:0\n"); } else { printf("入力値:\n",n); for(i= 1; i<= n; i=i+2) { if(n%2=1) { sum=sum+i; } } } printf("\n合計値\n",sum); }

専門家に質問してみよう