C/C++の宿題を片付け ..
494:デフォルトの名無しさん
07/06/29 02:01:36
>>491 >>489
>>487 の一部だけ変更。変更部分は↓の一番上と下が一致するところの中
if( fsv==NULL ) { fclose(fop); return 1; }
i=1;
fprintf(stdout,"%d:",i);
fprintf(fsv,"%d:",ch);
while( (ch=fgetc(fop))!=EOF ) {
fprintf(stdout,"%c",ch);
fprintf(fsv,"%c",ch);
if( ch=='\n' ) {
i++;
fprintf(stdout,"%d:",i);
fprintf(fsv,"%d:",ch);
}
}
fclose(fop);
495:デフォルトの名無しさん
07/06/29 02:06:46
>>494 訂正
fprintf(fsv,"%d:",ch); < の2箇所を
fprintf(fsv,"%d:",i); < ,i に変更
496:デフォルトの名無しさん
07/06/29 02:07:39
>>495 じゃなくて、2箇所ある
fprintf(fsv,"%d:",ch); < これを って意味ね。出力結果がおかしいから分かるだろうけど。
497:デフォルトの名無しさん
07/06/29 02:31:05
[1] 授業単元: プログラミング基礎A
[2] 問題文(含コード&リンク):
奇数かどうか判定する関数および,偶数かどうか判定する関数を作成しなさい.
◎以下を参考の事
奇数判定: int isOdd(int i)
数字iが奇数の場合1,
偶数の場合0を返す関数
偶数判定: int isEven(int i)
数字iが偶数の場合1,
奇数の場合0を返す関数
main関数ではif文を使って正しく動いているかどうか
チェックしてください.
※戻り値にはboolを利用してもOKです
[3]
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio .NET 2003
[3.3] 言語:C++
[4] 期限:2007年6月29日10時30分
[5] その他の制限:出来るだけ複雑ではなく簡単(初歩的)なものにすること。
よろしくおねがいします。
498:デフォルトの名無しさん
07/06/29 02:33:07
>>497
int isOdd(int i){return i%2;}
int isEven(int i){return i%2==0;}
499:492
07/06/29 05:10:44
テンプレわかりづらかったので、もっかい質問します
是非、教えてください、お願いします。
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
テキストファイルをよみこんでたとえばファイルに
cccchaa
というのがかいてあったら下のような感じで画面とテキストファイルに表示する
c→4h→1a→2
ほかの例は
abdcdoddooffffoo
の場合
abc→1 df→4 o→5
[3] 環境
[3.1] Linux
[3.2] gcc
[3.3] 言語: C
[4] 期限:5時間後くらい
500:492
07/06/29 05:13:41
>>494-496さん本当にありがとうございます!!
501:デフォルトの名無しさん
07/06/29 06:03:57
>>499
#include <stdio.h>
int main(void)
{
int c, nc[256] = {0}, nmax = 0, n, found;
while ((c = getchar()) != EOF) {
nc[c]++;
if (nc[c] > nmax)
nmax = nc[c];
}
for (n = 1; n <= nmax; n++) {
found = 0;
for (c = 0; c < 256; c++) {
if (nc[c] == n) {
putchar(c);
found = 1;
}
}
if (found)
printf("→%d", n);
}
printf("\n");
return 0;
}
502:492
07/06/29 06:27:59
>>501さんありがとうございます。
けどコンパイルしてみたらエラーがたくさん表示されて…。
あとファイルから読み込んで結果を画面に表示してファイルに書き込む
プログラムをつくりたいです。またもしよければアドバイスおねがいします
503:デフォルトの名無しさん
07/06/29 07:02:16
>>500 そういや、int i; も追加だったっけ・・・ってできた?ようだから良いか。
504:492
07/06/29 07:07:45
>>503さんのをアレンジしたらできました!ありがとうございました!!
もしよければ>>499を教えてほしいです…何度もすいません。
505:デフォルトの名無しさん
07/06/29 07:24:24
>>501は全角スペースが入っているからでそ
#include <stdio.h>
int main(void)
{
int c, nc[256] = {0}, nmax = 0, n, found;
while ((c = getchar()) != EOF) {
nc[c]++;
if (nc[c] > nmax)
nmax = nc[c];
}
for (n = 1; n <= nmax; n++) {
found = 0;
for (c = 0; c < 256; c++) {
if (nc[c] == n) {
putchar(c);
found = 1;
}
}
if (found)
printf("→%d", n);
}
printf("\n");
return 0;
}
506:492
07/06/29 07:32:56
これにファイルポインタとか使いしていけばいいんですかね?
これだけだと動きませんでしたので・・・
507:デフォルトの名無しさん
07/06/29 07:38:07
>>506
題意が良くわからないんだが、要するに文字列の中の各アルファベットの数を数えろってことかね?
508:デフォルトの名無しさん
07/06/29 07:39:33
492と493の例だと表示順がわからないんだけど。
出てきた順番でもないし、アルファベット順でも個数順でもない。
509:492
07/06/29 07:44:45
>>507さん、そうですねアルファベット順にしたいです。
cccchaaの例はちょっと間違って書いてましたすいません…。
もうひとつ例としては
aaabcddddee
の場合は
a→3 bcd→4 e→2
です。何度もすいません…アルゴリズムがいまいち思いつかないので…。
510:デフォルトの名無しさん
07/06/29 08:01:13
アルファベットの数を数える部分はできたが、同じ数のものを並べてってのが面倒やな・・・
もう少しで出来そうだが、そこんとこで手詰まり中。まぁ、なんとかなるさ。
511:デフォルトの名無しさん
07/06/29 08:09:25
>>459
ソースコードを昇順ソートできるようにするという問題です。
何度もすみません。
512:デフォルトの名無しさん
07/06/29 08:23:46
>>381お願いします
513:デフォルトの名無しさん
07/06/29 09:13:21
>>509 >>506 >>504 >>499 >>492
汚いソースだが我慢せい
URLリンク(kansai2channeler.hp.infoseek.co.jp)
514:デフォルトの名無しさん
07/06/29 09:15:32
>>509 >>506 >>504 >>499 >>492 訂正
URLリンク(kansai2channeler.hp.infoseek.co.jp)
515:デフォルトの名無しさん
07/06/29 09:27:10
>>509 >>506 >>504 >>499 >>492 さらにマクロでシェイプアップ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
516:デフォルトの名無しさん
07/06/29 09:27:58
>>515 っつか str[1024], <これ要らなかった、削除プリーズ
517:459
07/06/29 12:12:43
時間延長してもらいました。
順を追って試してるんですがうまくいかないです・・・
518:デフォルトの名無しさん
07/06/29 12:41:20
[1] 授業単元:プロC
[2] 問題文(含コード&リンク):
↓*ndPtrPtr が指すリストの n 番目のノード(ノード番号は 0 番から始まる)を削除する.
削除したノードに割り当てられていたメモリは解放される.ただし,リスト中のノード数が
n 以下で,n番目のノードがない場合には,何もしない.
戻り値は,n番目のノードが削除できたときには SUCCESS,
n番目のノードが存在せず,削除できなかったときには FAILURE を返す.
URLリンク(kansai2channeler.hp.infoseek.co.jp)
上のnodeInsertを改良して,指定された挿入場所のインデックス n が負のときには,
新しく挿入されたノードがリストの末尾から数えて -n 番目になるようにせよ.
(たとえば,n == -1 のときには,末尾に挿入される)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:月曜日まで
[5] その他の制限: なし
よろしくお願いします。
519:デフォルトの名無しさん
07/06/29 12:43:12
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
3d^2x/dt^2+dx/dt+2x=4
x(t=0)=0
dx/dt(t=0)=0
上記の微分方程式をルンゲークッタ法を用いて解け
[3] 環境
[3.1] OS: windowsXP
[3.2] コンパイラ名とバージョン: bcc32
[3.3] 言語: C言語
[4] 期限: ([2007年7月1日まで
[5] その他の制限: なし
お願いします
520:デフォルトの名無しさん
07/06/29 12:58:22
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):ふたつあります。
@文字列strをno回だけ連続して表示する関数
void put_stringn(const char str[], int no){/*…*/}を作成せよ。
A以下に示した関数をもとにして、文字列を後ろから逆に表示する("SEC"を受けたら"CES"と表示する)関数put_rstringを作成せよ。
#include <stdio.h>
void put_string(const char str[])
{
unsigned i = 0;
while(str[i])
putchar(str[i++]);
}
int main(void)
{
char str[100];
printf("文字列を入力してください:");
scanf("%s", str);
put_string(str);
putchar(!\n!);
return(0);
}
[3] 環境 [3.1] OS: (Windows/Linux/等々) Linux [3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限:今日中なるべく早く
[5] その他の制限: 明解C言語入門編テキスト使用
お手数おかけしますがどうかよろしくお願いします。
521:デフォルトの名無しさん
07/06/29 13:03:46
明解C言語入門編
URLリンク(www.bohyoh.com)
これか?
522:デフォルトの名無しさん
07/06/29 13:04:27
>>521さん
そうです。
523:デフォルトの名無しさん
07/06/29 13:04:39
[1] 授業単元:C++研究
[2] 問題文:
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
上記2つのプログラムのクラス(設計図)のインスタンス生成部分をnew演算子を用いた
ものに修正しなさい(すべての個所)。もちろんこのインスタンスをdelete演算子
で削除することを忘れないこと。
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:Visual studio.2005
[3.3] 言語: C++
[4] 期限: ([2007年7月1日12:00まで]
[5] その他の制限:特になし
よろしくお願いします。
524:デフォルトの名無しさん
07/06/29 13:06:42
>>520
#include <string.h>
void put_string(const char str[])
{
unsigned i = strlen(str)-1;
while(str[i])
putchar(str[i--]);
}
525:デフォルトの名無しさん
07/06/29 13:09:21
>>520 なんか全角が入ってたり putchar の括弧の中がおかしいから全部書くわ
#include <stdio.h>
#include <string.h>
void put_string(const char str[]) {
unsigned i = strlen(str)-1;
while(str[i])
putchar(str[i--]);
}
int main(void) {
char str[100];
printf("文字列を入力してください:");
scanf("%s", str);
put_string(str);
putchar('\n');
return(0);
}
526:デフォルトの名無しさん
07/06/29 13:15:04
>>525さん
ありがとうございます。
void put_stringをvoid put_rstringにすればいいんですかね?#include <string.h>て
習っていないのですが…
もしよろしければ問題@のほうもよろしくお願いします
527:デフォルトの名無しさん
07/06/29 13:23:43
内容:
[1] 授業単元:C++
[2] 問題文:
#include <stdio.h>
#define NUM4
#define NAME_LENGTH 20
struct seiseki{
char name[NAME_LENGTH];
int jpn;
int eng;
int math;
/*A*/
}
int main(void){
struct seiseki i06[NUM];
double max;
int max_i;
int i;
for(i=0;i<NUM;i++){
printf("%d番目の名前を入れてください",i);
scanf("%s",i06[i].name);
printf("%d番目の国語の成績を入れてください",i);
scanf("%d",i06[i].jpn);
printf("%d番目の英語の成績を入れてください",i);
scanf("%d",i06[i].eng);
printf("%d番目の数学の成績を入れてください",i);
scanf("%d",i06[i].math);
}
/*B*/
}
528:デフォルトの名無しさん
07/06/29 13:31:36
>>520
#include <stdio.h>
void put_stringn(const char str[], int no) {
int i;
for(i=0; i<no; i++)
printf("%s \n",str);
}
void put_string(const char str[]) {
int i = 0;
while(str[i]!='\0') i++;
while(i-->0)
putchar(str[i]);
}
int main(void) {
char str[100];
int no;
printf("文字列を入力してください:");
scanf("%s", str);
printf("@文字列strをno回だけ連続して表示する関数 no > ");
scanf("%d",&no);
put_stringn(str,no);
printf("A以下に示した関数をもとにして、文字列を後ろから逆に表示\n");
put_string(str);
putchar('\n');
return(0);
}
529:デフォルトの名無しさん
07/06/29 13:31:59
以下のプログラムに構造体を各人の名前と合計点を格納できるように拡張し、最終的には合計点が一番よい学生の名前を出力するプログラムを作成せよ。/*A*/ /*B*/に入れよ
また、成績のAランク(成績が80以上100以下)の個数を格納する変数に変更して、Aランクの数が一番多い学生の名前を出力するプログラムを作成せよ。/*A*/にAランクの数
[3] 環境
[3.1] OS:窓
[3.3] 言語:C++
[4] 期限:明日
[5] その他:制限 構造体 他にはとくになかったです。
よろしくお願いします。
530:デフォルトの名無しさん
07/06/29 13:34:25
>>528さん
ありがとうございます。
すみません、@とAの問題は別物なんです
ややこしくかいてしまってすみません
>>528にかいていただいたものをどうわければいいのでしょうか…
本当にすみませんorz
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4780日前に更新/213 KB
担当:undef