5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

C/C++の宿題を片付けます 83代目

1 :デフォルトの名無しさん:2007/02/07(水) 15:41:38
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】        http://chomework.sakura.ne.jp/
【wiki】               http://www23.atwiki.jp/homework/


2 :デフォルトの名無しさん:2007/02/07(水) 15:44:10
【前スレ】
C/C++の宿題を片付けます 82代目
http://pc10.2ch.net/test/read.cgi/tech/1169575464/

【重要】
・課題に動作で必要なファイルがある場合にはロダにUPする事、回答者に作らせてはならない
なければ質問者が作る

・回答の督促は禁止
但し、スレ中の全未回答問題レス番号を張る場合のみ許可とする

【質問テンプレ】 サンプル
[1] 授業単元:配列 ポインタ ファイルアクセス
[2] 問題文(含コード&リンク):
問題文全文リンクhttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/xxxx.txt
必要ファイル:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/yyyy.zip
起動時にリダイレクトにて読込ませるデータファイルです

[3] 環境 Windows Xp SP2
[3.3] 言語: Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
[4] 期限: ([200x年02月07日13:00まで] (24時表示ガ望ましい)


3 :デフォルトの名無しさん:2007/02/07(水) 16:05:23
・作りかけの動かないソースを宿題として投げるのは止めてください
  自分が 判らない・作れない・動かない等は、たいてい何か条件を見逃している為です
  課題全文を掲載する事によって、質問者が見落としている事も回答者に知らせる事が出来ます

・課題全文をテンプレの様に書き別途ファイルをロダにUPすれば回答を得やすくなります
  作りかけであっても「途中までやりました」「ここまで作成しまた」としてUPすると
  クラス名・変数名 コーディンスタイルなど追従するため理解が楽になります


4 :デフォルトの名無しさん:2007/02/07(水) 16:16:31
・死んでください

5 :デフォルトの名無しさん:2007/02/07(水) 17:19:14
回答が得られないケースの傾向

・マルチ
  別のスレッドに同一の質問がある
・レポート
  考察を述べよ・原因理由を述べよ 等 記述が主旨の宿題はスルーされてます
・督促
  【重要】のルールを守らず同課題が張られると回答者の気力が萎えます
・重複質問
  直近に 同じ/似た 質問があったかも知れません・前スレぐらいまでは検索してみましょう
  別人が新規の質問として投稿しても督促とみなされスルーされます
・動作に必要なファイルがない
  読込みデータを回答者が作ると、課題と別のフォーマットになる可能がある
  (回答を得ても動かない場合はほとんどこのケース)
・作りこんだソースの一部しかUPされない
  回答者が仮のmainを作らないと起動する事が出来ないものはスルーされます
・課題掲載がなく作りかけのソースのみUPされてる
  仕様(課題)が判らないと答えようがない
・環境構築が大変
  別ミドルウェァをインストールしなければならないようなものはスルーされます
・言語仕様かミドルウェアの仕様か判別できない
  もはや宿題のレベルではないような・・・


6 :デフォルトの名無しさん:2007/02/07(水) 17:38:56
・こんなにダラダラと決まり事作ったって質問する奴は読まない

7 :デフォルトの名無しさん:2007/02/07(水) 17:45:34
長くて読む気がしない。
要点を三行半でまとめてくれないか?

8 :デフォルトの名無しさん:2007/02/07(水) 17:51:43
・バーカ

9 :デフォルトの名無しさん:2007/02/07(水) 18:02:09
・↑要点

10 :デフォルトの名無しさん:2007/02/07(水) 18:14:08
>>6
読まないでいいんじゃね?
回答欲しい奴はは読むだろうしw

11 :デフォルトの名無しさん:2007/02/07(水) 18:21:04
何故回答が得られないのか、まとまってるな
未回答の理由がリンク1つ >4 で済むから楽だな

12 :デフォルトの名無しさん:2007/02/07(水) 18:22:12
>4 じゃね〜やw >5だったorz

13 :デフォルトの名無しさん:2007/02/08(木) 02:06:45
いきなり軽く荒れてるねー

14 :デフォルトの名無しさん:2007/02/08(木) 02:22:37
決まり事というより回答する為には必須のようなw

15 :デフォルトの名無しさん:2007/02/08(木) 02:59:44
ほっぺ膨らませて鉄アレイみたいな顔になるところとか、期も過ぎる。

16 :15:2007/02/08(木) 03:01:17
物凄い勢いで誤爆した。スマソ

17 :デフォルトの名無しさん:2007/02/08(木) 04:19:35
前スレ>>959 http://pc10.2ch.net/test/read.cgi/tech/1169575464/959
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3625.zip

18 :デフォルトの名無しさん:2007/02/08(木) 05:58:06
前スレ>>947 http://pc10.2ch.net/test/read.cgi/tech/1169575464/947
x(10)が分からん。もとい、刻み幅が出せん。教えてくれ。



前スレでテンプレにそう形なのはhttp://pc10.2ch.net/test/read.cgi/tech/1169575464/956とかかな。
crypt.hが分かる人よろ。

19 :デフォルトの名無しさん:2007/02/08(木) 10:06:16
>>15
驚きました

20 :デフォルトの名無しさん:2007/02/08(木) 11:57:48
おらっ、俺にも簡単に解ける宿題を質問しろ!

21 :デフォルトの名無しさん :2007/02/08(木) 14:08:18
いきなりですみません。
倍精度整数型の配列a[100]にキーボードから入力された整数を順に格納する、ただし、今までに
入力された数を掛け合わせたものが1000万を超えれば、そこで終了し、結果と
そこまでの配列aの内容を逆順に出力するプログラムをC言語で作れ。
この問題解いていただけませんか?お願いします



22 :デフォルトの名無しさん:2007/02/08(木) 14:14:52
断る。去れ。

23 :デフォルトの名無しさん:2007/02/08(木) 14:31:21
倍精度整数型ってCの型で言うと何?

24 :デフォルトの名無しさん:2007/02/08(木) 14:40:47
>>21
環境に依存する
倍長精度整数型の表せる範囲は言語や処理系によって違う
>1のテンプレ使え

25 :デフォルトの名無しさん:2007/02/08(木) 14:47:13
単精度浮動小数点数 float
倍精度浮動小数点数 double

char short int long (long long)
単精度整数? 倍精度整数? 対応する日本語訳が難しいな。

26 :デフォルトの名無しさん:2007/02/08(木) 14:57:27
文字型 char: 1 byte
文字列型 char *:
単精度整数型 short: 2 byte
整数型 int:  4 byte
倍精度整数型 long: 4 byte (環境依存)
単精度浮動小数点型 float: 4 byte
倍精度浮動小数点型 double: 8 byte

最大1000万だから32bit変数で十分だね


27 :デフォルトの名無しさん:2007/02/08(木) 15:01:58
堂々と嘘を書かないでくれ

28 :デフォルトの名無しさん:2007/02/08(木) 15:03:56
ウソではなく正確ではない、かと

29 :デフォルトの名無しさん:2007/02/08(木) 15:05:43
どこの腐れ政治家だよ

30 :デフォルトの名無しさん:2007/02/08(木) 15:07:21
息を吐くように嘘をつく人種もいるそうな。

31 :デフォルトの名無しさん:2007/02/08(木) 15:19:25
>>25
長精度整数とか倍長精度整数とかは見たことがある
だが整数に精度は会わないと思う
短整数型、長整数型でいい

32 :デフォルトの名無しさん:2007/02/08(木) 15:25:09
倍長精度整数型 C言語 の検索結果 約 21,000 件中 1 - 10 件目 (0.14 秒)

33 :デフォルトの名無しさん:2007/02/08(木) 15:26:44
>>27
どれをウソと言っているの?

34 :デフォルトの名無しさん:2007/02/08(木) 15:32:56
>>21
これで好きなように改造しろ

#include <stdio.h>
void main(void){
long a[100],b=1,i;
for (i=0;i<100&&b<10000000;i++ ) { scanf("%ld",&a[i]); b *= a[i]; } while ( i-- ) printf( "%ld ", a[i] );
}


35 :デフォルトの名無しさん:2007/02/08(木) 15:44:25
>33
>文字列型 char *:
これのことかな?

36 :デフォルトの名無しさん:2007/02/08(木) 15:47:13
>>35
サイトの内容をコピペしたのでいらんもんまでくっついてきただけ
それは消し忘れた

37 :デフォルトの名無しさん:2007/02/08(木) 15:54:17
64bitネイティブの世の中になってコンパイラが対応したら
int幅が64の時代になるのかなぁ

                                                                                         昭和は遠くになりにけり

38 :デフォルトの名無しさん:2007/02/08(木) 16:05:27
int自体はCPUのビットと関係無い

39 :デフォルトの名無しさん:2007/02/08(木) 16:12:50
>38
ありぁそなの?メモリのアドレッシング幅=intだと思ってた
雑談スマソ>All

宿題スレ再開どぞ

40 :デフォルトの名無しさん:2007/02/08(木) 16:17:23
よろしくお願いします。
[1] 授業単元: プログラミング言語演習1
[2] 問題文:
キー入力した10人分の得点データを整数型配列 に格納し、その後、優(80以上)、良(70〜79)、可(60〜60)
それぞれの人数と平均点を求め、出力せよ。
[3] 環境 : VC++ 6.0
 [3.1] OS: WindowsXP
 [3.2]言語:C++
 [4]期限:2月9日 12時


41 :デフォルトの名無しさん:2007/02/08(木) 17:45:51
>>40 可は60〜69にした 違ったら直してくれ
#include <stdio.h>
#define N (10)
void main(void)
{
int i,a[N],t6=0,t7=0,t8=0,c6=0,c7=0,c8=0;
    for (i=0;i<N;i++){
        printf("%2d番目の得点:",i+1);
        if (EOF==scanf("%d",&a[i]) )
            break;
    }

    for (i=0;i<N;i++){
            if ( 80<=a[i] ) {  c8++;  t8 += a[i]; }
        else if ( 70<=a[i] ) {  c7++;  t7 += a[i]; }
        else if ( 60<=a[i] ) {  c6++;  t6 += a[i]; }
    }

    if( c8 != 0)
        printf(" 優  %d人 ave %d\n", c8, t8/c8);
    if( c7 != 0)
        printf(" 良  %d人 ave %d\n", c7, t7/c7);
    if( c6 != 0)
        printf(" 可  %d人 ave %d\n", c6, t6/c6);
}


42 :デフォルトの名無しさん:2007/02/08(木) 17:52:13
>>41
×int i,a[N],t6=0,t7=0,t8=0,c6=0,c7=0,c8=0;
○int i,a[N]={0},t6=0,t7=0,t8=0,c6=0,c7=0,c8=0;


43 :デフォルトの名無しさん:2007/02/08(木) 18:14:42
>>41,>>42
ありがとうございます。

44 :デフォルトの名無しさん:2007/02/08(木) 23:53:08
>>43
出力するのは「それぞれの人数」と「それぞれの平均点」なのかい?
「それぞれの人数」と「平均点」のようにも見えるけれど。
それから「可」の点数の範囲は結局いくらだったの?

45 :デフォルトの名無しさん:2007/02/09(金) 00:12:09
>>21

#include <stdio.h>

int main(){

long int a[100];
int i,j,total=1;
puts("100個の整数格納しろやカスが");
for(i=0;i<100;i++){
scanf("%d",&a[i]);
total *= a[i];
if(total > 10000000){
printf("今までに入力された数を掛け合わせたもの:%d\n",total);
for(j=i;j>=0;j--)
printf("a[%d]=%d\n",j,a[j]);
break;
}
}
printf("終了だ包茎野郎");
return 0;
}

46 :デフォルトの名無しさん:2007/02/09(金) 00:39:34
>>40
//可は60〜69です
#include <iostream>
using namespace std;
int a[10];
int i, l=0, m=0, s=0, ss=0;
float sum=0;

int main(){
for(i=0; i<10; i++){
cout << "?\n";
cin >> a[i];
sum += a[i];
if(a[i]>=80 && a[i]<=100){l++;} else if(a[i]>=70 && a[i]<=79){m++;
} else if(a[i]>=60 && a[i]<=69){s++;} else {ss++;}
}
cout << "優:" << l << " 良:" << m << " 可:" << s << " 不可:" << ss << "\n";
cout << "平均:" << sum/10 << '\n';
return 0;
}

47 :デフォルトの名無しさん:2007/02/09(金) 01:28:03
前スレ<<712 http://pc10.2ch.net/test/read.cgi/tech/1169575464/712


48 :デフォルトの名無しさん:2007/02/09(金) 05:37:52
>>47
ネットワークについて無知ゆえにスルー


49 :デフォルトの名無しさん:2007/02/09(金) 05:45:48
>>47
ステップ数がおおくなりそうなのでスルー
15日までだから、まだまだおk

50 :デフォルトの名無しさん:2007/02/09(金) 14:05:54
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク)
10文字以内の文字列を入力し格納、表示する。
また配列の先頭アドレスを格納するポインタ変数を用意し
そのポインタ変数を使って1文字ずつ画面に出力する。
for文を使用(Null文字を見つけるまでポインタをインクリメント)すること
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: 特になし

よろしくお願いします

51 :デフォルトの名無しさん:2007/02/09(金) 14:17:38
>>50
#include <stdio.h>

int main(void)
{
char str[11];
char *p;

fgets(str, 11, stdin);
printf("%s\n", str);
for (p = str; *p != '\0'; p++){
putchar(*p);
}
puts("");
return 0;
}

52 :デフォルトの名無しさん:2007/02/09(金) 14:44:07
>>50
#include <stdio.h>

int main(void)
{
char str[11];
char *p = str;
fgets(str, 11, stdin);
for(; putchar(*p++); );
return 0;
}

53 :デフォルトの名無しさん:2007/02/09(金) 14:54:44
アヒャ
>>50
#include<stdio.h>
void main(){
char*p;
for(gets(p);*p!='\0';printf("%c\n",*p++));
}


54 :デフォルトの名無しさん:2007/02/09(金) 15:02:11
gets使うなよ。
それ以前にバッファ確保してないじゃないか。
子ね

55 :デフォルトの名無しさん:2007/02/09(金) 15:03:36
(´・ω・`)ショボーン

56 :デフォルトの名無しさん:2007/02/09(金) 15:18:26
#include <stdio.h>
void main(void) {
char s[11],*p;
for(fgets(p=s,sizeof(s),stdin),puts(s);*p||(exit(0),0);printf("%c\n",*p++));
}

void mainにした場合はexitするのがお作法だろう

57 :デフォルトの名無しさん:2007/02/09(金) 15:31:44
>void mainにした場合は
あ り え な い

58 :デフォルトの名無しさん:2007/02/09(金) 15:35:29
>>57
>>56>>53に対するつっこみじゃねえか?

59 :53:2007/02/09(金) 15:39:19
>>56
了解

60 :デフォルトの名無しさん:2007/02/09(金) 16:00:07 ?2BP(222)
void main自体があり得ない。

61 :デフォルトの名無しさん:2007/02/09(金) 16:04:44
組み込みでは結構使うが…スレ違いだな

62 :デフォルトの名無しさん:2007/02/09(金) 17:30:53
int main() にして
return 0; でOSに正常終了を返すのがセロリー?

63 :デフォルトの名無しさん:2007/02/09(金) 19:04:48
62 名前:デフォルトの名無しさん 投稿日:2007/02/09(金) 17:30:53
int main() にして
return 0; でOSに正常終了を返すのがセロリー?


64 :デフォルトの名無しさん:2007/02/09(金) 19:06:28
63 名前:デフォルトの名無しさん[] 投稿日:2007/02/09(金) 19:04:48
62 名前:デフォルトの名無しさん 投稿日:2007/02/09(金) 17:30:53
int main() にして
return 0; でOSに正常終了を返すのがセロリー?

65 :デフォルトの名無しさん:2007/02/09(金) 19:11:26
64 名前:デフォルトの名無しさん 投稿日:2007/02/09(金) 19:06:28
63 名前:デフォルトの名無しさん[] 投稿日:2007/02/09(金) 19:04:48
62 名前:デフォルトの名無しさん 投稿日:2007/02/09(金) 17:30:53
int main() にして
return 0; でOSに正常終了を返すのがセロリー?


66 :デフォルトの名無しさん:2007/02/09(金) 19:33:08
>セロリー?
開発環境が違うからぁ〜〜ぁ〜〜好き嫌いはイナメナイ〜♪

67 :デフォルトの名無しさん:2007/02/09(金) 20:08:29
>>62-65
再帰処理ですね!センセー!

68 :デフォルトの名無しさん :2007/02/09(金) 20:09:12
[1] 授業単元:卒業研究
[2] 問題文(含コード&リンク):
ブロックソートによるソートを行いその後に圧縮
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] 知識足らずで分かりません。
 [3.3] 言語:Cを希望
[4] 期限:2月10日朝7時くらいまでです・・・w
[5] その他の制限:特に無いです。一応学校ではc c++基礎はやりました。
 ただサボりすぎてて分からないです。ww

これが終わらないと卒業できないんでお願いしますww

69 :デフォルトの名無しさん :2007/02/09(金) 20:11:56
68です
追記
abcab
babca
ababc
cabab
bcabc

こんなテキストファイルをソートできて圧縮できればいいので簡単にお願いしますw

70 :デフォルトの名無しさん:2007/02/09(金) 20:13:26
>>68
良い方に考えるんだ
卒業できないってことはもう一年学べるって事じゃないか
自力でがんばれよ

71 :68:2007/02/09(金) 20:18:54
後一年通う事は出来ないw
まー巡回シフトさせなきゃいけなくてシフトさせながら格納とか分かりません。
本当に(ry

72 :デフォルトの名無しさん:2007/02/09(金) 20:20:03
>>68
サボってる間何してた?

73 :デフォルトの名無しさん:2007/02/09(金) 20:21:13
こいつの態度が気に入らない

74 :68:2007/02/09(金) 20:22:01
>>72
ネトゲとスロットww
ダメ人間確定ですwww

75 :68:2007/02/09(金) 20:23:53
正直人に物を頼む態度でない事は分かってます。
ダメならばスルーして下さい。

まぁ今まで自分がやってきた事なので甘い考えで卒業しようとするほうが間違ってるんですけどね・・・

76 :デフォルトの名無しさん:2007/02/09(金) 20:29:43
卒業研究って、プログラムよりその後の論文の方が大変だと思うんだ・・・

77 :68:2007/02/09(金) 20:34:39
>>76
なぜか知らないんですが論文が無いんです。
ただほかにも課題が山のように有りますが・・・

78 :デフォルトの名無しさん:2007/02/09(金) 20:50:04
論文を書かなくてもいいっていうのもおかしい話だw
文系か?

79 :デフォルトの名無しさん:2007/02/09(金) 20:53:27
大学じゃないんだろ

80 :68:2007/02/09(金) 21:06:02
専門です。

81 :デフォルトの名無しさん:2007/02/09(金) 21:08:05
専門ってことはプログラミングを専門に勉強してきたんだろ?
専門で卒業できないってヤバくね?就職は決まった?

82 :68:2007/02/09(金) 21:13:48
卒業したら違う専門に入りなおすか
バイトしながら学費をためようと思ってるのですが2年間学費出してもらったので
せめて卒業する事が親孝行かなぁと・・・

この道につくのは諦めました・・・

83 :デフォルトの名無しさん:2007/02/09(金) 21:14:10
もう相手するなよ。

84 :デフォルトの名無しさん:2007/02/09(金) 21:14:27
基礎やって卒業?

85 :デフォルトの名無しさん:2007/02/09(金) 21:15:49
他の専門に入り直すなら卒業する必要ないだろ

86 :デフォルトの名無しさん:2007/02/09(金) 21:17:56
最近は親孝行のレベルも下がったんだな。
もらったもの何にも返してないじゃん。

87 :デフォルトの名無しさん:2007/02/09(金) 21:20:57
>>86
・・・・・・・・・・・・
か、カラダで支払えと・・・・・・・・?

88 :デフォルトの名無しさん:2007/02/09(金) 21:22:49
その状況では、早めに辞めてその分の学費を浮かしつつ働いて稼ぐのが一番の孝行だったろうな

89 :デフォルトの名無しさん:2007/02/09(金) 21:27:08
頼むからそういう話はよそでやってくれ。

90 :68:2007/02/09(金) 21:29:51
>>88
その通りですね。だらけた自分が終ってる。

91 :デフォルトの名無しさん:2007/02/09(金) 21:49:08
今の季節は学費を稼ぐためにクマと格闘してるよ

92 :デフォルトの名無しさん:2007/02/10(土) 00:06:59
うおっ、ここにも格差社会の風潮が!?

93 :デフォルトの名無しさん:2007/02/10(土) 09:43:37
格差社会っていうよりゆとり教育?

94 :デフォルトの名無しさん:2007/02/10(土) 10:09:34
ここで、>>68

社会はプログラマとしての君を必要としている!
卒業後はぜひとも
「このスレにいる奴らの会社に」プログラマとして就職して
「このスレにいる奴らのプロジェクトに参加して」頑張ってくれ給え!

とか煽ったらどうなるのか・・・

95 :デフォルトの名無しさん:2007/02/10(土) 12:49:19
[1] 授業単元:プログラミングU
[2] 問題文:4×4の魔方陣を全出力するプログラムを作成しなさい。
魔方陣とは縦横斜めのどの列を足しても答えが全て同じとなるものです。
出力例:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16 (これは魔方陣にはなってません。あくまでも出力例です)
[3] 環境
 [3.1] OS: Windows XP
 [3.2] bcc
 [3.3] 言語:C++
[4] 期限:2007年2月13日午後4時
[5] その他の制限: 検索時間を短縮する為に後戻り法(バックトラック)を利用する。
          全パターン出力したら終了する。
          同じものが2つ以上でないようにする。
よろしくお願いします。




96 :デフォルトの名無しさん:2007/02/10(土) 13:11:29
http://ja.wikipedia.org/wiki/%E9%AD%94%E6%96%B9%E9%99%A3#3.C3.973.E3.81.AE.E9.AD.94.E6.96.B9.E9.99.A3
奇数ならまだしも、偶数はまんどくせっ

97 :デフォルトの名無しさん:2007/02/10(土) 16:32:23
>>95
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3627.txt

程よく枝刈りするようにしといた。

それで、結果は7040通りになるんだけど、あってるかね?

98 :デフォルトの名無しさん:2007/02/10(土) 18:59:37
>>94
どーもならん

99 :95:2007/02/10(土) 20:04:35
答えは880通りになるらしいです。

100 :デフォルトの名無しさん:2007/02/10(土) 20:19:51
>>95
魔方陣ならネットに転がっていそうな気もする

101 :デフォルトの名無しさん:2007/02/10(土) 20:34:58
みんな難しいことやってるんだな。
俺にはバックトラックとかわからないよ。

102 :デフォルトの名無しさん:2007/02/10(土) 21:50:33
斜めを忘れてた

103 :デフォルトの名無しさん:2007/02/10(土) 22:11:30
MFC の中でマネージコードの使い方教えてくれるリンク、キーワード、その他
何でも良いから答えてくれ
調べまくってもたどり着かない・・

104 :デフォルトの名無しさん:2007/02/10(土) 22:30:41
>>95
1つようやく出せた。
駄目だ俺のプログラム劇おそ。

105 :97:2007/02/10(土) 22:35:42
>>99
鏡像でx2、回転でx4になるんだが、除外しないといかんの?

106 :97:2007/02/10(土) 23:35:47
>>99
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3628.txt

回したり、裏返したりして同じになるものを除くようにしてみた。
これなら880になるが、設問からするとさっきのほうが正しそう。

左上が8以上の場合は調べなくてよくなるから、実行時間はさっきの半分くらい

107 :デフォルトの名無しさん:2007/02/11(日) 00:17:45
>>106
# 質問者じゃないけど

それ速いね

人間がやるみたいに一つ一つ埋めていって
違ったら前のマスからやりなおしってやったら
回転の除外してないし、かなり遅い。

でもアルゴリズムはさっぱりわからん。

108 :デフォルトの名無しさん:2007/02/11(日) 01:24:59
ttp://www2u.biglobe.ne.jp/~zed/m_stitle.htm

109 :デフォルトの名無しさん:2007/02/11(日) 01:50:02
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):5つの実数を入力して、それを昇順に表示する。
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Visual Studio.NET
 [3.3] 言語: Cです
[4] 期限: 2007年2月13日24時
[5] その他の制限: if文、for文から配列まで習いました。

よろしくお願いしますm(_ _)m

110 :デフォルトの名無しさん:2007/02/11(日) 03:06:05
>109
#include <stdio.h>

#define N 5

int main(void)
{
double temp, a[N];
int i, j, k;

for(i=0; i<N; i++) {
scanf("%lf", &temp);
for(j=0; j<i; j++) {
if(a[j]>temp) {
for(k=i; k>j; k--) a[k] = a[k-1];
break;
}
}
a[j] = temp;
}
for(i=0; i<N; i++) printf("%f\n", a[i]);
return 0;
}


111 :デフォルトの名無しさん:2007/02/11(日) 06:24:25
【質問テンプレ】
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
[3] 環境 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3629.txt
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 月曜日
[5] その他の制限:必要なエラーチェックは必ず行うように、なるべく読みやすいプログラムを心がけろとのことです

112 :デフォルトの名無しさん:2007/02/11(日) 09:06:59
【質問テンプレ】
[1] 授業単元: プログラミング言語基本/基本言語演習
[2] 問題文(含コード&リンク):
「構造体・構造体のポインタを使うことを必須として、
構造体*student[20]の中にname,age,genderというメンバを作り、それぞれの入力を求めて格納し、最終的にそれらの情報をtxtファイルに出力せよ。」
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語: C
[4] 期限: 明日の午前9:00まで。
[5] その他の制限:

自宅のパソコンがいつのまにか修理に出されていてかなり必死ですorz
レス頂けたら携帯でコピーして学校のアカウントに送信して学校でコンパイルするつもりです・・・

113 :デフォルトの名無しさん:2007/02/11(日) 09:17:05
メンバのそれぞれの変数の型は?

114 :112:2007/02/11(日) 09:21:05
>>113

nameはchar[30]、ageはint, genderはchar(これはサイズ指定なし) とのことです。
肝心なところを抜かしてて申し訳ありません・・・

115 :113:2007/02/11(日) 09:24:25
そか。それじゃ誰か頼む。俺はこれから寝るんでw ↓

116 :デフォルトの名無しさん:2007/02/11(日) 09:57:24
│↑
└┘
頑張れ。

117 :デフォルトの名無しさん:2007/02/11(日) 10:05:26
>>110

ありがとうございました!

118 :デフォルトの名無しさん:2007/02/11(日) 10:13:42
>>112
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3630.txt

構造体宣言の後のセミコロン消えちゃったから補っといて。

119 :112:2007/02/11(日) 10:26:41
>>118
こんなに早くできちゃうんですね・・・凄い・・・
本当にありがとうございます。

いつか自分もこのスレで片付ける側になってみたいものです・・・

120 :デフォルトの名無しさん:2007/02/11(日) 10:42:54
[1] 授業単元: プログラミング言語演習
[2] 問題文(含コード&リンク):
1次元配列の中に、20人分の得点データ(0点から100点)を初期値代入し、その後、得点を10点幅の10ランクに分け、
それぞれのランクに何人いるかをカウントし、それらの人数を出力せよ。ただし、カウントには2重ループを、出力には
1重ループのfor分を用いること。また、出力した人数がどのランクか(例えば、0-9,10-9,...)が分かるように出力せよ。

[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン: VC++6.0
 [3.3] 言語: C
[4] 期限: 2月12日10時まで
[5] その他の制限: 特になしです。

よろしくお願いします。

121 :デフォルトの名無しさん:2007/02/11(日) 10:55:17
>>120
100点はどこに入れればいいの?

122 :デフォルトの名無しさん:2007/02/11(日) 11:04:23
>120
#include <stdio.h>
int main(void)
{
int score[20] = { 0, 10, 10, 20, 20, 30, 30, 40, 40, 50, 50, 60, 60, 70, 70, 80, 80, 90, 90, 100};
int rank[11] = {0};
int i, j;
//for(i=0; i<20; i++) rank[score[i]/10]++;
for(i=0; i<11; i++) {
for(j=0; j<20; j++) {
if(score[j]>=i*10 && score[j]<(i+1)*10) rank[i]++;
}
}
for(i=0; i<10; i++) printf("%2d-%2d:%2d\n", i*10, i*10+9, rank[i]);
printf(" 100:%2d\n", rank[i]);
return 0;
}


123 :デフォルトの名無しさん:2007/02/11(日) 11:21:28
>>120 漏れもやってみた

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 20
#define MAX 101
#define RANGE 11

int main() {
int i,a[N];
int r[RANGE];

for(i=0; i<RANGE; i++) r[i]=0;

srand(time(NULL));
for(i=0; i<N; i++) {
a[i] = rand() % MAX;
printf("%3d ",a[i]);
}

for(i=0; i<N; i++)
r[a[i]/10]++;

printf("\n");
for(i=0; i<RANGE-1; i++)
printf("%3d 〜 %3d : %d \n",i*10, i*10+9, r[i]);
printf("%3d : %3d \n",i*10,r[i]);

return 0;
}

124 :デフォルトの名無しさん:2007/02/11(日) 13:14:17
おいおい祝日の日が締め切りなんてスパルタ教育の大学だな。

125 :デフォルトの名無しさん:2007/02/11(日) 13:22:43
読み直してみると月曜提出多いな

126 :デフォルトの名無しさん:2007/02/11(日) 15:08:18
【質問テンプレ】
[1] 授業単元:やさしく学べるC言語
[2] 問題文(含コード&リンク):
以下の機能を満たすプログラムを作成せよ。
・最大20人分の名前をアルファベットによって入力することができる。
・姓と名前を別々に入力することができる。
・endという文字列を打ち込むと20人に満たなくても入力を終了できる。
・入力後、アルファベットで書いたときに一番文字列が長くなる人の名前を表示する。
 その際、姓と名前の最初の一文字だけを大文字に変換して表示する。

[3] 環境
 [3.1] OS: XP 
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限:2007年2月13日
[5] その他の制限:プログラムを使う人が使いやすいように、適切なメッセージを表示することを忘れないように。

宜しくお願いしますm(_ _)m

127 :95:2007/02/11(日) 18:57:33
みなさんありがとうございました。
おかげで提出できました!

128 :デフォルトの名無しさん:2007/02/11(日) 19:11:38
[1] 授業単元:人工知能入門
[2] 問題文:4枚麻雀ゲームの作成
マンズ1〜9まで各3枚、字牌(白、發、中)各3枚
初めに相手が4枚と自分が5枚をランダムに表示(下図)

122白

59發中中

自分の手牌から数字(左から1〜5)を入力し切る。
相手は数字が2、3のような連続の場合>2枚ペア>1,3のような1つ抜かしの数字
という優先順位で切っていく。
どちらかの手が完成するか、山の牌がなくなったら終了。

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C++
[4] 期限: 2007年2月14日まで

ややこしい問題ですみません。麻雀がわかる方、わからなくても私の
つたない説明で作成して頂ける方、どうかよろしくおねがいします。

129 :デフォルトの名無しさん:2007/02/11(日) 19:17:53
>>122,>>123ありがとうございます!

130 :デフォルトの名無しさん:2007/02/11(日) 19:48:42
>>126
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3632.txt

131 :デフォルトの名無しさん:2007/02/11(日) 20:18:06
回答者の質落ちたなぁ
何度も同じメモリ数えるなよ・・・・・

132 :デフォルトの名無しさん:2007/02/11(日) 20:24:00
>>131
質の高い回答希望

133 :デフォルトの名無しさん:2007/02/11(日) 20:36:22
回答以前に問題に問題がある気がする

134 :デフォルトの名無しさん:2007/02/11(日) 20:47:47
質の高い回答希望するヤシは、質の高い回答できないのが現実

第一こんなとこに聞きにくるヤシが、そんな高品質の回答持って逝ったら
「誰にやってもらったの」って疑われるだろうが
このアフォチンが

135 :デフォルトの名無しさん:2007/02/11(日) 20:52:01
>>134
そこまで考えが及ぶわけないだろ。
自分は楽して真面目に苦労した奴よりいい評価もらえればラッキーぐらいにしか思ってないさ。

136 :デフォルトの名無しさん:2007/02/11(日) 21:01:49
流石に十分練られて作られたものは
先生が見ればすぐに只者ではないと気がつく。
そして質問や以前の回答から
こいつが自分でやったんじゃないとバレバレ

137 :デフォルトの名無しさん:2007/02/11(日) 21:02:25
>>131
動けばよくね?

138 :デフォルトの名無しさん:2007/02/11(日) 21:02:58
だから俺は質の低い回答をし続ける
というか質問がむずかしくて俺には回答できない

139 :デフォルトの名無しさん:2007/02/11(日) 21:03:58
>>135
授業単元が「やさしく学べるC言語」だぞ?
うまいソースなんて提出したら一発でバレると思う

140 :デフォルトの名無しさん:2007/02/11(日) 21:19:42
回答の質なんか考えたこと無かったな
おもしろそうな問題を自分の好きなように解いて気が向いたら貼る くらいの感覚だ

141 :デフォルトの名無しさん:2007/02/11(日) 21:26:00
[1] 授業単元: プログラミング言語演習
[2] 問題文(含コード&リンク):
構造体を用い、住所録ソフトを作成せよ。
住所録には名前、住所が入力できるものとする。
また、構造体は動的配列によって確保すること

[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン: VC++6.0
 [3.3] 言語: C
[4] 期限: 2月14日10時まで
[5] その他の制限: 特になしです。

動的確保のところがよくわかりません。
よろしくお願いします。

142 :デフォルトの名無しさん:2007/02/11(日) 21:28:42
>>141
構造体をうp

143 :デフォルトの名無しさん:2007/02/11(日) 21:36:03
>>131
>>131
>>131
>>131
>>131
>>131
>>131


144 :デフォルトの名無しさん:2007/02/11(日) 21:37:51
>>141
malloc
http://www9.plala.or.jp/sgwr-t/lib/malloc.html

realloc
http://www9.plala.or.jp/sgwr-t/lib/realloc.html

calloc
http://www9.plala.or.jp/sgwr-t/lib/calloc.html

145 :デフォルトの名無しさん:2007/02/11(日) 21:44:53
>>141
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct{
char *name;
char *address;
}ADDR;

int main(void){
char buf[512];
ADDR *temp;

if((temp = malloc(sizeof(ADDR))) == NULL)return EXIT_FAILURE;

printf("名前:");
fgets(buf, sizeof(buf), stdin);
if((temp->name = malloc(strlen(buf) +1)) == NULL)return EXIT_FAILURE;
strcpy(temp->name, buf);

printf("住所:");
fgets(buf, sizeof(buf), stdin);
if((temp->address = malloc(strlen(buf) +1)) == NULL)return EXIT_FAILURE;
strcpy(temp->address, buf);

printf("\n名前:%s住所:%s",
temp->name, temp->address
);

return EXIT_SUCCESS;
}

146 :130:2007/02/11(日) 21:52:31
>>131
これで許してね

>>126
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3633.txt

147 :デフォルトの名無しさん:2007/02/11(日) 23:16:17
>>130
ありがとうございました。

148 :デフォルトの名無しさん:2007/02/12(月) 06:30:52
>>146
もしかして>130の言うことホント気づいてない?それともワザとやってる?w


149 :デフォルトの名無しさん:2007/02/12(月) 06:52:51
>>148
もしかして>148の言うことホント気づいてない?それともワザとやってる?w

150 :デフォルトの名無しさん:2007/02/12(月) 09:02:23
このスレは>130の言うことを論議するスレッドになりました。

151 :デフォルトの名無しさん:2007/02/12(月) 09:23:58
ぐだぐだ言ってねーで、難点を明確に指摘したら?濁して場が荒れて楽しむ基地外はお断りだよ

152 :デフォルトの名無しさん:2007/02/12(月) 09:31:14
スレ違いだから指摘なんてしなくていいよ^^

153 :デフォルトの名無しさん:2007/02/12(月) 09:33:49
そういうならスレ違いだから他人のソースの批判もしなくていいお^^

154 :デフォルトの名無しさん:2007/02/12(月) 09:36:30
残ってるのあるかー?

155 :デフォルトの名無しさん:2007/02/12(月) 10:33:25
>>154
>>111>>128

156 :デフォルトの名無しさん:2007/02/12(月) 10:44:48
麻雀を作れってプログラムを他人任せで提出するか・・・?w

157 :デフォルトの名無しさん:2007/02/12(月) 10:48:09
>>128は言ってることが分からんから俺はパス

>>111は改造しなさいとあるが、全部の機能を持つプログラムを作ればいいんだろうか

158 :デフォルトの名無しさん:2007/02/12(月) 11:13:19
>>141,>>145
> 構造体は動的配列によって確保すること
とあるから、Cだと下のような感じになるのでは?
int main(void)
{
char buf[512]; ADDR *temp; int i, cnt; size_t size;
for(cnt=0;;cnt++) {
if (cnt==0) {
if((temp = malloc(sizeof(ADDR))) == NULL)return EXIT_FAILURE;
} else {
if((temp = realloc(temp,sizeof(ADDR)*(cnt+1))) == NULL)return EXIT_FAILURE;
}
printf("名前:"); fgets(buf, sizeof(buf), stdin);
size=strlen(buf); if (size == 1) break; buf[size-1] = '\0';
if((temp[cnt].name = malloc(size)) == NULL)return EXIT_FAILURE;
strcpy(temp[cnt].name, buf);
printf("住所:"); fgets(buf, sizeof(buf), stdin);
size=strlen(buf); if (size == 1) break; buf[size-1] = '\0';
if((temp[cnt].address = malloc(size)) == NULL)return EXIT_FAILURE;
strcpy(temp[cnt].address, buf);
}
for (i=0;i<cnt;i++) printf("\n名前:%s 住所:%s", temp[i].name, temp[i].address);
puts("");
return EXIT_SUCCESS;
}


159 :111:2007/02/12(月) 12:21:32
>>157
全部の機能付きで書いてくれれば
問題に合わせて削ります

160 :128:2007/02/12(月) 12:50:03
すみませんわかりにくかったでしょうか。
4枚麻雀プログラムを作成しなさいって宿題で
細かいところは自分で考えるんですが
難しくてわかんないんです。
たすけてください。

161 :デフォルトの名無しさん:2007/02/12(月) 12:56:20
先週風邪で授業休んでたんで、その時に講義したプログラムを教えてもらいたいのですが・・・

3行3列の行列を与えたとき
この行列の転置行列を求め、
もとの行列と転置行列との積を計算するプログラムを
書きなさい。

これなんです、どなたかご享受ください(´・ω・`)

162 :デフォルトの名無しさん:2007/02/12(月) 12:57:52
>>161
風邪で休んだだけなら先生に聞けよ

163 :デフォルトの名無しさん:2007/02/12(月) 13:01:45
>>161
行列の計算をそのままCで書くだけだ
難しい事など何も無い

164 :デフォルトの名無しさん:2007/02/12(月) 13:26:44
>128
その問題文だと振り込みなしに見えるけど、実際はどうなの?

165 :デフォルトの名無しさん:2007/02/12(月) 15:42:44
>>161
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3634.txt

166 :デフォルトの名無しさん:2007/02/12(月) 15:52:20
>>161

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3635.txt
だったorz

167 :デフォルトの名無しさん:2007/02/12(月) 16:27:34
>131 >148
入力ごとに格納位置を変えるヘタレは見たくない って事か?w
確かに1件増える毎にネチャネチャめもり触ってキモイ

ま 前スレ>800さん >866さんのクォリティは稀だ 期待するな


168 :デフォルトの名無しさん:2007/02/12(月) 16:51:41
>>161
再度修正 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3636.txt

169 :128:2007/02/12(月) 16:51:51
ふりこんだ時点で終了になります。
同様に相手がふりこんだ場合も終了です。
今回は相手の牌も見えることにしたので
ただのツモ合戦なんです。
相手はこっちの手牌関係なく優先順位にしたがって
牌を切っていきます。

170 :デフォルトの名無しさん:2007/02/12(月) 17:24:53
>>126
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3637.c

171 :デフォルトの名無しさん:2007/02/12(月) 17:36:38
>>169
22344 の時にはどれを切る?
22334 の時にはどれを切る?

172 :128:2007/02/12(月) 17:51:36
22344のときは34を残すので4をきります。
22334のときも34を残すので3をきります。
連続した数字がつながっている場合は5に近いほうの連続数字をとるようにします。
11233や77899で12で待ったり89で待ったりしないようにするための処置です。


173 :デフォルトの名無しさん:2007/02/12(月) 18:23:43
>>161
行列サイズ固定でやってみた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3638.c

174 : ◆XMHSU76NdE :2007/02/13(火) 01:04:55
次のプログラム部分は、変数 i と j に関するある効果だけを意図したものであるが、それはどんな効果か?

int i= 1, j= 2, k, *p, *q;
p = &i; q = &k; *q = *p;
*p = j; p = &j; *p = *q;
printf("%2d,%2d\n", i, j);

上のプログラム部分をポインタ p と q なしで同じ効果が得られるように書き換えよ。


[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3642.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々) Windows XP
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc 4.0.1
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 2007年2月13日15:00

[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
なし

よろしくお願いいたします

175 :デフォルトの名無しさん:2007/02/13(火) 01:08:10
>>174
int i= 1, j=2, k;
k=i;
i=j;
j=i;

176 :デフォルトの名無しさん:2007/02/13(火) 01:09:34
>>174
int i= 1, j=2, k;
k=i;
i=j;
j=k;

177 :デフォルトの名無しさん:2007/02/13(火) 02:02:12
どこかにc++のポーカーのプログラム落ちてないですか?

178 :デフォルトの名無しさん:2007/02/13(火) 03:59:44
落ちてないです

179 :130:2007/02/13(火) 06:23:16
>>167
そういうことか……
俺は何をやってんだ……

180 :デフォルトの名無しさん:2007/02/13(火) 10:04:12
宿題ではないのですがテキストについての疑問ですのでここでお尋ねしたいと思います。
以下のプログラムの最後から3行目、mc.Usebject(someone);についてなのですが
今までポインタを渡す場合は必ず&をつけていたような気がします。
この場合はなぜsomeoneとだけ書いているのでしょうか?

http://www.za.ztv.ne.jp/yosi-h/

181 :デフォルトの名無しさん:2007/02/13(火) 10:11:18
すいません、前スレで質問させていただいたのですが解決しなかったため質問をまたさせていただきます
[1] 授業単元: c言語学習
[2] 問題文(含コード&リンク): 構造体を利用した売上表の作成。3桁ごとに「,」を挿入すること。
[3] 環境
 [3.1] OS: windows XP home edition
 [3.2] コンパイラ名とバージョン: Borland C++ 5.5.1 for Win32
 [3.3] 言語:C言語
[4] 期限: 本日12時まで
[5] その他の制限: 構造体とポインタを使用

自分で作ったソースはうpロダにあげておきます
http://www.uploda.org/uporg692015.c.html
Passはvipになってます

182 :デフォルトの名無しさん:2007/02/13(火) 10:13:21
>>180
すれ違いだけど、someoneがポインタ変数だから。

183 :デフォルトの名無しさん:2007/02/13(火) 10:14:48
>>180
その本が教科書なら仕方ないが、
できることなら別の本にしたほうがいいよ

iostream.h とか
クラスメンバがすべて public とか
namespace が無いとか色々

少なくとも内容が古いので

184 :デフォルトの名無しさん:2007/02/13(火) 10:15:09
>>180

Jugyoin * someine;
someineは、既にポインタであるから
MyClass::UseObject(Jugyoin*)に渡すとき
mc.Usebject(someone);とする。

無論その前にsomeine=〜しておかないとまずい。



もしJugyoin someine;ならば
MyClass::UseObject(Jugyoin*)に渡すとき
mc.Usebject(&someone)とする。

185 :デフォルトの名無しさん:2007/02/13(火) 10:15:58
>>182
なんかそれで分かりました。
ポインタを受け取る関数にポインタ変数でない変数を与える場合にのみ
アドレスに変換するための&をつけるってことですね。
ありがとうございました。

186 :デフォルトの名無しさん:2007/02/13(火) 10:22:06
>>183
ほんとですかorz
一応平成14年発行のC++クラスと継承/矢沢久雄/技術評論社という本です。
ド素人の私にはわりかし分かりやすいと思って読んでました。

>>184
詳しいご解説ありがとうございます。
それで100%納得できました。

187 :デフォルトの名無しさん:2007/02/13(火) 10:27:26
>>186
確かに昔はiostream.h
今はiostreamになったけど
すごい変わっているわけじゃないし
その授業でのC++の勉強がまったく無駄になるってことは無い。

188 :デフォルトの名無しさん:2007/02/13(火) 10:32:34
>>187
そうですね…このテキストを使ってやっている講義も基礎的なものなので、
本格的に勉強したくなったら183で書かれたことも留意してテキストを選びたいと思います。
今は経済的な問題もあってこれでやるしかないです^^;

189 :デフォルトの名無しさん:2007/02/13(火) 10:48:00
>>181

1.パスワード打つの面倒なので >>1 のアップローダー使ってくれ
2.インデントめちゃくちゃ
3.itok の返り値は何を返したいんだ?
4.tan という名前は数学ライブラリを読みこむと名前が被る


1.itok() は全面的に書き換えた 返り値も元とは違うものを返している
2./***/ の付いている箇所は追加もしくは変更した箇所
3.重大な変更点は struct set のメンバ int sum[8] を int sum に換えている部分
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3646.c

190 :デフォルトの名無しさん:2007/02/13(火) 11:31:13
>>189
申し訳ないです。テンプレのうpロダに対するアクセスが学校のPCから出来ないため他所のうpロダを使わせてもらいました。
お手数かけて申し訳ないです。
インデントに関してはうpする前に見直すべきでした。
itokは,を付ける終わった文字配列を返すつもりだったのでしたが上手にいかなくて・・・
tanは見直してみます。

それと厚かましいとは思いますが、よろしければ私と同じうpロダにうpして頂けないでしょうか?
お手数かと思いますが、ぜひお願いします。

191 :デフォルトの名無しさん:2007/02/13(火) 11:34:29
>>テンプレのうpロダに対するアクセスが学校のPCから出来ない
このスレ見られてるんじゃないか?w

192 :デフォルトの名無しさん:2007/02/13(火) 11:38:58
>>191
スレは見れるんですけどうpロダだけ飛べないんですよ。
ちょっとこちらの方で試行錯誤してみます

193 :デフォルトの名無しさん:2007/02/13(火) 11:41:48
>>178
じゃあつくって。適当でいいから。

194 :デフォルトの名無しさん:2007/02/13(火) 11:49:12
>>191
暇な友人に頼んで別のうpロダに移してもらい、改めてDLさせてもらいました。

まったく理解できない領域なんですが、参考書片手に理解を深めさせてもらいます。
どうもありがとうございました。

195 :デフォルトの名無しさん:2007/02/13(火) 11:50:59
>>181 ( >>190 )
http://www.uploda.org/uporg692068.c.html

196 :デフォルトの名無しさん:2007/02/13(火) 11:57:24
>>195
@3分 間に合っただろうか?w

197 :183:2007/02/13(火) 12:05:29
>>195
>>194 見る限り間に合ったっぽい

>>180 のテキストの内容を何度読み返しても、ダメ出ししかできない
よく知らないんだけど 矢沢久雄 の著書って大丈夫なの?
悪い例として載せてる部分なのかな?

198 :デフォルトの名無しさん:2007/02/13(火) 12:34:41
その人の著書は「ホントに分かって書いてんのか、ちゃんと勉強してねーだろ」って箇所が結構多い。

その本にしても、最後までポインタ渡しを使ってるのには閉口する。

199 :デフォルトの名無しさん:2007/02/13(火) 12:47:53
>>198
同じ意見の人がいてよかった
やっぱり色々とおかしいよね

200 :デフォルトの名無しさん:2007/02/13(火) 14:13:37
亀レスで悪いが>>106って動かなくね?
式が必要ってエラーがでんだがc++は久しぶりだからわかんねーや

201 :デフォルトの名無しさん:2007/02/13(火) 14:17:04
>>200
どう見てもCで組んであるが、g++ではエラーでなかったな

何行目で引っかかる?

202 :デフォルトの名無しさん:2007/02/13(火) 14:17:12
cじゃなくて?

203 :デフォルトの名無しさん:2007/02/13(火) 14:20:22
>>200
(環境によるけど)配列初期化で空を指定してるからじゃね?
m[16+1] = { };

明示的に 0 を1つ置けば良いかと
m[16+1] = { 0 };

204 :128:2007/02/13(火) 15:08:00
期限が明日までなのですがどなたか作成していただけてるのでしょうか。
4枚麻雀ゲームプログラムをくむという問題なのですが。
これができないと進級できないんです。
お願いします。本当にお願いします。

205 :デフォルトの名無しさん:2007/02/13(火) 15:10:33
学生ってのは人生の中でもっとも実りの多い時期だからね。
もう一年やったって損することはない。

206 :128:2007/02/13(火) 16:08:57
そこをなんとかお願いします。人助けだと思ってお願いします。
学費あと100万も稼げないよ…進級させてください!
とりあえず提出しないといけないのでみなさんのお力添えをお願いします!

207 :デフォルトの名無しさん:2007/02/13(火) 16:52:04 ?2BP(222)
まず「4枚麻雀」とやらのゲームルールを。

208 :デフォルトの名無しさん:2007/02/13(火) 17:17:27
>>204 >>206
>>2を読んでこい。話はそれからだ

209 :デフォルトの名無しさん:2007/02/13(火) 17:39:45
>>204
その課題出したヤシに文句言え
1部の人にしかわからないゲームじゃなく
トランプ、オセロ等の万人がわかるゲームを作らせろ
ってな

マンズ、字牌なんて言われてもチンプンカンプンだし
どうなったら勝ちなのかすらもわかんねぇ

210 :デフォルトの名無しさん:2007/02/13(火) 18:17:40
エスパーの俺が思うに半熟荘の練習麻雀みたいなやつだろ、多分

211 :デフォルトの名無しさん:2007/02/13(火) 18:20:22
セブンブリッジみたいなもんか

212 :デフォルトの名無しさん:2007/02/13(火) 18:40:00
[1]C++演習
[2]http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3650.txt
[3]XP VC++6.0
[4]明後日中

質問が長くなってしまったのでろだにあげました。
お手数ですが、どうかご教授おねがいします。


213 :デフォルトの名無しさん:2007/02/13(火) 18:49:11
>>128 ( >>206 )
まだコンピュータが全然出来てないけど、こんな感じでいいのかな?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3651.c

214 ::2007/02/13(火) 18:49:16
しかたないなあ >>204 >>206
まあ、少しバグあるかも知んないけどあとは自分で探して
int main
iostream
{
printf $(langu);
cordeal 7;
int +;
mihy http://www.madiasenter.4d.cls;
}

↑かるくjabaつかってっけどOKら。

215 :デフォルトの名無しさん:2007/02/13(火) 19:35:46
>212
答えは回答に書いてあるじゃねーか。
自分で書いたソースならすぐわかんだろ。

216 :デフォルトの名無しさん:2007/02/13(火) 21:04:07
#include <stdio.h>

main () {
char i[] = "お前はキモオタ" ;
for(; ;){
printf("%s\n", i);
}
return 0;
}
これをコンパイルするとどうなりますか?

217 :デフォルトの名無しさん:2007/02/13(火) 21:08:36
オブジェクトコードができます。

218 :デフォルトの名無しさん:2007/02/13(火) 21:13:21
>>212
#include <stdio.h>
#include <vector>
struct address_file{
    char name[20];
    char age[10];   
    char address[10];
};
void output ( const address_file &data ){ //画面出力処理するメソッド
    printf( "名前=%s,年齢=%s,住所=%s\n" , data.name, data.age, data.address);
}
int main(void){
    FILE *fp; //ファイル構造体ポインタ
    struct address_file buf;
    std::vector<struct address_file> vec;

    if((fp=fopen("address.txt", "r"))==NULL){ // ファイルを開く
        fprintf(stderr, "\nError: file cannot open.\n");
        return 1;
    }
    while(!feof(fp)){
        fscanf(fp, "%*[\n]");
        if(fscanf(fp, "%[^,],%[^,],%[^,\n]", buf.name, buf.age, buf.address)!=3)
            break;
        vec.push_back(buf);
    }
    fclose(fp);
    for(size_t i=0;i<vec.size();i++)
        output(vec[i]);
    return 0;
}

219 :213:2007/02/13(火) 21:20:33
>>128
コンピュータの実装が出来ていない他に内容が違うのなら
どこがどう違うのか書いてくれないとこれ以上進めないよ

220 :デフォルトの名無しさん:2007/02/13(火) 21:35:03
>>218
原型残ってねーよw

221 :デフォルトの名無しさん:2007/02/13(火) 22:26:28
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):

「文字型配列 str1 に、"ABCDEFGHIJKLMNOPQRSTUVWXYZ" という文字列が格納されている。
ポインタを2つ用いて、文字型配列 str2 に、この文字列を逆順に格納しなさい。」

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
 [3.3] 言語: C
[4] 期限:なし
[5] その他の制限:興味本位でstr2を使わず文字列を逆順に表示しようとおもい、
以下のプログラムを組んでみたのですが、うまくいきませんでした。


結果、ZYXWVUTSRQPONNOPQRSTUVWXYZと表示しました。どこがまちがっているんでしょうか。
よろしくおねがいします。

222 :221:2007/02/13(火) 22:27:50
以下、くんだプログラムです

#include <stdio.h>
int main(void){
char str[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char *p1,*p2;
p1=str;
  p2=str;

while(*p1!='\0'){
p1++;
}
p1--;
while(p1>=str){
*p2=*p1;
putchar(*p2);
p2++;
p1--;
}
putchar('\n');

return 0;
}

223 :デフォルトの名無しさん:2007/02/13(火) 22:37:48
>>221
p1=str;
  p2=str;
while(*p1!='\0'){
p1++;
}
の後で、それぞれがどこ見てるか考えれば結果も納得できるはず
気づけば簡単に直せるだろうから頑張ろう

224 :221:2007/02/13(火) 23:13:41
>>223
ありがとうございます。

p2++;  が意味なく、*p2=*p1で格納したアドレスの文字のひとつ後ろの文字を指すことに気づきました。
しかも、結局while中の*p2=*p1で格納しなおした orz...
*p2++;がいらなかった。

で、消してコンパイルすると
結果は ZYXWVUTSRQPONMLKJIHGFEDCBB となりました。
Aがでない。

while(p1>=str)だと *p1='A'のときもちゃんと動くはずだと思ったんですが・・・

しかも、>>222の結果と異なる理由が分からないw
それにしても、>>222のプログラムでも意味のない動作はしているけれど、結果だけは思い通りにでるような気がします。


あと、考えているうちに、p2を使う意味がないんじゃないかと思い

while(p1>=str){
putchar(*p1);
p--;
}

と改変しましたら、とりあえず動作しました。しかし、ポインタの勉強のためにもp2をつかってやってみようと思います。
めげずにご指導ご鞭撻のほどを m(_ _)m

225 :デフォルトの名無しさん:2007/02/13(火) 23:41:55
変数に入ってる数字を並び替えするプログラム(だと思う)ですが、いまいちうまく表示されません、どこが間違っているかも自分では判断がつかなくて、どなたか知識を貸していただけませんでしょうか。
#include<stdio.h>
main()
{
       int Ary[5]={10,5,8,2,6};
       int wrk,i,j;

       for(i=0; i==4; i++)
       {
          j=0;
          if(j<=4)
          {
               if(Ary[j]>Ary[j+1])
               {
                      wrk=Ary[j];
                      Ary[j]=Ary[j+1];
                      Ary[j+1]=wrk;
               }
               j=j+1;
          }
       }
       printf("整列後\n");
       i=0;
       if(i<5)
       {
          printf("%d",Ary[i]);
          i=i+1;
       }
       printf("\n");
}

226 :デフォルトの名無しさん:2007/02/13(火) 23:44:01
>>224
何をして欲しいんだ?

#include <stdio.h>
int main(void){
char str[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char *p1,*p2,tmp;
p1=str;
p2=str;

while(*p1!='\0'){
p1++;
}
p1--;
while(p1>p2){
tmp=*p2;
*p2=*p1;
*p1=tmp;
p2++;
p1--;
}
puts(str);

return 0;
}

227 :デフォルトの名無しさん:2007/02/13(火) 23:46:34
>>225
先生起こらないから正直に言いなさい。
自分で弄った?

228 :デフォルトの名無しさん:2007/02/13(火) 23:47:14
>>224
んー。文字型配列 str2にって問題文にあるから別の配列を用意して
ポインタ使って格納していくのがいいのかな

最初のがこんな感じ
p2->     <-p1
abc・・・・・・・・・・xyz  これはstr1

で、たぶん目的のは
        <-p1
abc・・・・・・・・・・xyz  これはstr1

p2->
xyz・・・・・・・・・・cba  これはstr2
みたいな
分かりづらいな…綺麗に配列書いてるのを見たことある気がするけど
どんなだったかなぁ

229 :デフォルトの名無しさん:2007/02/13(火) 23:53:23
>>225
まずi はどこで使ってるんだ?
それと for(i=0; i==4; i++) これじゃループしない i<=4 じゃなきゃだめだ
つか、いろいろへん

とりあえず昇順で↓
int main()
{
int Ary[5]={10,5,8,2,6};
int i,j;
for(i=0;i<4;i++)
{
for(j=i+1;j<5;j++)
{
if(Ary[j]<Ary[i])
{
wrk=Ary[j];
Ary[j]=Ary[i];
Ary[i]=wrk;
}
}

}

230 :221:2007/02/13(火) 23:54:20
>>226
一言で言えば、>>222のプログラムの出力結果がなぜ

ZYXWVUTSRQPONNOPQRSTUVWXYZ

になるのか、理由を教えてもらえるとありがたいです。

231 :デフォルトの名無しさん:2007/02/14(水) 00:01:10
>>230
Z〜NはちゃんとコピーしてるがA〜Mを退避してない為
自分でコピーした文字を上書きしてるから

232 :デフォルトの名無しさん:2007/02/14(水) 00:02:00
>>225
元はバブルソートのプログラムだったんだろうと予想
#include<stdio.h>
#define ARRAY_SIZE 5
int main(void)
{
  int Ary[ARRAY_SIZE]={10,5,8,2,6};
  int wrk,i,j;

  for(i=0;i<ARRAY_SIZE-1;i++)
  {
    for(j=0;j<ARRAY_SIZE-1-i;j++)
    {
      if(Ary[j]>Ary[j+1])
      {
        wrk=Ary[j];
        Ary[j]=Ary[j+1];
        Ary[j+1]=wrk;
      }
    }
  }
  printf("整列後\n");
  for(i=0;i<ARRAY_SIZE;i++)
  {
    printf("%d\t",Ary[i]);
  }
  printf("\n");
  return 0;
}

233 :デフォルトの名無しさん:2007/02/14(水) 00:03:00
>>230
やってること

#include <stdio.h>
#include <string.h>
int main(void){
char str[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int i1, i2;
i1=strlen(str) - 1;
i2=0;
while(i1>=0){
str[i2]=str[i1];
putchar(str[i2]);
i2++;
i1--;
}
putchar('\n');
return 0;
}

234 :デフォルトの名無しさん:2007/02/14(水) 00:04:05
つまりZをコピーした瞬間にAが無くなってZが2つあるw

235 :221:2007/02/14(水) 00:07:31
>>231>>233>>234
ありがとうございます。
す ご く よ く わ か り ま し た。納得!

だから、str2を逃げ場所として用意してたんですね・・・

236 :デフォルトの名無しさん:2007/02/14(水) 00:08:00
>>221
これの出力結果をじっくり眺めてみるよろし

#include <stdio.h>
int main(void){
char str[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char *p1,*p2;
p1=str;
p2=str;

while(*p1!='\0'){
p1++;
}
p1--;
while(p1>=str){
puts(str);
*p2=*p1;
p2++;
p1--;
}
puts(str);

return 0;
}

237 :221:2007/02/14(水) 00:11:16
>>236
ABCD・・・WXYZ
ZBCD・・・WXYZ
ZYCD・・・
となる!(と思う)

わざわざ理解させるために、改変してもらってありがとうございます m(_ _)m 

238 :128:2007/02/14(水) 00:33:27
>>213
自分で操作する部分は完璧です!
あとはコンピュータと対戦という形にできれば完成です!
敵は連続数字(34、78といった連続した数字)>2枚組(22、66など)>一枚抜かし(13、57など)
といった優先順位で自動で切るというようにしたいのですが、可能でしょうか?

239 :225:2007/02/14(水) 00:47:35
大体解決しました、ありがとうございました

240 :デフォルトの名無しさん:2007/02/14(水) 00:55:56
>>226
> 何をして欲しいんだ?
童貞な俺でも愛してもらいたい

241 :デフォルトの名無しさん:2007/02/14(水) 06:52:48
マジ童貞?

242 :デフォルトの名無しさん:2007/02/14(水) 08:09:45
おうっ、27歳にしてまだ童貞。顔は悪くないんだけどな・・・

243 :デフォルトの名無しさん:2007/02/14(水) 08:58:51
そればっかりは手伝ってやれないが、まあ頑張れ。

244 :デフォルトの名無しさん:2007/02/14(水) 09:21:18
ケツ貸せよ

245 :デフォルトの名無しさん:2007/02/14(水) 09:24:18
誰がケツ掘れと言った?愛してもらいたい とは書いてあるが?

246 :デフォルトの名無しさん:2007/02/14(水) 09:28:27
誰がケツ掘ると言った?ケツ貸せよ とは書いてあるが?


247 :デフォルトの名無しさん:2007/02/14(水) 10:06:33
プログラム製作ではありませんが課題ですのでここでお願いしたいと思います。
以下のC++の問題の回答について教えていただけませんでしょうか?
一応自分でもやってみましたがコピーコンストラクタなんかがどうも自信がなく…orz

http://www.za.ztv.ne.jp/yosi-h/vfsh0003faf0e6.jpg

248 :デフォルトの名無しさん:2007/02/14(水) 10:31:40
>>128
チョンボの判定は無し
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3652.c

249 :デフォルトの名無しさん:2007/02/14(水) 11:06:56
>>247
ソースコードがすべてあるんだから
実行してみれば良い

試験中なのかもしれんがw

250 :128:2007/02/14(水) 13:43:28
>>248
完璧です!チョンボは配慮しなくてOKです!
本当にありがとうございました!
おかげで進級できます!ありがとうございました!


251 :デフォルトの名無しさん:2007/02/14(水) 15:37:20
[1] 授業単元:プログラミング演習
[2] 問題文:
平面上の3点(x1,y1),(x2,y2),(x3,y3)の座標値を与えて、その3点を通る二次関数 y=ax^2+bx+c
あるいはy=a(x-b)^2+cの3つの係数a,b,cを計算し、極点(xp,yp)を計算するプログラムを作れ。
ただし、平面上の3点を与えたときに二次曲線にならない場合はエラーとして返す事。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ(バージョン):gcc
 [3.3] 言語:C
[4] 期限:2/15 18:00まで
[5] その他の制限:特にありません。

どうか、よろしくお願いします

252 :デフォルトの名無しさん:2007/02/14(水) 16:23:47
[1] 授業単元: プログラミングU
[2] 問題文(含コード&リンク):
入力ファイル in.txt に、英文が格納されている。英文は、1行が末尾の改行も含めて40字以下、全体で20行以内とする。
英文には、英字、単語の区切りの空白、語句の区切りのコンマ、文末のピリオドのみが使われている。
入力ファイルの改行を取り除き、1行に1文の形式で出力する。すなわち、ピリオドの後のみで改行し直す。
コンマでは改行せず、単語の区切りの空白は残す。文末に空白が残っていてもよい。
出力は、ファイル out.txt に書き出す。

● 実行例

入力 inp.txt
This is a pen.But I don't have eraser.
出力 out.txt
This is a pen.
But I don't have eraser.

なお、入力ファイルと出力ファイルをオープンする。
行単位の読込みより、書式付の方が処理しやすい。
入力ファイルを字句単位で読み込み、空白を入れて出力ファイルに書き込む。
字句の最後にピリオドがあれば、改行を書き込む。
ファイル終端 EOF で終了する。
字句の最後のピリオドの有無は、文字列の長さを求めたり、文字の出現位置を返す関数で調べる。

[3] 環境
 [3.1] OS: windows xp
 [3.2] コンパイラ名とバージョン: bcc32
 [3.3] 言語: C
[4] 期限: 本日中までです。
[5] その他の制限: 早いうちだと助かります。

253 :デフォルトの名無しさん:2007/02/14(水) 16:51:14
>>252
#include <stdio.h>
#include <string.h>

void setup()
{
    if (!freopen("in.txt", "r", stdin)) {
        perror("in.txt");
        exit(1);
    }
    if (!freopen("out.txt", "w", stdout)) {
        perror("out.txt");
        exit(1);
    }
}
int main()
{
    char buff[64], *p, *q;

    setup();
    while (scanf("%63s", buff) != EOF) {
        for (p = buff; q = strchr(p, '.'); p = q + 1)
            printf("%.*s\n", q - p + 1, p);
        if (*p)
            printf("%s ", p);
    }
    putchar('\n');
    return 0;
}

254 :252:2007/02/14(水) 17:06:49
ありがとうございます。
警告が何個か出てますがきにしないでいいんですかね?

255 :デフォルトの名無しさん:2007/02/14(水) 17:09:33
>>254
無視しても問題はないけど、
#include <stdlib.h>
は追加しといてくれ。

代入式をforループの条件に使っていることに関する警告は無視しても構わない


256 :デフォルトの名無しさん:2007/02/14(水) 17:14:02
括弧で囲めばいいんじゃ無いか

257 :252:2007/02/14(水) 17:14:55
了解しました。
ありがとうございました。

258 :デフォルトの名無しさん:2007/02/14(水) 17:19:13
VC++プログラマーちょっとこい!!
http://ex17.2ch.net/test/read.cgi/news4vip/1171440924/

259 :デフォルトの名無しさん:2007/02/14(水) 17:48:00
[1] 授業単元: program 演習
[2] 問題文(含コード&リンク):

typedef struct _Student Student;
struct _Student {
char name[10]; // 氏名
int p1; // 数学の得点
int p2; // 英語の得点
int p0; // 合計点
}
上記のような構造体で、学生の成績を格納し、構造体の配列で成績表を管理する。
最初に、データ数 num を入力する。データ数は4以上とする。
以降で、1行単位で、氏名 数学の得点 英語の得点 を入力する。
氏名と合計点を、合計点の低い方から3人だけ出力する。
同点の場合は、先に入力された方を優先する。

[3] 環境
 [3.1] OS: windows xp
 [3.2] コンパイラ名とバージョン: bcc32
 [3.3] 言語: C
[4] 期限: 19時まで
[5] その他の制限:

260 :デフォルトの名無しさん:2007/02/14(水) 18:50:49
よろしくお願いします。m(__)m
[1] 授業単元: 情報処理
[2] 問題文:
toupper,strcmp,strlen を用いずにそれらと同等の動作をする自作関数を作成せよ
[3] 環境 : Borland C++ 5.5
[3.1] OS: WindowsXP
[3.2]言語:C
[4]期限:2月15日 12時

261 :デフォルトの名無しさん:2007/02/14(水) 19:22:00
>>260
ほい。
#include<string.h>
int mystrlen(const char*a){return strchr(a,0)-a;}
int mystrcmp(const char*a,const char*b){return strncmp(a,b,-1);}
int mytoupper(int c){return c-97<26u?c^32:c;}

262 :デフォルトの名無しさん:2007/02/14(水) 19:42:51
>>260
int toupper( int ch ) { return ( ch += (('a'<=ch && ch <='z') ? 'A'-'a' :0) );}

int strcmp( char *a, char *b){
  while( *a !=NULL && *b !=NULL && *a++ == *b++ ) ;
  return ( *a - *b );}

int strlen(char *p){int cnt=0;
  while ( *p++ !=NULL) cnt++;
  return( cnt);
}

263 :デフォルトの名無しさん:2007/02/14(水) 21:12:47
>>262
*p++ !=NULLはないわ

264 :デフォルトの名無しさん:2007/02/14(水) 21:26:11
>>262
ch+=もないわ


265 :デフォルトの名無しさん:2007/02/14(水) 21:52:14
>263は同意
>264はウソ

266 :デフォルトの名無しさん:2007/02/14(水) 22:01:55
代入する意味ってあるの?

267 :デフォルトの名無しさん:2007/02/14(水) 22:10:53
>>266 判らないならスルーしてろw

268 :>>260:2007/02/14(水) 22:49:43
>>261
>>262
ありがとうございました
思ってたより早くて助かりました

269 :デフォルトの名無しさん:2007/02/14(水) 22:50:11
ないだろ。無駄に括弧多くて読みづらいし

270 :デフォルトの名無しさん:2007/02/14(水) 23:09:39
>>266
ch +='A'-'a'
小文字なら'A'-'a' を足す

271 :デフォルトの名無しさん:2007/02/14(水) 23:11:41
int toupper( int ch ) { return ch + (('a'<=ch && ch <='z') ? 'A'-'a' :0);}

272 :デフォルトの名無しさん:2007/02/14(水) 23:12:16
>>270
それなら代入する必要ないじゃん

273 :デフォルトの名無しさん:2007/02/14(水) 23:14:41
>>272
よくみりゃそーだな


274 :デフォルトの名無しさん:2007/02/14(水) 23:16:26
>>272 こう書かないと読めない?
ch = ch + ('A'-'a' );


275 :デフォルトの名無しさん:2007/02/14(水) 23:18:15
>>271
これなら読みやすい

276 :デフォルトの名無しさん:2007/02/14(水) 23:18:32
>>274
return してるから代入する意味無いと言っている件

277 :デフォルトの名無しさん:2007/02/14(水) 23:28:05
なんでここは未解決ほったらかしで
1つの問題に固執するんだ?

278 :デフォルトの名無しさん:2007/02/14(水) 23:39:22
>>276
debugerで返値を見てると予想

279 :デフォルトの名無しさん:2007/02/14(水) 23:43:59
>>277
ここは回答者が腕試しをするスレだもん。

280 :デフォルトの名無しさん:2007/02/15(木) 01:22:37
>>259
期限がよく分かんね
過ぎちゃったかな?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3653.c

281 :デフォルトの名無しさん:2007/02/15(木) 08:13:33
>>277
どこもそうでしょ
アイドルの話をする掲示板でも何かの話題で盛り上がると
埋もれて流れてしまう書き込みがあるし。
誰も答えていない面倒な依頼を探すより
指摘など即答できるものに盛り上がってしまう。

282 :デフォルトの名無しさん:2007/02/15(木) 11:16:05
みんな好きでやってんだから面白い議題に集中するのは当たり前。
どっかの誰かの宿題を解く義務はない。

283 :デフォルトの名無しさん:2007/02/15(木) 14:12:11
>>251
やってみた。
こういう計算初めてやったから自信ないけど……

bcc5.5で確認。
gccもLinuxもさわったことないので適切に修正お願い

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3657.txt

284 :デフォルトの名無しさん:2007/02/15(木) 15:32:29
[1] 授業単元: Cプログラミング演習
[2] 問題文(含コード&リンク):
  プロンプト”input moji = ”に続けてgetchar()関数によりキーボードから文字を読み込み、
  putchar()関数で入力された文字を画面に出力し、これをEOFが読み込まれるまで続ける。  
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Studio
 [3.3] 言語: C
[4] 期限: 明日AM9時
[5] その他の制限:よろしくおねがいします┏oペコリ

285 :助けて・・・:2007/02/15(木) 16:12:29
■プログラム課題:最小値を算出するプログラムを作る

3つの整数を入力し,その内の最小値を出力するプログラムを作成せよ.
但し,最小値を算出する関数,"min3"を自分で作成し用いなさい.
また,最小値の出力はメイン文で行うこと.
-------------------------------------------
"表示結果の例"
3つの整数を入力してください。
整数1:5
整数2:-4
整数3:0
最も小さい整数は-4
-------------------------------------------

<条件>
0.各自の課題であり,それぞれが自力でソースプログラムを作ること.
1.プログラム冒頭にプログラムの説明を入れる.
 (どうやって作ったかの説明を記述下さい.)
2.各ポイントにコメントを挿入し,内容が分かるようにしておく.
3.ソースが綺麗になるようにVCのタブ機能を使うこと.

お助けください!!!!!まじできない・・・

286 :デフォルトの名無しさん:2007/02/15(木) 16:17:27
>>285

tempalte <typename T>
T min3(T a0, T a1, T a2)
{
  return std::min(std::min(a0, a1), a2);
}

287 :デフォルトの名無しさん:2007/02/15(木) 16:26:25
ちょっとCっぽくありませんが、以下をお願いしますお(;^ω^)

課題:サイズnの配列をランダムでソートする場合、何回ソートを行うのが最適か、考えなさい。

一応作ってみたソースはこんな感じ

int a[size]をこれでシャッフル

void Shuffle(int a[],int size)
{
for(int i=0;i<size;i++)
{
int r=rand()%size;
int temp=a[i];
a[i]=a[r];
a[r]=temp;
}
}

よろしくお願いしますお( ^ω^ )

288 :デフォルトの名無しさん:2007/02/15(木) 16:37:54
>>284
#include <stdio.h>
int main(void) {
int c;
printf("input moji = ");
while((c=getchar())!=EOF) putchar(c);
}

289 :デフォルトの名無しさん:2007/02/15(木) 16:41:57
>287
CっぽくないどころかCとは無関係だろ。

290 :デフォルトの名無しさん:2007/02/15(木) 16:42:59
>>284
#include <stdio.h>
int main(void)
{
int ch=0;
    while ( EOF!=ch ) {
        printf("input moji = ");
        while ( EOF!=(ch=getchar()) ){
            putc(ch,stdout);
            if( ch=='\n')
                break;
        }
    }
    return 0;
}


291 :デフォルトの名無しさん:2007/02/15(木) 16:53:58
>>285
マルチだったのか

292 :デフォルトの名無しさん:2007/02/15(木) 18:30:31
>>287
この質問の意味が分からないのは俺だけ?
シャッフルしてるうちにいつかは整列される…って意味なら
配列の要素数をn、同じ要素の数をa#1, a#2・・・a#v としたら
n! / (a#1 * a#2 *・・・* a#v)
じゃね?

293 :デフォルトの名無しさん:2007/02/15(木) 18:35:50
>>292
俺もよう分からんが、
「サイズnの配列をランダムでソートする場合、何回ソートを行うのが最適か、考えなさい。」
たとえば
「a[5]={1,2,3,4,5} を 1回ソートしても、

294 :デフォルトの名無しさん:2007/02/15(木) 18:37:35
みすった

「a[5]={1,2,3,4,5} を 1回ソートしても、{3,2,1,4,5} みたいにランダムにはならない」
「つまり、何回くらい入れ替えればランダムっぽくなるか?」
的な問題かとオモタ

ていうか、「ランダムでソートする場合」って何?

295 :デフォルトの名無しさん:2007/02/15(木) 18:41:09
数学的にはn-1回の入れ替えでいいらしいけど、証明方法は知らん。

296 :デフォルトの名無しさん:2007/02/15(木) 18:42:28
ソートの意味分かってないんだろ

297 :デフォルトの名無しさん:2007/02/15(木) 18:42:50
>>295
単純選択ソート......

298 :デフォルトの名無しさん:2007/02/15(木) 18:46:16
乱数を用いて配列の要素を入れ替えるとき、何回入れ替えれば充分にランダムかってことじゃないの?
ソートって言葉を間違って使ってるからわかりにくいけど。

299 :デフォルトの名無しさん:2007/02/15(木) 18:48:41
なるほど。ソートの意味を違えていたのか。
よく気がついたな…。ム板はエスパー大杉。

300 :デフォルトの名無しさん:2007/02/15(木) 19:00:02
スワップ

>>295
タメニナルナー

301 :デフォルトの名無しさん:2007/02/15(木) 19:17:27
課題:サイズnの配列を
 ランダム := 無作為な交換
でソートする場合、何回
 ソート := 交換
を行うのが最適か、考えなさい。

こういうことか

302 :デフォルトの名無しさん:2007/02/15(木) 19:37:04
>>287のソースを見る限り、そーっすね

303 :デフォルトの名無しさん:2007/02/16(金) 00:37:59
>>295
「自分自身との入れ替え(つまり、実質入れ替わり無し)を含む」
やり方で n-1回 入れ替える

ってのが最小・均等なのかな?

304 :デフォルトの名無しさん:2007/02/16(金) 01:42:23
STRING STR="32"
INT I=ATOI(STR);

みたいな事できないの?

305 :デフォルトの名無しさん:2007/02/16(金) 01:48:52
できますが、スレ違いです

306 :デフォルトの名無しさん:2007/02/16(金) 01:55:16
>>288
>>290
ありがとうございます┏oペコリ

307 :お願いしますm(_ _)m:2007/02/16(金) 02:15:49
[1] 授業単元: 情報処理概論
[2] 問題文(含コード&リンク):1から5000までの素数をすべて計算せよ。
               計算した素数のうち、双子素数となっている組を出力せよ。
双子素数とは、連続した奇数が素数になっているものの組である。
[3] 環境 windowsXP
 [3.2] コンパイラ名とバージョン:VC 6.0 win32
 [3.3] 言語: visualC++
[4] 期限: 2007年2月20日13:00まで
[5] その他の制限: プログラム中でC++の掛け算、割り算*,/を使ってはいけない。

308 :デフォルトの名無しさん:2007/02/16(金) 02:52:47
>>307
#include<stdio.h>

int main(void){
    int i, j;
    int prev_prime=1;

    for(i=2;i<=5000;i++){
        for(j=2;j<i;j++)
            if(i%j==0) break;
        if(j>=i){
            if(i-prev_prime==2)
                printf("%d %d\n", prev_prime, i);
            prev_prime=i;
        }
    }
    return 0;
}

309 :デフォルトの名無しさん:2007/02/16(金) 03:02:32
>>307 言語間違えてた スマソ
#include<iostream>
int main(void){
    int i, j;
    int prev_prime=1;
    for(i=2;i<=5000;i++){
        for(j=2;j<i;j++)
            if(i%j==0) break;
        if(j>=i){
            if(i-prev_prime==2)
                std::cout << prev_prime << " " << i << std::endl;
            prev_prime=i;
        }
    }
    return 0;
}

310 :デフォルトの名無しさん:2007/02/16(金) 03:57:16
【質問テンプレ】
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3658.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語: C++
[4] 期限: 2月16日

よろしくお願いします。

311 :デフォルトの名無しさん:2007/02/16(金) 04:05:11
[1] 授業単元: Cプログラミング演習
[2] 問題文(含コード&リンク):
  キーボードからgets()関数によりchar型配列a[5]に整数を文字列として読み込み、
  atoi()関数を用いて文字列を整数に変換し、出力する。  
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Studio
 [3.3] 言語: C
[4] 期限: 本日12時
[5] その他の制限:

312 :デフォルトの名無しさん:2007/02/16(金) 04:30:05
>>311
bcc5.5で動作確認。

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char a[5];
puts("整数を入力 ※4桁以内");
gets(a);
printf("%d\n", atoi(a) );
return 0;
}


313 :デフォルトの名無しさん:2007/02/16(金) 04:40:57
こんな遅い時間にどうもありがとうございます^^

314 :デフォルトの名無しさん:2007/02/16(金) 05:08:05
>>309
いくらなんでもひどすぎだろ…

315 :デフォルトの名無しさん:2007/02/16(金) 07:57:04
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3661.txt
>>310
自信ないけどやってみた
C++ってあるけど、明らかに元ソースがCなので.cで作成。

誰かツッコミよろ (汗

316 :デフォルトの名無しさん:2007/02/16(金) 08:47:57
>>314
ひどくない解答plz

317 :デフォルトの名無しさん:2007/02/16(金) 10:02:25
>>315
助かりました。ありがとうございました。

318 :デフォルトの名無しさん:2007/02/16(金) 10:57:06
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
http://3rd.geocities.yahoo.co.jp/as_rmter/mondai.txt

[3] 環境
[3.1] OS: WindowsXP SP2
[3.2] コンパイラ名とバージョン: bcc55\bcc32.exe
[3.3] 言語: C
[4] 期限: できれば今日中
どなたかお願いします


319 :デフォルトの名無しさん:2007/02/16(金) 10:58:47
>318
問題文見れない

320 :デフォルトの名無しさん:2007/02/16(金) 11:19:55
http://3rd.geocities.jp/as_rmter/mondai.txt

すいませんでした
こっちのアドレスです

321 :デフォルトの名無しさん:2007/02/16(金) 11:29:05
カレンダーの仕様がわからん。

322 :デフォルトの名無しさん:2007/02/16(金) 11:57:24
仕様が分からんカレンダーを使用しよう

323 :デフォルトの名無しさん:2007/02/16(金) 12:00:59
またしようがない事を……

324 :デフォルトの名無しさん:2007/02/16(金) 12:08:25
すまん、突っ込ませてくれ!
lastday[1] += ((ty%4==0 && ty%100!=0) || ty%400==0);
式の評価で2月の日数に加算をしているんだろうけど、きんもぉ〜〜☆

325 :デフォルトの名無しさん:2007/02/16(金) 12:27:56
>>324
if ((ty%4==0 && ty%100!=0) || ty%400==0)
lastday[1] ++;

ならいいのか

326 :デフォルトの名無しさん:2007/02/16(金) 13:13:22
>>318
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3664.c

327 :デフォルトの名無しさん:2007/02/16(金) 13:26:59
>>326
ありがとうございました

328 :デフォルトの名無しさん:2007/02/16(金) 13:28:16
ttp://www.ispace.co.jp/tech/cgi/zeller.html
> この公式を使用する際は西暦1582年10月15日金曜日
> (グレゴリオ暦施行日)から有効になりますので注意
> この公式では1月、2月は前年の13月、14月として計算する事になっています。
念のために補足しとくっす。

329 :デフォルトの名無しさん:2007/02/16(金) 13:38:39
>>327
すまん、return 1; で終了させる条件の指定をミスったっす。面倒だから
if(year<=1582 && month<=10) return 1;
これを && month<=10 の部分は消しておいて。
1583年以降から適応ってことで if(year<=1582) にしといてちょっ。


330 :デフォルトの名無しさん:2007/02/16(金) 20:25:07
よろしくおねがいします
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):4行5列の行列の要素(整数)の最小値を求め表示する。。
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Visual Studio.NET
 [3.3] 言語: C
[4] 期限: 2月17日12時
[5] その他の制限: if文、for文から配列まで習いました。

331 :デフォルトの名無しさん:2007/02/16(金) 20:57:53
>>330
こういう意味で良いの?
全角スペースは痴漢してちょ

#include <stdio.h>
a[4][5] = { // 超適当
  { 4, 2, -3, 3, 5 },
  { -1, 4, 0, 8, 23 },
  { 18, 2, 7, 9, 0 },
  { 22, -8, 9, 1, 18 }
};
int main(void)
{
  int i, j;
  int min;
  
  min = a[0][0];
  for (i=0; i<4; i++) {
    for (j=0; j<5; j++) {
      min = (a[i][j] < min) ? a[i][j] : min;
    }
  }
  
  printf("最小値: %d\n", min);
  
  return 0;
}


332 :デフォルトの名無しさん:2007/02/16(金) 21:14:07
プログラム初心者なんだが、
「a[4][5] = { 」の部分って、mainの外に出しててもいいの?

333 :デフォルトの名無しさん:2007/02/16(金) 21:17:36
>>332
いいの
スコープの違いです

334 :デフォルトの名無しさん:2007/02/16(金) 21:20:45
>>333
>>332は、スコープと言われてもわかんないと思う

335 :330:2007/02/16(金) 21:23:29
>>331
ありがとうございます。しかし
min = (a[i][j] < min) ? a[i][j] : min;
の文の ? 以降がよく分りません。多分まだ教わってないと思います

336 :デフォルトの名無しさん:2007/02/16(金) 21:31:21
>>331
グローバルな名前空間を汚染するのはどうかと思うが。

宿題だから構わないか

337 :デフォルトの名無しさん:2007/02/16(金) 21:32:01
>>335
if(a[i][j] < min) min = a[i][j];

338 :デフォルトの名無しさん:2007/02/16(金) 21:35:47
>>334
そうですね

>>332
*まず初期が行われるタイミングが違います
・関数内(この場合mainの中)で宣言された変数はその関数が呼ばれたときに初めて初期化されます(static宣言を除く)
関数が呼ばれるたびに初期化が行われるということになります
・関数の外で宣言された変数はコンパイル時に初期化されます
プログラムの開始時にその値になっているということです.その後は初期化されません

*その変数を扱うことが出来る範囲が違います(スコープ)
・関数内(この場合mainの中)で宣言された変数はその関数内のみで使うことが出来ます
・関数の外で宣言された変数はすべての関数から使うことが出来ます(ファイルをまたぐときはexternを使います)
・関数外で宣言された変数と関数内で宣言された変数が同じ名前の場合は関数内の変数が有効になります

339 :330:2007/02/16(金) 21:36:36
>>337
成る程( ゚Д゚) 大変良く分かりました

340 :デフォルトの名無しさん:2007/02/16(金) 21:49:28
>>339
実際はこうですよ

if(a[i][j] < min) min = a[i][j];
else min=min;

341 :デフォルトの名無しさん:2007/02/16(金) 21:51:37
>>338
分かりやすくあんがとうございました (´・ω・`)

342 :デフォルトの名無しさん:2007/02/17(土) 00:08:56
[1] 授業単元:プログラミング演習基礎
[2] 問題文(含コード&リンク):
ローテート関数 rotate_left() rotate_right()を実装しなさい。
戻り値:無し
第一引数:(void *)操作対象となる記憶領域を指すポインタ
第二引数:(unsigned int)ローテートするビット数
第三引数:(unsigned int)操作対象となる記憶領域の大きさ(バイト数)
[3] 環境
 [3.1] OS: 指定無し
 [3.2] コンパイラ名とバージョン: gcc VisualC++等
 [3.3] 言語: C
[4] 期限: 2月17日午前9時
[5] その他の制限:
ビッグエンディアン、リトルエンディアンどちらに対応したか
ソースファイル中にコメントで明記すること。

343 :デフォルトの名無しさん:2007/02/17(土) 00:12:52
>>342
1000ビットとかローテートできなきゃいけないのかな。
大きいワークエリアが必要だな。

344 :デフォルトの名無しさん:2007/02/17(土) 01:17:00
>>342
/* リトルエンディアン用 */
# include <limits.h>
void set_bit(unsigned char *data, unsigned which, int bit) {
  int pos = which / CHAR_BIT, shift = which % CHAR_BIT;
  unsigned char old = data[pos];
  data[pos] = old & ~(1 << shift) | bit << shift;
}
int get_bit(unsigned char *data, unsigned which) {
  return data[which / CHAR_BIT] >> which % CHAR_BIT & 1;
}
void rotate_left(void *p, unsigned amount, unsigned size) {
  unsigned char *data = p;
  int i, loop = 0, pos = 0;
  int nbit = CHAR_BIT * size;
  int save = get_bit(data, 0);
  for(i = 0; i < nbit; i++) {
    int next = (pos + amount) % nbit;
    if(next == loop) {
      set_bit(data, pos, save);
      pos = ++loop;
      save = get_bit(data, pos);
    }
    else {
      set_bit(data, pos, get_bit(data, next));
      pos = next;
    }
  }
}
void rotate_right(void *data, unsigned amount, unsigned size) {
  rotate_left(data, size * CHAR_BIT - amount, size);
}

345 :大学生です。:2007/02/17(土) 09:11:20
こんにちは。
先日、プログラミング質問スレッドにて質問させていただきましたが、
板違いということで、ここを紹介してくださいました。

大学のレポートで出された問題ですが、どうしても解けません。
ソフトはウインドウズのビジュアルソフトというのを使ってます。

問題
キーボードから1を入力するとあなたの名前、
2を入力するとあなたの年齢、
3を入力すると、その両方を表示することができるプログラムを作成せよ。

というものです。

よろしくお願いします。


346 :デフォルトの名無しさん:2007/02/17(土) 09:25:55
>>345
>>1嫁。表示する名前、年齢ってどこから参照するん?w

347 :デフォルトの名無しさん:2007/02/17(土) 09:34:41
>345
#include <stdio.h>

int main(void)
{
int c;
char *name = "あなたの名前", *age = "あなたの年齢";

c = getchar();

if(c=='1' || c=='3') puts(name);
if(c=='2' || c=='3') puts(age);

return 0;
}


348 :デフォルトの名無しさん:2007/02/17(土) 10:08:34
>>347 ちとワラタ、ちと吹いたw

349 :デフォルトの名無しさん:2007/02/17(土) 12:17:28
>>ウインドウズのビジュアルソフト
そうだな。フォトショップだな。

350 :デフォルトの名無しさん:2007/02/17(土) 12:59:25
http://www.bk1.co.jp/product/2736729

351 :345:2007/02/17(土) 16:20:22
>>ソフトはウインドウズのビジュアルソフトというのを使ってます。

ウインドウズ ビジュアル スタディオです。

352 :345:2007/02/17(土) 16:30:55
>>347
ありがとうございます。
実行してみて、感激しました。

353 :デフォルトの名無しさん:2007/02/17(土) 21:07:08
↓なんか楽な宿題だせよ?

354 :デフォルトの名無しさん:2007/02/17(土) 21:23:28
[1] 授業単元:暇つぶし
[2] 問題文(含コード&リンク):
<C/C++ソースコード整形ツール>
1.インデントができること
 中括弧のない if for なども、インデントをつけて文を次の行に出力すること(; だけでも)
 switch 文の case の深さは switch と同じか一段下げること
 インデントは タブ文字 or 2文字スペース or 4文字スペースのいずれかで統一すること
2.コメント部分は残し、なるべく変更しないこと
3.一行コメント // にも対応すること
4.関数と関数の間には空行を2ついれること
5.入力ファイルは標準入力(リダイレクト)から与えられるものとし、標準出力に出力すること
6.後は自分が見やすいと判断する基準でよろしく。(中括弧を行末にいれるか、次行に中括弧だけの行を作るか等)
7.入力されるファイルは正しい構文であると仮定して良い
[3] 環境
 [3.1] OS: Windows and Linux
 [3.2] コンパイラ名とバージョン: gcc,g++
 [3.3] 言語: どちらでも可
[4] 期限: [無期限]
[5] その他の制限: 他の宿題を優先すること

355 :デフォルトの名無しさん:2007/02/17(土) 21:28:09
>その他の制限: 他の宿題を優先すること
ワラタw
いい奴だなw

356 :デフォルトの名無しさん:2007/02/17(土) 22:02:18
Cはともかく、C++は面倒くさそうだ。

357 :デフォルトの名無しさん:2007/02/17(土) 22:18:51
便乗だけどこのスレからソースを切り出してくれるフィルタが欲しいな

358 :デフォルトの名無しさん:2007/02/17(土) 22:24:20
このスレから未回答の宿題を切り出してくれるフィルタが欲しい

359 :デフォルトの名無しさん:2007/02/17(土) 22:43:45
>>357
#include <stdlib.h>
#include <string.h>
int main(int c,char**v){return c>1&&(*v=malloc(35+strlen(v[1])))?**v='\0',strc\
at(*v,"perl -ne \"/#include/&&print;\" \""),strcat(*v,v[1]),strcat(*v,"\""),sy\
stem(*v),free(*v),0:1;}

360 :デフォルトの名無しさん:2007/02/17(土) 22:46:14
>>354
K&Rスタイルは嫌いですか?
あれの正統スタイルはインデント幅5なんだよ・・・

361 :デフォルトの名無しさん:2007/02/17(土) 23:19:20
[1] 授業単元:関数
[2] 問題文(含コード&リンク):2行3列の号列maと3行2列の行列mbの積を、
2行2列の行列mcに格納する関数
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)


362 :デフォルトの名無しさん:2007/02/17(土) 23:24:20
途中で送信されてしまいました。
言語はCです、以下自分で書いたコード
#include <stdio.h>
void mul(const int ma[2][3],const int mb[3][2], int mc[2][2]) /* 配列maとmbの積をmcに格納*/
{
int i,j,k;
int tmp;
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
tmp=0;
for(k=0;k<3;k++)
tmp+=ma[j][k]*mb[k][j];
mc[i][j]=tmp;
}
}
}

363 :デフォルトの名無しさん:2007/02/17(土) 23:28:22
>>362
tmp+=ma[j][k]*mb[k][j];

tmp+=ma[i][k]*mb[k][j];

364 :デフォルトの名無しさん:2007/02/17(土) 23:29:47
>>361
期限は無期限で良いのか?w
環境はWin/VS7or8 と勝手に予測

365 :デフォルトの名無しさん:2007/02/17(土) 23:32:01
>>361
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

この部分が未入力だけど

366 :デフォルトの名無しさん:2007/02/17(土) 23:40:22
void mul(const int ma[2][3],const int mb[3][2], int mc[2][2]){
int i, k, h;

for(i=0; i<2; i++){
for(k=0; k<2; k++) mc[i][k] = 0;
}

for(i=0; i<2; i++){
for(k=0; k<3; k++){
for(h=0; h<2; h++){
mc[i][h] += ma[i][k] * mb[k][h];
}
}
}
}

367 :デフォルトの名無しさん:2007/02/17(土) 23:41:53
>>365
間違って送信されてしまってパニくってました
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC++2005Express
 [3.3] 言語: C
[4] 期限: 来週中
[5] その他の制限: 特になし
です。

>>363
その部分を書き換えてみましたが結果は同じでした。

368 :デフォルトの名無しさん:2007/02/18(日) 00:01:07
マジレスすると

何故困るのかが分からない。
>>363で完成。

>結果は同じ
何の結果だよ。
main()晒せ

369 :デフォルトの名無しさん:2007/02/18(日) 00:06:32
>>363
関数があってるか確認するサンプルプログラムの方に間違いがありまして
そこを訂正したら正しい答えが出るようになりました。

>>366
こちらのほうがすっきりしていて読みやすいですね。

訂正された場所が間違っているのは分かったのですが
どうしてそうなるのか分からないのでこれから熟考してみます

ありがとうございました。

370 :デフォルトの名無しさん:2007/02/18(日) 00:11:05
>>369
mc[i][j] = Σ{ma[i][k] * mb[k][j]}

熟考も何も公式だろ。

371 :361:2007/02/18(日) 00:12:38
>>368
main()の部分です
/*-------以下--------*/
int main(void)
{
int i,j;

int ma [2][3] = { {1,2,3},{4,5,6} };
int mb [3][2] = { {1,2},{3,4},{5,6} };
int mc [2][2]= {0};

mul(ma,mb,mc);

for (i=0;i<2;i++)
{
for(j=0;j<2;j++)
printf("%3d",mc[i][j]); // ここがprintf("%3d",i,mc[i][j])
putchar('\n');
}
return(0);
}
自分でも何でこんな間違いしてたのかサッパリ分からない

372 :デフォルトの名無しさん:2007/02/18(日) 00:17:57
うはwまじかw
俺の試したソース↓

int ma[N][M] = {
  { 1, 2, 3 },
  { 4, 5 ,6 }
};
int mb[M][N] = {
  { 1, 2 },
  { 3, 4 },
  { 5, 6 }
};
int mc[N][N] = { 0 };


373 :361:2007/02/18(日) 02:27:38
やっと理解した。
ついでにもう一つ気づいたこと
void mul(const int ma[2][3],const int mb[3][2], int mc[2][2]) /* 配列maとmbの積をmcに格納*/
{
int i,j,k;
//-----ここから-----
for(k=0;k<3;k++){
for(j=0;j<2;j++){
for(i=0;i<2;i++){
//-----ここまで-----
//この3行はどのように入れ替えても同じ結果が出る
//個人的には大発見だ
//今後役に立つかはさっぱりだがw
mc[i][j]+=ma[i][k]*mb[k][j];
}}}}
puts("もう寝る");

374 :デフォルトの名無しさん:2007/02/18(日) 13:17:26
よろしくお願いします!

[1] 授業単元:プログラミングU
[2] 問題文(含コード&リンク):下
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:BCC
 [3.3] 言語:C
[4] 期限:友達に聞かれてるのですぐにでも
[5] その他の制限:特に無し

下のプログラムは最小公倍数を求めるプログラムである。
プログラム内の@〜Fに適当な命令を入れてプログラムを完成せよ。

#include<stdio.h>
int main(void)
{
int a,b,i;
printf("2つの数の最小公倍数を求めます。数値を入力:。\n");
scanf("%d",@);
scanf("%d",A);
for(i=B;i<=C;D)
{
if(E&&F)
{
printf("最小公倍数は%dです。\n",i);
break;
}
}
return(0);
}

375 :デフォルトの名無しさん:2007/02/18(日) 13:32:39
>>374
もしかしてこれ

for(i=a; i<=a*b; ++i) 
みたいにiを1づつ増やして

if( (i%a) == 0 && (i%b) == 0) 
片っ端から全部aとbでともに割り切れるものを探す
ということなのか。


376 :デフォルトの名無しさん:2007/02/18(日) 13:34:25
うおっ、まじか?面倒くせぇ。a*bを最大公約数で割れよw

377 :デフォルトの名無しさん:2007/02/18(日) 13:35:21
なんか不効率っぽいけど。
@: &a
A: &b
B: (a > b)? a: b
C: a*b
D: i++
E: i%a==0
F: i%b==0

378 :デフォルトの名無しさん:2007/02/18(日) 13:37:10
>>377
ありがとうございます!
Bはどうしてそうなるのか教えていただけませんか?

379 :デフォルトの名無しさん:2007/02/18(日) 13:39:52
>>378
aとbの最大限公倍数は、aよりもbよりも大きいから。
大きい値から調べた方が効率いいでしょ?

380 :デフォルトの名無しさん:2007/02/18(日) 13:42:03
よりも じゃねぇな…。
よりも→以上

381 :デフォルトの名無しさん:2007/02/18(日) 13:42:10
しかしまぁ最小公倍数なんて絶対存在するんだからループの継続条件なんていらなくね?
問題作成者の数学能力に疑問


382 :デフォルトの名無しさん:2007/02/18(日) 13:43:46
>>374
とりあえず友達には素直に分からないって言うべきだと思う

383 :デフォルトの名無しさん:2007/02/18(日) 13:44:03
どうもありがとうございました。
続いてお願いします。

テンプレは>>374と同じ

以下のプログラムはファイル[data_in.txt]から数字(整数)を100個読み出し、[data_out.txt]に読み込んだ数値を10倍にして書き込むプログラムである。
プログラムの空白部分に適切なコードを挿入し、プログラムを完成させよ。なおファイルポインタはそれぞれ[fp1]と[fp2]を使用すること。
なお、それぞれの空白には2行ずつプログラムが入る。

#include<stdio.h>
int main(void)
{
/*ファイルポインタの宣言*/
【空白@】
int i,k;
printf("これからファイルを開きます。\n");
/*ファイルポインタと実ファイルとを結びつける*/
【空白A】
if(fp1 == NULL){
printf("ファイルが開けません。\n");
return(-1);
}
printf("ファイルからデータを読み込みます。\n");
for(i=0;i<100;i++){
【空白B】
printf("%d\n",k);
}
printf("データの読み込みを終了します。\n");
/*ファイルを閉じる*/
【空白C】
return(0);
}

384 :デフォルトの名無しさん:2007/02/18(日) 13:46:34
>>383
data_in.txtを具体的に

385 :デフォルトの名無しさん:2007/02/18(日) 13:47:13
Ba
Di += a
E1

としてみると多分処理速度的には効率化した気がする。
Eが超冗長だけど。

386 :デフォルトの名無しさん:2007/02/18(日) 13:47:33
>>383
先生にその問題じゃ解けないって抗議してこい
お前の頭が悪いんじゃなくて、先生が悪いよ

387 :デフォルトの名無しさん:2007/02/18(日) 13:48:08
>>384
問題には書いてないのですが、授業から考えると

100
52
98
132
60
55




と一行にひとつずつ数字が書いてあるテキストファイルだと思います

388 :デフォルトの名無しさん:2007/02/18(日) 13:53:01
>>383 適当に書いてみよう
【空白@】
FILE *fp1, *fp2;
(空行)

【空白A】
fp1 = fopen("data_in.txt", "r");
fp2 = fopen("data_out.txt", "w"); // これが開けないチェックは…?
【空白B】
fscanf(fp, "%d", &k);
fprintf(fp, "%d\n", k * 100);

【空白C】
fclose(fp1);
fclose(fp2);


389 :デフォルトの名無しさん:2007/02/18(日) 13:55:34
>>388
未定義のシンボル fp(関数 main() )

となりました

390 :デフォルトの名無しさん:2007/02/18(日) 13:59:27
>>389
【空白B】
fscanf(fp1, "%d", &k);
fprintf(fp2, "%d\n", k * 100);

391 :デフォルトの名無しさん:2007/02/18(日) 14:01:50
>>390
100倍になってしまいました
fprintf(fp, "%d\n", k * 10); と書き換えればOKでしょうか?

392 :デフォルトの名無しさん:2007/02/18(日) 14:05:23
>>391 書き換えてみればいいじょのいこ?その通りだが

393 :デフォルトの名無しさん:2007/02/18(日) 14:06:22
>>391
駄目。それだと未定義のシンボル fp(関数 main() )って出るぞ

394 :デフォルトの名無しさん:2007/02/18(日) 14:06:45
ありがとうございました!
多分次がラストになると思います

テンプレは>>374と同じ

選択法により複数の数値を並び替えることを考える。
1.次に示す5つの数値を昇順に並び替える。並び変わる様子をすべて示せ。
[9,5,3,8,1]
2.数値が3個、4個、5個の場合、それぞれ数値の比較回数は何回になるか答えよ。
3.数値がn個のとき、比較回数が何回になるか答えよ。
4.選択法による数値の比較回数をオーダーで表示するとどのようになるか答えよ。

395 :デフォルトの名無しさん:2007/02/18(日) 14:08:02
まだ問題があったのかよ・・・ 最初にいっぺんに出したら楽だとか考えなかったのか?

396 :デフォルトの名無しさん:2007/02/18(日) 14:10:23
>>394
ソートする手法は?バブル?基本選択?基本挿入?クイック?シェル?

397 :396:2007/02/18(日) 14:11:23
って、選択法って書いてあったか、すまそw

398 :デフォルトの名無しさん:2007/02/18(日) 14:11:28
>>396
選択法って書いてあるっぽいよ?

399 :デフォルトの名無しさん:2007/02/18(日) 14:12:07
>>396
よくわからないので、参考として授業で習った数値の並び替えのプログラムを載せておきますね

#include <stdio.h>

void swap(int *x, int *y); /*入れ替え関数*/
void sort(int *x, int *y, int *z); /*並び替え関数*/

int main(void)
{
int a=100,b=1,c=50;
printf("初期状態\t");
printf("a=%d b=%d c=%d\n",a,b,c);
sort(&a,&b,&c);
printf("sort終了後\t");
printf("a=%d b=%d c=%d\n",a,b,c);
return (0);
}
void sort(int *x, int *y, int *z)
{
if(*x < *y) swap(x,y);
if(*x < *z) swap(x,z);
if(*y < *z) swap(y,z);
}
void swap(int *x, int *y)
{
int z;
z=*x;
*x=*y;
*y=z;
}

400 :デフォルトの名無しさん:2007/02/18(日) 14:30:30
>>399
大学生か専門学生?

401 :デフォルトの名無しさん:2007/02/18(日) 14:32:59
return(0)って括弧つけるのどこのコーディングスタイル?

402 :デフォルトの名無しさん:2007/02/18(日) 14:34:19
>>400
高専です

403 :デフォルトの名無しさん:2007/02/18(日) 14:39:27
>>394はソースが必要?並び替える様子の数列を記述するだけでええんか?
比較回数は要素がnこの場合 n(n-1)/2 だったかと。
並び変わる様子はこんなもんか?
9 5 3 8 1 < 初期状態

1 5 3 8 9
1 3 5 8 9
1 3 5 8 9
1 3 5 8 9

http://ja.wikipedia.org/wiki/%E9%81%B8%E6%8A%9E%E3%82%BD%E3%83%BC%E3%83%88
> 最悪計算時間がO(n2)
オーダーはこれのことか?

404 :デフォルトの名無しさん:2007/02/18(日) 14:40:19
>>402
高専か。高校生なのに難しいのやってるな。(そこまででもないが)
ちなみに何年ですか?

405 :デフォルトの名無しさん:2007/02/18(日) 14:43:26
>>404
二年です

406 :デフォルトの名無しさん:2007/02/18(日) 14:44:07
多分それでOkです。ありがとうございます

407 :デフォルトの名無しさん:2007/02/18(日) 14:59:17
>>399のやり方に倣うならこうじゃない?
@ABCD
9 5 3 8 1 @とAを比較、@の方が大きいので交換
5 9 3 8 1 @とBを比較、@の方が大きいので交換
3 9 5 8 1 @とCを比較、@の方が小さいので何もしない
3 9 5 8 1 @とDを比較、@の方が大きいので交換
1 9 5 8 3 以下略
1 5 9 8 3
1 5 9 8 3
1 3 9 8 5
1 3 8 9 5
1 3 5 9 8
1 3 5 8 9

408 :デフォルトの名無しさん:2007/02/18(日) 15:07:33
>>407 それだと選択法じゃないんじゃね?

409 :デフォルトの名無しさん:2007/02/18(日) 15:10:08
>>408
あ、選択法って指示されてるのか、よく見てなかったわすまん

410 :デフォルトの名無しさん:2007/02/18(日) 16:49:49
>>381
おまえエンジニアじゃなくて数学者になればよかったのに

411 :デフォルトの名無しさん:2007/02/18(日) 17:08:26
今気がついたんだけど、>>374だと
http://ja.wikipedia.org/wiki/%E6%9C%80%E5%B0%8F%E5%85%AC%E5%80%8D%E6%95%B0
>どちらかが 0 であるときには、最小公倍数は 0 とする
を満たせなくね?

412 :デフォルトの名無しさん:2007/02/18(日) 17:16:25
Bを0にすりゃいいだろ。

413 :デフォルトの名無しさん:2007/02/18(日) 17:26:15
          _   _
        r((___)_((___))、
        |ノ'────┐| |
        | (r'´   ´'J | | |
       ハ|ー-(ヘ)─(ヘ)-‐rヘ
       `〈   c、__,.っ   〉ヽ}    < あーいとぅいまてぇーん
        |: : :、___: : : : ト'        by マルさん
       _ハ//⌒'''''`: : ::ノ_
  ,. ─< ./:/、: : : :.,;.イ   >─ 、
/     /:::/\_/'"´ ̄_   \
   / ̄、マ>  〈  〉   (::: ヽ   }
参照URL↓
ttp://www.fujitv.co.jp/dybastar/chara.html

414 :デフォルトの名無しさん:2007/02/18(日) 17:26:21
>>412
>>377の解答でBを0にってことか?
悲惨なことになるんだけど・・・

415 :デフォルトの名無しさん:2007/02/18(日) 17:48:04
0しか答えにならなくなるな。
Bにabのうち小さい方入れればOKかな?

416 :デフォルトの名無しさん:2007/02/18(日) 17:53:01
深く考えすぎてた
>>377のBの不等号を逆にして
Eをi==0||i%a==0にすればOKだった

417 :デフォルトの名無しさん:2007/02/18(日) 17:57:35
a.txtに
_A
_B
_C
という文字が入っていてそれを1行ずつ違う変数に読みこみたい。

418 :デフォルトの名無しさん:2007/02/18(日) 17:59:19
そうですか。

419 :デフォルトの名無しさん:2007/02/18(日) 18:13:57
>>417
#include <stdio.h>
int main(void)
{
FILE *fp;
char a[10];
char b[10];
char c[10];

    if ( NULL!=(fp=fopen("a.txt","r") ) ) {
        fgets(a,sizeof(a),fp);
        fgets(b,sizeof(b),fp);
        fgets(c,sizeof(c),fp);
        fclose(fp);
    }
    printf(" a:%s b:%s c:%s",a,b,c);
    return 0;
}


420 :デフォルトの名無しさん:2007/02/18(日) 18:58:31
>>385
お前あった舞いな
そこまで考えなかった世

421 :デフォルトの名無しさん:2007/02/18(日) 20:18:34
課題でやってきて下さいと言われたのですが、C言語始めたばかりで
 なにから手をつけていいのかちんぷんかんぷんで
 みなさん助けてくださいませんでしょうか??;; よろしくお願いします。
[2] 問題文
 番号、氏名、フリガナ、住所、電話番号を表示するプログラムを作成せよ。というもので
----------------------------------------------------------------------------
U学生番号U 氏名 U フリガナ U 年 U 住所 U 電話番号  U
U 0001 U山崎浩高U ヤマザキヒロタカ U 20 U 香坂市3丁目 U 054-227-1468 U
U 0002 U大塚高次U オツカタカツグ U 19 U 笛川市2丁目 U 055-235-7789 U
U 0003 U長谷部仁U ハセベジン U 21 U  北斗市1丁目 U 0541-156-7785 U
U 0004 U葛西隆行U カサイタカユキ U 20 U 東百合菜 U 0556-554-6635 U
----------------------------------------------------------------------------
 ※上記のないようにて構造体を作成して、初期値として設定する。

A以下の入力により、各データをソートして表示を行う。

 1 学生番号 2 氏名 3 住所 4 電話番号 5 年齢順
 
Bソート方法はバブルソートを用いて行う。

C使用して良い関数
  printf関数 getch関数 は使っていいとあります。 
  また memcpy memcmp strcpy strcmp 等の関数は自作しろとあります。

[3] 環境
 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
 [3.3] 言語: (C/C++/どちらでも可)
[4] 期限: (2007年2月19日まで)
[5] その他の制限: (printf関数 getch関数 は使っていいとあります。 
  また memcpy memcmp strcpy strcmp 等の関数は自作しろとあります。
最後になりますが、どうかよろしくお願いします;;

422 :421です:2007/02/18(日) 20:19:47
ずれてしまい醜くて申し訳ないです・・・

423 :デフォルトの名無しさん:2007/02/18(日) 20:38:31
>>421 どれどれ

424 :デフォルトの名無しさん:2007/02/18(日) 20:39:44
>>421 元からズレてるやん・・・↓んじゃ、後は回答任せた。俺は寝る。

425 :デフォルトの名無しさん:2007/02/18(日) 20:39:50
初期化が致命的にめんどくさいです><

426 :デフォルトの名無しさん:2007/02/18(日) 20:42:50
>>421
言いたいことがあるんだが・・その条件でC言語始めたばかりとかありえないと思うんだが
もしかしてサボってたね?

427 :デフォルトの名無しさん:2007/02/18(日) 20:44:15
>>425
{
{"0001","山崎浩高","ヤマザキヒロタカ","20","香坂市3丁目","054-227-1468"},
{"0002","大塚高次","オツカタカツグ","19","笛川市2丁目","055-235-7789"},
{"0003","長谷部仁","ハセベジン","21","北斗市1丁目","0541-156-7785"},
{"0004","葛西隆行","カサイタカユキ","20","東百合菜","0556-554-6635"},
};

428 :デフォルトの名無しさん:2007/02/18(日) 20:45:34
はっ、半角カタカナ!?

429 :デフォルトの名無しさん:2007/02/18(日) 20:46:12
最初に名前を入力し、次に点数を入力する。これを5回繰り返す。
そして、これを昇順に並び替え、表示するプログラムを作る。という課題なのですが、構造体から手で入力するやり方がわかりません。
という課題なのですが、

typedef struct{
char name[50];
int score;
}point;
int main(void){
int i;
char aname,bname,cname,dname,ename;
int ascore, bscore ,cscore ,dscore ,escore;
printf("5人の名前と点数を入力してください\n");
printf("1人目の名前\n"); scanf("%s",&aname);
printf("1人目の点数\n"); scanf("%d",&ascore);
printf("2人目の名前\n"); scanf("%s",&bname);
printf("2人目の点数\n"); scanf("%d",&bscore);
printf("3人目の名前\n"); scanf("%s",&cname);
printf("3人目の点数\n"); scanf("%d",&cscore);
printf("4人目の名前\n"); scanf("%s",&dname);
printf("4人目の点数\n"); scanf("%d",&dscore);
printf("5人目の名前\n"); scanf("%s",&ename);
printf("5人目の点数\n"); scanf("%d",&escore);
point std[] = {
{aname,ascore},
{bname,bscore},
{cname,cscore},
{dname,dscore},
{ename,escore},
};


430 :デフォルトの名無しさん:2007/02/18(日) 20:48:03
>>429
素晴らしいセンスだ >>1 読め

431 :429:2007/02/18(日) 20:48:17
>429続き
このソースのpoint std[]のなかに値を入れる方法がわかりません。
このソースのやり方でやると構造体にうまく値が入らないので出力結果が以上になってしまいます。
どのようにすればよいのか教えていただきたいです。

432 :デフォルトの名無しさん:2007/02/18(日) 20:52:29
あ?

433 :421です:2007/02/18(日) 21:08:28
>>426

WEB上でC言語の勉強しながらこの課題をやりなさい!といきなり出されたので、サボってたわけではないのです・・・

どのような感じでやったらいいのでしょうか・・・;;

434 :デフォルトの名無しさん:2007/02/18(日) 21:17:56
>>421
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3665.txt
苦情は受け付けない

435 :デフォルトの名無しさん:2007/02/18(日) 21:29:56

在日=竹石圭佑らしいが、熊本の済々黌の弓削達也って奴も朝鮮人だろ
在日って顔が日本人とは全然違うもんな

436 :421です:2007/02/18(日) 21:45:54
>>434

 早速ですが拝見させて頂きました。 ちゃんとソートされていてびっくりです。
 ありがとうございました。 

それで421で説明不足だったのですが
----------------------------------------------------------------------------
U学生番号U 氏名 U フリガナ U 年 U 住所 U 電話番号  U
U 0001 U山崎浩高U ヤマザキヒロタカ U 20 U 香坂市3丁目 U 054-227-1468 U
U 0002 U大塚高次U オツカタカツグ U 19 U 笛川市2丁目 U 055-235-7789 U
U 0003 U長谷部仁U ハセベジン U 21 U  北斗市1丁目 U 0541-156-7785 U
U 0004 U葛西隆行U カサイタカユキ U 20 U 東百合菜 U 0556-554-6635 U
----------------------------------------------------------------------------
 @画面内にこのデータを常に出しているにはどうしたら良いでしょうか??

 Aまた 1、2、3、4のKEYを1回押す(ENTERを押さずに)とソートされた画面に切り替わるようにするにははどうやったらいいのでしょうか?

よろしくお願いします;;

437 :421です:2007/02/18(日) 21:46:49
たびたび上げてしまい申し訳ありません・・・

438 :デフォルトの名無しさん:2007/02/18(日) 21:54:34
移植性の高い方法では無理
まずそんな宿題でないだろ

439 :デフォルトの名無しさん:2007/02/18(日) 22:03:53
>>436
え〜めんどくさーい

while(1){
system("CLS");
for(i=0; i<4; i++){
printf("%s %s %s %s %s %s\n",
stud[i].number,
stud[i].name,
stud[i].kana,
stud[i].age,
stud[i].address,
stud[i].tel
);
}

flag = getch();

if(flag == '1'){
//略
}else if(flag == '2'){
//略
}else if(flag == '3'){
//略
}else if(flag == '4'){
//略
}else if(flag == '5'){
//略
}else break;
}

440 :デフォルトの名無しさん:2007/02/18(日) 22:07:34
[1] 授業単元:プログラミング技術
[2] 問題文(含コード&リンク):
以下のアスタリスクのタワーを表示させよ
*
***
*****
*******
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: bcc or VC++
 [3.3] 言語: C言語
[4] 期限: 2月19日
[5] その他の制限:
・変数は三個〜五個使用
・for文を三回使用
・if文、配列等は禁止。for文のみ使用

よろしくお願いします。

441 :440:2007/02/18(日) 22:11:43
もうしわけございませんアスタリスクのタワーの表示がちゃんとされなかったようです
http://www.dotup.org/uploda/www.dotup.org0943.txt

こちらのでお願いします

442 :デフォルトの名無しさん:2007/02/18(日) 22:12:37
>>440
#include <stdio.h>
int main(void) {
int a,b,c;
puts("*\n***\n*****\n*******");
for(;0;)for(;;)for(;;);
return 0;
}

443 :デフォルトの名無しさん:2007/02/18(日) 22:13:15
>>441
なんか変だと思った

444 :デフォルトの名無しさん:2007/02/18(日) 22:16:26
>>440
#include <stdio.h>
int main(void) {
    static const int n = 4;
    int i, j;
    for (i = 0; i < n; i++) {
        for (j = 0; j < n - i - 1; j++)
            printf(" ");
        for (j = 0; j < 2 * i + 1; j++)
            printf("*");
        printf("\n");
    }
    return 0;
}

445 :デフォルトの名無しさん:2007/02/18(日) 22:17:10
>>441
#include <stdio.h>

int main(void){
int i, k, h;

for(i=0; i<4; i++){
for(k=0; k<3-i; k++) putchar(' ');
for(h=0; h<i*2+1; h++) putchar('*');
puts("");
}
return 0;
}

変数むりやり3つ使った

446 :デフォルトの名無しさん:2007/02/18(日) 22:18:05
>>444
なるほど・・そうゆうことか!

447 :440:2007/02/18(日) 22:22:00
>>444 >>445
どうもありがとうごいます!

448 :デフォルトの名無しさん:2007/02/18(日) 22:44:50
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク): サンプルプログラムfdivideは、割り算関数fdivideの実行速度を確かめるプログラムである。
   a=34567 b=10繰り返し回数=1000とすると、実行にかなり時間がかかることが分かる。fdivideを高速化した関数
   int fdivider(int a,int b);を作成し、実行速度を確かめるプログラムfdividertimeを実行せよ。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VC 6.0 win32
 [3.3] 言語: visualC++
[4] 期限: ([2007年2月20日17:00まで] )
[5] その他の制限: プログラム中でC++ の掛け算、割り算 *,/ を使用してはいけない。


449 :デフォルトの名無しさん:2007/02/18(日) 22:53:22
それを自分以外が読んで意味が分かると思うか

450 :デフォルトの名無しさん:2007/02/18(日) 23:00:50
>>448
fdivideをうp

451 :421です:2007/02/18(日) 23:21:13
>>439

せっかく作っていただいたのですが、434のプログラムのどこに接続したらいいのかわかりません;;

なにとぞよろしくお願いします。;;

452 :448:2007/02/18(日) 23:41:42
すみません。fdivide書き込み忘れてました。 あと、fdivideの実行速度を確かめるプログラムはfdividetimeで、 fdividetimeは、
#include <iostream> // 現在時刻を計測するのに使う
#include <time.h>
using namespace std;
int fdivide(int a, int b );
int main ()
{
int a; int b; int c; int iter;
time_t t1, t2;  //現在時刻を記憶するのに使う
cout << "Input a ="; cin >> a;
cout <<"Input b ="; cin >> b;
cout <<"繰り返し回数は="; cin >> iter;
cout <<"fdivide start" <<endl;
time(&t1); // t1 に現在時刻を記憶
for( int i = 0; i <iter ; i++ ){
c = fdivide( a, b );
}
time(&t2);// t2 に繰り返し実行後の現在時刻を記憶
cout <<"fdivide end c = "<< c<< " time " <<
difftime(t2,t1)<<"sec." << endl; // 掛かった秒数を表示
return 0;
}
int fdivide( int a, int b )
{
int dv= 0;
while ( a >= b ){
a -= b;
dv++;
}
return dv;
}
です。fdivideは入りきらなかったので次に書き込みます。

453 :448:2007/02/18(日) 23:49:09
fdivideは
#include<iostream>
#include<iomanip>
using namespace std;
int fdivide(int a, int b);
int main(){ int a; int b;
cout <<"a="; cin >>a; cout <<"b="; cin >>b;
if (b==0) {   cerr<<"bには0以外の整数を入力してください";
return 1;
} cout <<a<<"/"<<b<<"="<< fdivide(a,b)<<endl;
return 0;
}int fdivide(int a, int b){
int fdivide(int a,int b){
int count = 0;
if (a>=0){ if(b>0){ while (a >=b){
a-=b; count++; }
return count;
}
if (b<0){ while (a>=-b){
a+=b; count--;
}
return count; } }
if (a<=0){ if (b>0){ while (-a>=b){
a+=b;
count--;
} return count; } if (b<0){
while (-a>=-b){
a-=b;
count++;
}return count; } }}
です。長くなってすみません。どうかよろしくお願いします。

454 :デフォルトの名無しさん:2007/02/19(月) 00:06:42
iterって何のためにあるの?

455 :デフォルトの名無しさん:2007/02/19(月) 00:29:23
すみません。iterが何のためにあるのかは分かりません。
fdivideはサンプルプログラムとして与えられたプログラムです。

456 :454:2007/02/19(月) 00:36:35
あー、実行時間を拡大するためにあるのか。
スマソ。

457 :デフォルトの名無しさん:2007/02/19(月) 00:39:28
>>448
#include <climits>
int fdivider(int a, int b) {
    int dv=0, i=1;
    if(a<0) if(b<0) return fdivider(-a,-b); else return -fdivider(-a,b);
    else if(b<0) return -fdivider(a,-b);
    while(b<INT_MAX>>1) b<<=1,i<<=1;
    do if(a>=b) a-=b,dv|=i; while(b>>=1,i>>=1);
    return dv;
}

どれほど速くなってるか計ってないからわからんが。

458 :デフォルトの名無しさん:2007/02/19(月) 00:49:12
カンマ演算子使いすぎ…

459 :448:2007/02/19(月) 01:01:06
こんな遅い時間にありがとうございます。

460 :デフォルトの名無しさん:2007/02/19(月) 01:13:06
-a ← これって掛け算じゃないの?
マクロ使って多重定義とかアホなことやってた・・・orz

461 :デフォルトの名無しさん:2007/02/19(月) 01:19:49
単項-は符号反転演算子。
処理系によっては掛け算で実装されてるかもしれないが、知ったこっちゃない。

462 :デフォルトの名無しさん:2007/02/19(月) 04:31:26
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク): 5.8 Write a program that uses a for statement to find the smallest of several integers.
Assume that the first value read specifies the number of values remaining and that the first number is not one of the integers to compare.

forループを使い、4つ、5つと入力した数字の一番小さい数字をアウトプットするという問題です。
例;9, 8, 12, 10, 16と5つのintegerを入力したとするとアウトプットは8になります。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: (C++
[4] 期限: 2007年02月25日17:00まで]

463 :デフォルトの名無しさん:2007/02/19(月) 04:32:58
英語と日本語とどっちを信じればいいんだよ

464 :デフォルトの名無しさん:2007/02/19(月) 05:08:46
>>462
日本語がお上手ですね

465 :デフォルトの名無しさん:2007/02/19(月) 05:14:28
気に入らない質問やその他や発言はスルーの方向で。

466 :デフォルトの名無しさん:2007/02/19(月) 05:17:02
気に入らない質問やその他や発言はスルーの方向で。

467 :デフォルトの名無しさん:2007/02/19(月) 05:18:57
「forループを使い」とあるから、ループに入る前に個数を入力させて、
for (i=0; i<number; i++) でループをはじめるんじゃまいか?

468 :デフォルトの名無しさん:2007/02/19(月) 05:30:56
英語がちゃんと訳せないんだったら英語だけにしろよ。

469 :デフォルトの名無しさん:2007/02/19(月) 06:15:16
【質問テンプレ】
[1] 授業単元: オペレーティングシステム
[2] 問題文(含コード&リンク):
Linux上でfork, execなどのシステムコールを利用して簡単なコマンドインタープリターを作成せよ。
作成するコマンドインタプリターは複数のコマンドを同時に実行できるようにする必要がある。
例えば、

ls; find . ?name aaa ?print; cat abc

のように、複数のコマンドを;で結合する場合はそれらのコマンドを順番に実行できるようにする必要がある。

[3] 環境
 [3.1] OS: windowsXP,cygwin
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語:C言語
[4] 期限: ([2007年02月20日23:59まで]

進級かかってそうです。朝までやってましたがわかりませんでした…
よろしくお願いします

470 :デフォルトの名無しさん:2007/02/19(月) 16:50:18
ぎりぎりまでやらずにさっさと投げろよ
あと1日ちょいでやる暇人は少ないと思うぞ

471 :デフォルトの名無しさん:2007/02/19(月) 17:38:30
禿同

472 :デフォルトの名無しさん:2007/02/19(月) 17:38:34
>>469
留年すれば?

#include <stdio.h>
#include <stdlib.h>
int main(void) {
    char str[0x400], *p;
    int i, q;
    l:
    printf("> ");
    fflush(stdout);
    if(fgets(str, sizeof(str), stdin)) {
        for(i = q = 0, p = str; ; i++) {
            switch(str[i]) {
                case '\0':
                case '\n':
                    q = 1;
                case ';':
                    str[i] = '\0';
                    system(p);
                    p = str + i + 1;
                    if(q) goto l;
            }
        }
        goto l;
    }
}

473 :デフォルトの名無しさん:2007/02/19(月) 17:45:45
やっつけ感があふれてるなw

474 :デフォルトの名無しさん:2007/02/19(月) 18:40:20
わからないからって文句だけつけて逃げる奴らってみっともない。

475 :デフォルトの名無しさん:2007/02/19(月) 18:43:10
答えてもらえないからって煽るヤツほどじゃねーよw

476 :デフォルトの名無しさん:2007/02/19(月) 18:43:12
うだうだいわずかだいをとけ!

477 :デフォルトの名無しさん:2007/02/19(月) 18:52:41
どれを解いて欲しいのかよくわからないから、
未回答のやつまとめてくれ

478 :デフォルトの名無しさん:2007/02/19(月) 18:53:56
未回答の問題とかツールで一気に集められるように、テンプレ改正した方が良くないか?

↓仕様はお前に頼んだ。

479 :デフォルトの名無しさん:2007/02/19(月) 18:55:06
めんどい

480 :デフォルトの名無しさん:2007/02/19(月) 21:02:45
前日書き込んだものです。回答を頂いたみたいなのですが、よくわからなかったのでもう一度お願いします;;
この宿題をおねがいします。
 問題文

 番号、氏名、フリガナ、住所、電話番号を表示するプログラムを作成せよ。というもので

学生番号  氏名  フリガナ  年  住所     電話番号  
0001  山崎浩高 ヤマザキヒロタカ 20 香坂市3丁目  054-227-1468
0002  大塚高次 オツカタカツグ  19 笛川市2丁目  055-235-7789
0003  長谷部仁 ハセベジン  21 北斗市1丁目   0541-156-7785
0004  葛西隆行 カサイタカユキ  20 東百合菜    0556-554-6635
0005  高木修  タカギオサム  19 南高津5丁目   028-557-6682
0006  丹沢紀夫 タンザワノリオ  20 神橋田原    0784-189-6774
0007  北沢国正 キタザワクニマサ 20 大俵2丁目    0783-1152-4658
0008  新谷幸雄 シンタニユキオ  21 八代東野    0657-1215-6353
 ※上記のないようにて構造体を作成して、初期値として設定する。
A以下の入力により、各データをソートして表示を行う。
 1 学生番号 2 氏名 3 住所 4 電話番号 5 年齢順  0 終了
  ※なにも押さないと画面には初期のデータが出ていて、1を押すと番号順に並び0を押すと終了するという感じが望ましいそうです。
Bソート方法はバブルソートを用いて行う。
C使用して良い関数
  printf関数 getch関数 は使っていいとあります。 
  また memcpy memcmp strcpy strcmp 等の関数は自作しろとあります。
[3] 環境
 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
 [3.3] 言語: (C/C++/どちらでも可)
[4] 期限: (2007年2月20日まで)
[5] その他の制限: (printf関数 getch関数 は使っていいとあります。 
  また memcpy memcmp strcpy strcmp 等の関数は自作しろとあります。
どうかよろしくお願いします;;


481 :デフォルトの名無しさん:2007/02/19(月) 21:03:57
この板の住人、空気読めすぎw
出題者も回答者も常連ばっかりなのか?

482 :デフォルトの名無しさん:2007/02/19(月) 21:04:28
俺タイミング読めなさ杉。鬱。

483 :デフォルトの名無しさん:2007/02/19(月) 21:05:13
>>480
何度やっても、「よくわからなかったのでもう一度お願いします」とやるのか?
どこが分からないのかを書けよ

484 :デフォルトの名無しさん:2007/02/19(月) 21:10:24
>>480
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3666.txt

485 :デフォルトの名無しさん:2007/02/19(月) 21:34:50
軽い質問なんですが

struct member *createMember();

これが構造体の関数なのはわかるんですが
関数における * ってどんな存在ですか?

486 :デフォルトの名無しさん:2007/02/19(月) 21:37:17
軽い質問なんですが、なんでこのスレに書き込むんですか?

487 :デフォルトの名無しさん:2007/02/19(月) 21:37:35
ぽいんたあだよ

488 :デフォルトの名無しさん:2007/02/19(月) 21:38:46
重い質問なんですが、スレタイも理解できないほどの知能でなんで生きていられるの?

489 :デフォルトの名無しさん:2007/02/19(月) 21:40:02
おれのだいがくのがっかはちのうじょうほうがっかだよ

490 :480:2007/02/19(月) 21:50:39
>>483

学生番号  氏名  フリガナ  年  住所     電話番号  
0001  山崎浩高 ヤマザキヒロタカ 20 香坂市3丁目  054-227-1468
0002  大塚高次 オツカタカツグ  19 笛川市2丁目  055-235-7789
0003  長谷部仁 ハセベジン  21 北斗市1丁目   0541-156-7785
0004  葛西隆行 カサイタカユキ  20 東百合菜    0556-554-6635
0005  高木修  タカギオサム  19 南高津5丁目   028-557-6682
0006  丹沢紀夫 タンザワノリオ  20 神橋田原    0784-189-6774
0007  北沢国正 キタザワクニマサ 20 大俵2丁目    0783-1152-4658
0008  新谷幸雄 シンタニユキオ  21 八代東野    0657-1215-6353

この↑のデータと 1、番号 2、氏名 3、住所 4、電話番号 5、年齢順 0、終了 
といった感じに画面上に常に出し続けて各KEYを押すとソートされるという風にやりたいのです・・・。

この仕方がわかりません;;

491 :デフォルトの名無しさん:2007/02/20(火) 00:09:21
そのデータを構造体にして線形リストにすればいいの?

492 :デフォルトの名無しさん:2007/02/20(火) 00:25:04
おーい>>484
アンダースコアで始まる識別子は規格で予約されてるから使っちゃダメだぞ

493 :デフォルトの名無しさん:2007/02/20(火) 00:30:18
よろしくお願いします。
[1] 授業単元: C言語演習1
[2] 問題文:
1個のfloat型のデータを、小数点を境に2つにわけよ。
分けた値は、それぞれfloat型の変数に格納せよ。
[3] 環境 : VC 6.0
 [3.1] OS: WindowsXP
 [3.2]言語:C
 [4]期限:2月21日 14時

494 :デフォルトの名無しさん:2007/02/20(火) 00:33:09
>>493
そんなのも出来ずにC言語の授業を受けるんでつか?(・∀・)ニヤニヤ

495 :デフォルトの名無しさん:2007/02/20(火) 00:39:43
float f, f1, f2;

f1 = (int) f;
f2 = f - f1;
printf("%f = %f + %f\n", f, f1, f2);


496 :493:2007/02/20(火) 00:42:29
あ、縛りを忘れてました。キャスト禁止でした。改めて再掲しまつ。


[1] 授業単元: C言語演習1
[2] 問題文:
1個のfloat型のデータを、小数点を境に2つにわけよ。
分けた値は、それぞれfloat型の変数に格納せよ。
[3] 環境 : VC 6.0
 [3.1] OS: WindowsXP
 [3.2]言語:C
 [4]期限:2月21日 14時
[5]キャスト禁止

497 :480:2007/02/20(火) 00:43:29
>>491
遅くなって申し訳ないです;; そゆ事です。

498 :デフォルトの名無しさん:2007/02/20(火) 00:54:26
float f, f1, f2;
int i;

// 負数無視
for (i=0; f>=1.0; i++) {
f -= 1.0;
}
f1 = (float) i;
f2 = f;
printf("%f = %f + %f\n", f, f1, f2);


499 :デフォルトの名無しさん:2007/02/20(火) 01:01:15
どなたかお願いします
フローチャートは面倒くさかったら省いてもらって構いません

[1] 授業単元: 情報処理
[2] 問題文:
配布データ、kadai3.datを使用して以下のプログラムを作成し、フローチャートを書け
kadai3.datの中には学生番号、英語、数学、理科のデータが入っている。
また、データの改造は行わないこと。
kadai3.dat:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3668.lzh

各自の3科目の合計点を求めよ。
英語、数学、理科、及び3科目合計について、最高点と最低点を求めよ。
各自の学生番号、英語、数学、理科、3科目合計及び合否判定(合格不合格)を学生番号順に表示せよ。
合否判定は3科目すべての点が60点以上を合格の基準とする。合計点が180点以上でも60点未満の科目があれば不合格とせよ。
各自の学生番号、英語、数学、理科、3科目合計を合計点の大きい順に表示せよ。
ファイル名は
入力ファイル kadai3.dat
出力ファイル h23-o.dat
ソースファイル h23.cpp
フローチャート h23.doc

[3] 環境 :Microsoft Visual Studio 2003
[3.1] OS: WindowsXP
[3.2]言語:C++
[4]期限:2月22日 10時


500 :デフォルトの名無しさん:2007/02/20(火) 01:11:19
>>496
いやさ、標準関数も調べられない奴は氏ぬべきだと思うよ

#include <math.h>
float f, f1, f2;
f1 = modff(f, &f2);

501 :デフォルトの名無しさん:2007/02/20(火) 01:12:30
>>497
ホントに線形リストの意味分かって言ってんの?

502 :デフォルトの名無しさん:2007/02/20(火) 11:43:34
>>484
ソート方法がバブルソートじゃない
終了は 6 じゃなくて 0
構造体のコピーは無理にstrcpy使わずそのまま代入
構造体の配列サイズをギリギリにするくらいならメンバを全てポインタにしては?

503 :デフォルトの名無しさん:2007/02/20(火) 13:13:17
どうせなら自己参照的構造体使って先生を脅かしてやれw

504 :デフォルトの名無しさん:2007/02/20(火) 13:13:33
>>491 線形リスト版つくた。 鼻から悪魔でるかもしれん
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3671.c

505 :484:2007/02/20(火) 16:06:28
>>492 >>502
了解。
指摘ありがとう。

506 :デフォルトの名無しさん:2007/02/20(火) 23:12:46
すいません 解答をお願いしますm(_ _)m

次のプログラムを実行した時 printf関数によって出力される値を 解答群ア〜オから選べ すべてint型
@
for(sum=1,i=1;i<10;i++)
sum += i;
printf("%d\n",sum);
ア44 イ45 ウ46 エ55 オ56

A
for(i=1,j=10;i<j;i++,j--)
printf("%d\n",i);
ア1 イ4 ウ5 エ6 オ11
B
for(i=1,sum=0;i<10;i++)
sum += i%5;
printf("%d\n",sum);
ア20 イ25 ウ30 エ45 オ55

C〜Eの続きは次に書きます

507 :デフォルトの名無しさん:2007/02/20(火) 23:14:03
続き
C
for(i=1,sum=0;i<20;i++)
if(i>5)
   sum++;
  else
   sum--;
printf("%d\n",sum);
ア9 イ10 ウ12 エ15 オ16
D
for(i=16,sum=0;i;)
sum += (i/=2);
printf("%d\n",sum);
ア4 イ5 ウ15 エ16 オ31
E
for(i=10,j=5,sum=0;i>0 && j>0;i--,j-=2)
sum += i;
printf("%d\n",sum);
ア12 イ27 ウ34 エ45 オ55

以上@〜E 解答はどうなるでしょうか?
携帯からくだらない質問ですいませんm(_ _)m

508 :デフォルトの名無しさん:2007/02/20(火) 23:15:06
>>506
自分でやってみれば?

509 :デフォルトの名無しさん:2007/02/20(火) 23:16:22
>>506
正解は全部ア、答えてやったからもうくるな

510 :デフォルトの名無しさん:2007/02/20(火) 23:53:06
ほんとくだらない問題ですいません..m(_ _)m
できれば こんな馬鹿な自分に正確な解答をお願いしますm(_ _)m
自分の解答は @から ウエアアエオ
なんですが どうでしょうか...

511 :デフォルトの名無しさん:2007/02/21(水) 00:19:58
携帯でプログラム打ち込む暇があったらコンパイルして実行した方が早いと思うんだが

512 :デフォルトの名無しさん:2007/02/21(水) 00:31:35
>>510
問題が正確じゃないから答えようが無い。

513 :デフォルトの名無しさん:2007/02/21(水) 00:39:06
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
プログラム仕様書
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3672.txt
課題で使用する英文
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3673.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2月24日
[5] その他の制限:

よろしくお願いします

514 :デフォルトの名無しさん:2007/02/21(水) 00:44:06
>510 どなたかお願いします!!
解答を

515 :デフォルトの名無しさん:2007/02/21(水) 00:49:23
>>514
正答率 66.6%

516 :デフォルトの名無しさん:2007/02/21(水) 00:49:43
>>514
お願いだから>>512を無視しないでね
あと携帯だから読んでないと思うけど>>2に催促禁止って書いてあるから

517 :499:2007/02/21(水) 01:01:02
>>500
自宅の環境だと、modffだとコンパイルエラーになる・・・
long型のmodfやmodflだとエラーにならないのに、modffだけエラーになる・・・何故に・・・


518 :デフォルトの名無しさん:2007/02/21(水) 01:06:57
4問正解という事でしょうか?
66.6%

519 :デフォルトの名無しさん:2007/02/21(水) 01:08:55
>>518
もう黙ったほうがお前の為だ。

520 :デフォルトの名無しさん:2007/02/21(水) 01:13:38
>>518
お願いだからセミコロンひとつ抜けてもプログラムの動作が変わってしまうってことを理解してくれ
そして書き込んだ問題と本当の問題を見比べて間違いがないかどうかチェックしてくれ

521 :デフォルトの名無しさん:2007/02/21(水) 01:23:16
プログラム確認しましたが 間違いはありませんでした..
2問 どこを間違えたんだろう...

522 :デフォルトの名無しさん:2007/02/21(水) 01:24:56
プログラム間違えてないなら3問間違ってるぞ

523 :デフォルトの名無しさん:2007/02/21(水) 01:25:03
あんたの確認だよ

524 :デフォルトの名無しさん:2007/02/21(水) 01:29:13
そうですか...
それぞれ答え分かりますかね
教えてもらえるとありがたいんですが

525 :デフォルトの名無しさん:2007/02/21(水) 01:38:18
だから自分でプログラムを組んで結果を見りゃ良いだろw

526 :デフォルトの名無しさん:2007/02/21(水) 01:57:42
>>513
あー間違えてハッシュテーブルで書いてた。
修正めんどくせえ

527 :499 なんですけど…:2007/02/21(水) 03:42:09
あの、自分499で質問した者なんですけど
>>517さんが何故か499を名乗って別の問題の件について書いてたので
閲覧者の方に「質問を破棄した」と思われる可能性があったので書き込みました

トリップつけなかった自分が悪いんですが、>>517さんも何かのミスだと思うので確認してみて下さい
では、スレ汚しすいませんでした


528 :デフォルトの名無しさん:2007/02/21(水) 03:48:35
>>527
>>517>>493が間違えて名乗っただけだろ
誰も勘違いしてないから安心しろ

529 :デフォルトの名無しさん:2007/02/21(水) 09:31:20
>>517
環境は VC6 じゃない?
math.h 覗いてみたけど、C++ なら inline で modff() 実装されて、
C だと、_M_ALPHA か _M_MRX000 環境のみ modff() が居るみたいね。

# C99 からなのか? modff() 要求されるの

530 :デフォルトの名無しさん:2007/02/21(水) 12:33:40
[1] 授業単元: プログラミング技術
[2] 問題文(含コード&リンク):番号(1桁の整数値),氏名(半角英字20文字以内)
血液型を一組とした構造体配列(要素数2人分)を用意する。
キーボードから二人分のデータを入力し、構造体配列へ格納後表示。
また表示部分のみ服関数で行うこと。

表示例
No NAME BloodType
1 kawai takasi A
2 T.imai B

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: [無期限]
[5] その他の制限: 構造体配列、関数、ポインタを用いること
よろしくお願いします。

531 :デフォルトの名無しさん:2007/02/21(水) 14:38:27
服関数ってなに?

532 :デフォルトの名無しさん:2007/02/21(水) 14:39:00
股関節のことじゃね?

533 :デフォルトの名無しさん:2007/02/21(水) 14:47:25
服関数→副関数→サブルーチン
か???

534 :デフォルトの名無しさん:2007/02/21(水) 16:21:21
>>529
うむ。modff, modflはC99から標準

535 :デフォルトの名無しさん:2007/02/21(水) 18:34:04
[1] 授業単元: ゲーム製作を通してのC言語の習得
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3674.txt
[3] 環境
 [3.1] OS: Windows 
 [3.3] 言語: C
[4] 期限: 2月23日 8時
宜しくお願いします。

536 :デフォルトの名無しさん:2007/02/21(水) 18:45:49
>>535
[3.2]は?
その他の制限は?

537 :デフォルトの名無しさん:2007/02/21(水) 18:58:17
>>535
gb.h
とか
gotoxy()
って何?

538 :デフォルトの名無しさん:2007/02/21(水) 19:24:13
[3.2] コンパイラ名とバージョン: GBDK ゲームボーイ用のクロスアセンブラとCコンパイラ
[5] その他の制限: 関数辺りまで習っています。

gotoxy() はその座標に表示させるという感じの役割で
gb.hはゲームボーイ用のファイルです。
恐らく、、



539 :デフォルトの名無しさん:2007/02/21(水) 20:36:48
>>535
gb.hを提供してくれなきゃ解けないわけだが

540 :535:2007/02/21(水) 21:25:46
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3675.txt

すいません、お願いします。

541 :デフォルトの名無しさん:2007/02/21(水) 21:33:06
面倒くさいにもほどがあるなw

542 :デフォルトの名無しさん:2007/02/21(水) 21:37:12
#include <gb/hardware.h>
#include <gb/sgb.h>
#include <gb/cgb.h>

……
無限ループになりそうだからやめとく。

543 :デフォルトの名無しさん:2007/02/21(水) 21:40:18

gb.hだけじゃ足りねえし


544 :デフォルトの名無しさん:2007/02/21(水) 21:42:41
関数の説明ないと無理だな
てか、それむか〜し見たことあるけど本見ながらじゃないとわからんと思うよ

545 :デフォルトの名無しさん:2007/02/21(水) 21:50:15
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3676.txt

546 :デフォルトの名無しさん:2007/02/21(水) 21:55:03
問1.
delay(70)の上か下に、
if((dir_x>0&&ball_x==19)||(dir_x<0&&ball_x==0) dir_x*=-1;
if((dir_y>0&&ball_y==17)||(dir_y<0&&ball_y==0)) dir_y*=-1;.
を追加


547 :デフォルトの名無しさん:2007/02/21(水) 22:13:39
>>499
C++の練習としてやってみた。

ファイルに何を出力するのか分からなかったので合計点の順位を出力しました。

クラスを使用したのでファイルを分けました。
どうしても一つにまとめたいのであればそちらでお願いします。

フローチャートは作成していません。
コメントを記入してあるので読めば分かるかと。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3677.zip

548 :デフォルトの名無しさん:2007/02/21(水) 22:59:22
[1] 授業単元:アルゴリズムとデータ構造
[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3678.txt
[3] 環境:筆記です。擬似コードが多いので言語の制限は特にありません。
[4] 期限:無期限

よろしくお願いします。

549 :デフォルトの名無しさん:2007/02/22(木) 00:29:09
無期限なのか3日以内なのかどっちかはっきりしようや

550 :デフォルトの名無しさん:2007/02/22(木) 00:40:40
>>548
どこがC/C++の宿題なのかと小一時間問い詰めたい

551 :548:2007/02/22(木) 00:53:54
どこで質問したらいいですか?期限はなしです。

552 :499:2007/02/22(木) 01:25:42
>>547さん
ありがとうございます、参考にさせていただきます
午後からずっと挑戦してたんですが先ほど何とか完成しました  まだフローチャートが残ってるんですが;
>>547さんのと比べると明らかに遠回りしる気がしますが、一応自分のもUPしておきます
多分何の参考にもならないと思います

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3680.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3668.lzh

553 :デフォルトの名無しさん:2007/02/22(木) 12:26:04
>>548
同じ大学くせえええええええ

554 :デフォルトの名無しさん:2007/02/22(木) 12:27:29
高学歴と言えるような大学くせぇぇぇぇぇ〜〜〜〜

555 :デフォルトの名無しさん:2007/02/22(木) 12:54:56
灯台だな

556 :デフォルトの名無しさん:2007/02/22(木) 13:06:35
灯台でもおちこぼれはいるってことか

557 :デフォルトの名無しさん:2007/02/22(木) 13:06:47
俺も国立T大学でつよ。
近くに砂丘があるんですけどね…

558 :デフォルトの名無しさん:2007/02/22(木) 13:11:10
もしや農学部はマシだが工学系はボンクラ揃いの鳥取?

559 :デフォルトの名無しさん:2007/02/22(木) 13:23:49
その程度のレベルしか居ないよこのスレには、質問内容で分かる

560 :デフォルトの名無しさん:2007/02/22(木) 14:57:20
君らは国公立大学を舐めていないか?

561 :デフォルトの名無しさん:2007/02/22(木) 15:08:50
俺は専門学校だけど感官同率や知能の国立なんかよりC言語が上手いと自信を持って言える。

562 :デフォルトの名無しさん:2007/02/22(木) 15:10:51
知能× 地方○
感官同率× 関関同立○

563 :デフォルトの名無しさん:2007/02/22(木) 15:11:21
あとマーチよりも上かなw

564 :デフォルトの名無しさん:2007/02/22(木) 15:19:24
プログラム技術のレベルを言語ベースに考えてる時点でうんk

565 :デフォルトの名無しさん:2007/02/22(木) 15:29:58
即戦力が専門学校の取り柄なのに、プログラムを大学生に負けてどうするw

566 :デフォルトの名無しさん:2007/02/22(木) 15:34:11
課題をまる投げにしてる時点で、大学関係なく、ぬるぽ。
まあ、おかげで暇つぶしができるのだが。

567 :デフォルトの名無しさん:2007/02/22(木) 15:46:33
アルゴリズムは専門に負けないようがんばれ大学生 ガッ

568 :デフォルトの名無しさん:2007/02/22(木) 15:54:16
なんでそんな宿題が課せられているのかも分かっていないまま
学業を終えて、いざ社会に出てみると・・・そういうことだったのかと気づく。
なんてちっぽけな課題だったんだ、そんなものも出来なきゃ通用しない罠
って言える日が来るさ。だから自力でやっとけ、ってここで言うのはお門違いだがw

569 :デフォルトの名無しさん:2007/02/22(木) 15:59:35
そう思うなら書くなよ…

570 :デフォルトの名無しさん:2007/02/22(木) 16:06:31
いや、まぁ、書いてから気づくのもお門(ry

571 :デフォルトの名無しさん:2007/02/22(木) 16:36:24
>>530
#include<stdio.h>
#include<stdlib.h>
typedef struct{
int no;
char name[20+1];
}Data;

void PrintData(Data data[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%d\t%s\n",data[i].no,data[i].name);
}

int main()
{
Data data[2];
int i;
char no_buf[2];
for(i=0;i<2;i++){
printf("%d人目の番号:",i+1);
fgets(no_buf,2,stdin);
data[i].no=atoi(no_buf);
fflush(stdin);
printf("%d人目の氏名:",i+1);
fgets(data[i].name,20+1,stdin);
fflush(stdin);
}
PrintData(data,2);
return 0;
}

572 :デフォルトの名無しさん:2007/02/22(木) 18:04:46
しかし見事ななげっぷり

573 :デフォルトの名無しさん:2007/02/22(木) 19:06:28
[1]授業単元:C言語
[2]問題文:
1.構造体を使ったアドレス帳プログラムをを作成しなさい、下記の仕様を満たすこと。
・「名前」(全角10文字以内)
・「読み(ローマ字)」(半角30文字以内)
・「メールアドレス」(半角30文字以内)
・「電話番号」(半角13文字以内)
2.データの保存、読み込みが出来るように改造しなさい(できるだけ以下の機能を追加すること)
・名前を入力して該当するデータを表示する機能(検索機能)を追加しなさい
・読みのデータが入力されたとき、名字と名前の先頭を大文字に、その他を小文字に変換して保存するように改造しなさい
・データ一覧表示を読みのアルファベット順に表示するように改造しなさい
・文字を入力して、その文字を含むメールアドレスのデータの一覧を表示する機能を追加しなさい
3.メモリーを動的に確保して、メモリーが許す限りのデータを保存できるように改造しなさい
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2007/3/2

よろしくお願いします。

574 :デフォルトの名無しさん:2007/02/22(木) 19:14:47
[1] 授業単元:プログラム演習(複雑な計算その3)
[2] 問題文(含コード&リンク):
多項式の計算と()カッコの計算が可能なdentaku3.cを作成しなさい

実行例
1+2-3*4/5 エンター
0.600000

[3] 環境 Windows Xp SP2
[3.2] コンパイラ: Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
[3.3] 言語:C
[4] 期限:[2007年03月01日06:00まで]
[5]特に指定はありません

最終的には関数電卓を作るらしいです。先が思いやられる orz
よろしくお願いします。

575 :デフォルトの名無しさん:2007/02/22(木) 19:31:21
>>574
ほい。
#include<stdio.h>
#include<stdlib.h>
char buf[100],*src=buf;
double atm(void);
double mul(double r){return*src=='*'?++src,mul(r*atm()):*src=='/'?++src,mul(r/atm()):r;}
double add(double r){return*src=='+'?++src,add(r+mul(atm())):*src=='-'?++src,add(r-mul(atm())):r;}
double atm(void){
    double r;
    while(isspace(*src))++src;
    if(*src == '(')++src,r = add(mul(atm())),++src;
    else r = strtod(src,&src);
    while(isspace(*src))++src;
    return r;
}
int main(){gets(src);printf("%f\n",add(mul(atm())));}


576 :574:2007/02/22(木) 19:43:54
>>575
速い; ありがとうございます
自分よりかなりオーバースペックなソースなので理解と学習に勤めます

577 :デフォルトの名無しさん:2007/02/22(木) 19:47:05
>>576
3項演算子使いまくりだし>>575はわざと難読化させてる感じ。
こんなソース書いちゃダメだよ。

578 :デフォルトの名無しさん:2007/02/22(木) 20:00:39
>>577
とてもそうは見えないんだが。
この手のコードを簡潔に書くには参考演算子は必要不可欠だと思う。

579 :デフォルトの名無しさん:2007/02/22(木) 20:00:45
>>573
その問題ちょっと前に見たな

580 :デフォルトの名無しさん:2007/02/22(木) 20:04:51
本物のプログラマは if を使わない

581 :デフォルトの名無しさん:2007/02/22(木) 20:06:52
>>579
期限延びました

582 :デフォルトの名無しさん:2007/02/22(木) 20:09:06
>>575
getsはダメだろ、常識的に考えて

583 :デフォルトの名無しさん:2007/02/22(木) 20:19:24
>>580
何で?

584 :デフォルトの名無しさん:2007/02/22(木) 20:20:46
正直、fgets(buf,sizeof(buf),stdin)とかscanf("%99[^\n]%*c",buf)とか書くのが面倒だった。

ま、こんなお遊び程度のおちゃらけプログラムならgetsでいいかなーと。
採点するやつがわざわざセキュリティホール突こうとかしねーだろーし。

585 :デフォルトの名無しさん:2007/02/22(木) 20:26:34
>>583
本物のプログラマは理由を問いただしたりしない。オツムの弱い奴らのやることなのだ。

586 :デフォルトの名無しさん:2007/02/22(木) 20:31:30
>>585
本物じゃないので自分は.
今後の参考のために知りたいの

587 :デフォルトの名無しさん:2007/02/22(木) 20:40:17
本物のプログラマのジョークを知らんわけではあるまい。

588 :デフォルトの名無しさん:2007/02/22(木) 20:44:00
>>582
そりゃまぁ、ダンディ坂野は消えていったしな・・・

589 :デフォルトの名無しさん:2007/02/22(木) 20:46:02
>>585 >>580 < こいつ何なんだ?何を使うか言わずに勝手なことを言い出す奴っているよな。
つまらない制約の中で何かを達成して自己満足している視野の狭い奴w

590 :デフォルトの名無しさん:2007/02/22(木) 20:47:28
つーか「本物のプログラマは〜」とか言ってる奴は多分今更
ttp://www.genpaku.org/realprogrammerj.html
のネタを知って遊んでるだけだからスルーしろ。

591 :デフォルトの名無しさん:2007/02/22(木) 20:48:25
>>587
じょうーだんだったのか
>>589
え〜とじゃあ別に if を使わないわけじゃないよね
ちょいと本気で考えた

592 :デフォルトの名無しさん:2007/02/22(木) 20:49:43
んでも、>>575程度の条件演算子の使い方は普通じゃないかね?





七行スレ住人としての意見だけど。

593 :デフォルトの名無しさん:2007/02/23(金) 00:04:00
お願いします。
[1]授業単元:プログラミング演習
[2]問題文:配列を応用した神経衰弱ゲームの作成
[3]:環境
[3.1]OS:WindowsXP
[3.2]コンパイラ名とバージョン:Cpad for Borland C++Compiler ver 2.31
1998-2001
[3.3]言語:C言語
[4]期限:2007年2月23日
[5]制限:グラフィックスは使用しない
配列を応用する

期限ギリギリですみません…
お願いしますorz

594 :デフォルトの名無しさん:2007/02/23(金) 00:33:32
>>593
今日中かよw
AIとか搭載したりするの?

595 :デフォルトの名無しさん:2007/02/23(金) 00:40:42
[1]授業単元:プログラミング練習
[2]問題文
http://www.uploda.net/cgi/uploader4/index.php?dlpas_id=0000010274.txt
開くPW は c です。
[3]:環境 練習問題なので不明
[3.1]OS:WindowsXP?
[3.2]コンパイラ名とバージョン:特になし
[3.3]言語:C言語
[4]期限:2007年2月23日朝9時までですができるだけ早くお願いします・・・
切羽詰まってます_| ̄|○
[5]制限:特にないです

何とぞよろしくお願いします_| ̄|○

596 :593:2007/02/23(金) 00:48:53
AI搭載ではないです^^

進級がかかってるとかいないとかw

…orz

ちなみにカキコ携帯でしかできませんw
規制のせいでパソはヲチ専用です(゚Д゚;)


597 :デフォルトの名無しさん:2007/02/23(金) 00:52:14
>>596
笑っていられるようじゃ余裕だな

598 :デフォルトの名無しさん:2007/02/23(金) 02:25:56
>>593
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3681.c
AIってどういうものかわからんかったけど、過去に開いた分は憶えるようにした。

599 :デフォルトの名無しさん:2007/02/23(金) 02:30:51
>>595
 それぐらいやれよ。

 まあやってあげるから30分くらいまってろ。

600 :デフォルトの名無しさん:2007/02/23(金) 02:31:00
>595
問題文は正確に写してね

601 :デフォルトの名無しさん:2007/02/23(金) 02:47:20
>>598
ちょ AI強くね?w

602 :596:2007/02/23(金) 02:59:52
>>593


ありがとうございます!

でもすいません
一人用でした^^;

もしよろしければお願いしますorz

603 :デフォルトの名無しさん:2007/02/23(金) 03:14:42
>>602
死んでくれ^^;

604 :デフォルトの名無しさん:2007/02/23(金) 03:41:56
>>573
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3682.zip

605 :デフォルトの名無しさん:2007/02/23(金) 03:44:49
>>588
おれは好きだぜ

606 :デフォルトの名無しさん:2007/02/23(金) 04:00:29
>>604
本当にありがとうございます

607 :デフォルトの名無しさん:2007/02/23(金) 04:06:31
>>595
開けない気がするかもしれないと思わないこともある

608 :595:2007/02/23(金) 09:32:05
問題文はそっくりそのまま写したんですが・・・

609 :595:2007/02/23(金) 09:34:22
ttp://www.uploda.net/cgi/uploader4/index.php?file_id=0000010283.txt
再度UPしました 後1時間くらいしか時間ないですがよろしくお願いします_| ̄|○

610 :デフォルトの名無しさん:2007/02/23(金) 10:04:35
>>609
#include <stdio.h>

void main(){
int nisu,month;
int mdays[]={31,28,31,30,31,30,31,31,30,31,30,31};

struct data{
int day;
int month;
}today,atday;

printf("今日の日付を入力:月/日");
scanf("%d/%d",&today.month,&today.day);
printf("日数を入力");
scanf("%d",&nisu);

atday=today; /* today を atday に代入*/
atday.day+=nisu;
while(atday.day>mdays[atday.month-1]){
atday.day-=mdays[atday.month-1];
atday.month++;
}
printf("%d/%dから%d日後は",today.month,today.day,nisu);
printf("%d/%dです。\n",atday.month,atday.day);
}



611 :デフォルトの名無しさん:2007/02/23(金) 10:04:44
#include <stdio.h>
void main(){
typedef struct{
int year;
int month;
int day;
}DATE;
struct parson{
char name[50];
DATE bday; /*誕生日*/
}man={"yamada tarou",1987,1,1};
DATE today; /*今日*/
int nen,urusu=0;
printf("今日の日付を入力:");
scanf("%d/%d/%d",&today.year,&today.month,&today.day);
for(nen=man.bday.year;nen<=today.year;nen++)
urusu+=(!(nen%4)&&nen%100||!(nen%400)) ? 1 : 0;
printf("%s が誕生した年から今年までうるう年は",man.name);
printf("%d回ありました。\n",urusu);
}



612 :595:2007/02/23(金) 10:46:36
>>610,611
Thanks そろそろ試験なので出かけます 

613 :595:2007/02/23(金) 12:13:53
試験の時間間違えた…
1時からでした_| ̄|○
3 4問目わかる方ご教授願います。

614 :デフォルトの名無しさん:2007/02/23(金) 12:18:33
_| ̄|○の使いすぎでウザイのでパス_| ̄|○_| ̄|○

615 :デフォルトの名無しさん:2007/02/23(金) 12:27:20
試験の時間間違えるわ、宿題やらないわ、もう生活そのものがぼろぼろだな
より良い場所に就職するつもりでなく、学生でいられる時間を長くして遊びたいって考えだと
後々の人生ぼろぼろになるぞ。試験に落ちてやり直した方がマシ。
それから宿題のソース、おかしい。仮に推測して穴埋めしてもコンパイル不可能。

616 :デフォルトの名無しさん:2007/02/23(金) 12:59:21
>610
>atday.month++;

617 :デフォルトの名無しさん:2007/02/23(金) 13:20:28
っつか、西暦1年1月1日が月曜だと分かっているからといって
日数の合計から曜日を求める課題もどうかと・・・さらっと流して
もっと効率の良い手段を選べばええやん。

618 :デフォルトの名無しさん:2007/02/23(金) 14:05:45
[1] 授業単元:プログラミング言語演習2
[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3683.txt
[3] 環境
 [3.1] OS: linux(fedoracore2)
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2月26日まで
5つの中から3つお願いします。

619 :デフォルトの名無しさん:2007/02/23(金) 14:52:37
>>618
main2, main4, main5のうち一つを必要に応じてmainに改名して使ってくれ。
それから、入力が正しいことを前提にしている。
# include <stdio.h>
int ask(const char *prompt) {
  int r = 0;
  char buf[100];
  printf("%s >> ", prompt);
  fflush(stdout);
  fgets(buf, sizeof buf, stdin);
  sscanf(buf, "%d", &r);
  return r;
}
int main2(void) {
  int a = ask("いくら");
  int tax = a / 21;
  printf("%d = %d(定価) + %d(税)\n", a, a - tax, tax);
  return 0;
}
int main4(void) {
  int day = ask("何日  ");
  int hour = ask("何時間");
  int minute = ask("何分  ");
  int second = ask("何秒  ");
  printf("%d日%d時間%d分%d秒: %d秒\n", day, hour, minute, second, (((day * 24) + hour) * 60 + minute) * 60 + second);
  return 0;
}
int main5(void) {
  int year = ask("西暦何年");
  printf("%s年\n", year % 4 == 0 && !(year % 100 == 0 && !(year % 400 == 0)) ? "閏" : "平");
  return 0;
}

620 :デフォルトの名無しさん:2007/02/23(金) 14:55:42
>>618
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3688.txt
実行結果例と同じにはなる。でもそのまま出して怒られてもシラネ

621 :デフォルトの名無しさん:2007/02/23(金) 14:59:52
プログラム歴一ヶ月の俺が閏年判定だけ。

#include <stdio.h>
int main(void){
int year;

printf("西暦何年");
scanf("%d",&year);

if((year%4==0) && (year%100==0) && (year%400==0))
printf("閏年");
else
printf("平年");

}

622 :デフォルトの名無しさん:2007/02/23(金) 15:02:07
プログラム歴一ヶ月の俺が閏年判定だけ。

#include <stdio.h>
int main(void){
int year;

printf("西暦何年");
scanf("%d",&year);

if((year%4==0) && (year%100==0) && (year%400==0))
printf("閏年");
else
printf("平年");

}

623 :デフォルトの名無しさん:2007/02/23(金) 15:04:27
一ヶ月で他人の宿題に手をだすのは早すぎたようだな。

624 :621:2007/02/23(金) 15:06:16
連投すまそ。

>>623
勉強がてらちょっとやってみたんだけど、どっか間違ってる?

625 :デフォルトの名無しさん:2007/02/23(金) 15:09:40
>>624
それだと例えば1996年が閏年にならない。

626 :621:2007/02/23(金) 15:14:55
>>625
本当だ・・・。でしゃばってスマソ・・・

627 :デフォルトの名無しさん:2007/02/23(金) 15:23:12
ど、どんまい

628 :デフォルトの名無しさん:2007/02/23(金) 16:33:00
>>622
> if((year%4==0) && (year%100==0) && (year%400==0))
&&だけ?やっちまったな!括弧をつける部分も不適切やし
今後C言語を続けるならとりあえずちゃんと勉強してガンガレ!

629 :デフォルトの名無しさん:2007/02/23(金) 16:34:50
#include <stdio.h>
int main(){
int year;

printf("西暦何年");
scanf("%d",&year);

if(!(year%400) || (!(year%4)&&year%100){
printf("閏年");
return;
}
printf("平年");
}

>>628
なんでそんな意気揚々なんだよw

630 :デフォルトの名無しさん:2007/02/23(金) 16:37:25
629 名前:デフォルトの名無しさん 投稿日:2007/02/23(金) 16:34:50
>>628
なんでそんな意気揚々なんだよw
>>628
なんでそんな意気揚々なんだよw
>>628
なんでそんな意気揚々なんだよw
>>628
なんでそんな意気揚々なんだよw
>>628
なんでそんな意気揚々なんだよw


631 :デフォルトの名無しさん:2007/02/23(金) 16:38:35
>>629
コンパイルしてから出せよバカ、お調子者こそコケ易いってのがわかりやすいなw
悪いが俺はそんなヘマはしないぞw

632 :デフォルトの名無しさん:2007/02/23(金) 16:44:00
>>629
カッコが一つ足りないな。

>>631
なんでそんな意気揚々なんだよw


633 :デフォルトの名無しさん:2007/02/23(金) 16:45:17
>>632
意気揚々で調子ぶっこいているのは誰がどう見ても>>629だろw
お前こそ何意気揚々なんだよ?w

634 :デフォルトの名無しさん:2007/02/23(金) 16:46:11
>>632
中学のときの数学の教師がさぁ、いつも括弧が足りないとこう言うのよ
かっこがつかない(=かっこ悪い)ってね。

635 :デフォルトの名無しさん:2007/02/23(金) 16:48:05
>>634
誰が上手いこと言えとry

636 :デフォルトの名無しさん:2007/02/23(金) 16:57:40
[1] 授業単元:C/C++の宿題を片付けます
[2] 問題文:200X と入力すると、世紀末救世主が現れるプログラムを書け
[3] 環境
 [3.1] OS: 核戦争後の荒れた世界
 [3.2] コンパイラ名とバージョン: 北斗神拳
 [3.3] 言語: 北斗神拳
[4] 期限:ユリアがさらわれるまで

637 :デフォルトの名無しさん:2007/02/23(金) 17:18:44
うるう年のプログラムってやらされる人多いの?
俺もその課題がCやり始めた当初あったんだけど

638 :デフォルトの名無しさん:2007/02/23(金) 17:20:50
素数、閏年、最大公約数、ジャンケン、数字当てとかってどこでもやってそうな
ありきたりな課題じゃね?

639 :デフォルトの名無しさん:2007/02/23(金) 17:26:35
>>628
うはっ全部やったわw。やっぱりどこも同じなのか

640 :デフォルトの名無しさん:2007/02/23(金) 17:39:06
トリッキーなコードで教官を悩ませたもんだな

641 :デフォルトの名無しさん:2007/02/23(金) 17:52:30
>>618 一番最初の2進、16進のやつ。
#include <stdio.h>
int d_con(unsigned n, int k) {
char a[32],d[16] = "0123456789ABCDEF";
int i;
if(n==0) {printf("0"); return 0; }
for(i=0; i<32; i++) a[i] = '0';
for(i=0; n!=0; i++,n/=k) a[i] = d[n%k];
for(i--; i>=0; i--) printf("%c",a[i]);
return 0;
}
int main() {
int x;
printf("整数を1つ入力 >> "); scanf("%d",&x);
if(x<0) { printf("負なのでそのまま表示: %d",x); return 0; }
printf("正なので%dを2倍する: ",x); x*=2;
printf("10進: %d",x);
printf(", 16進: "); d_con(x,16);
printf(", 2進: "); d_con(x,2);
return 0;
}

642 :641:2007/02/23(金) 17:54:13
16進数の英文字が小文字になってなかったけど、必要なら
↓の配列の英文字部分を小文字にしといてちょっ
d[16] = "0123456789ABCDEF";

643 :デフォルトの名無しさん:2007/02/23(金) 18:05:30
>>636
なんでそんな意気揚々なんだ
>>637
フィボナッチとか階乗とかその辺はプログラムの授業では
王道じゃないかな。

644 :デフォルトの名無しさん:2007/02/23(金) 18:07:36
>>643 意気揚々ですYO!あ〜いとぅいまてぇ〜ん

645 :デフォルトの名無しさん:2007/02/23(金) 18:37:46
↓こいつ未だにエラトステネスのふるいについて理解していないようです

646 :デフォルトの名無しさん:2007/02/23(金) 19:03:24
俺も授業で閏年やってるんだが、
>>622のコードってどこが間違ってるんだ?
俺には解読不可能だった。

>>629はコンパイル出来なかったし

647 :デフォルトの名無しさん:2007/02/23(金) 19:05:02
>>646
if( (y%4==0 && y%100!=0) || y%400==0 ) これなら
4で割り切れるが100で割り切れない または 400で割り切れるに該当するかと。

648 :デフォルトの名無しさん:2007/02/23(金) 19:10:48
>>646
if((year%4==0) && (year%100==0) && (year%400==0))
を簡単にすると
if(year%400==0)

649 :デフォルトの名無しさん:2007/02/23(金) 19:19:59
誤解しにくいように書いたほうがイイと思うんだが

if(year%400==0) is_uruu=1;
else if(year%100==0) is_uruu=0;
else if(year%4==0) is_uruu=1;
else is_uruu=0;

650 :デフォルトの名無しさん:2007/02/23(金) 19:23:39
>>646
うるう年の判定は
4で割り切れる年はうるう年
4で割り切れても100で割り切れる年はうるう年ではない
if((year%4==0) && (year%100==0) && (year%400==0))
これだと
4で割り切れ、かつ100で割り切れ、かつ400で割り切れるもの となってしまう
つまり>>648だから間違い


651 :646:2007/02/23(金) 19:24:17
>>647-649
おぉ!分かりやすくありがとう!

652 :646:2007/02/23(金) 19:25:13
>>650
ありがとうございます。(・ω・)ノ

653 :デフォルトの名無しさん:2007/02/23(金) 19:25:17
結局400で割り切れるものが該当しちゃう

654 :650:2007/02/23(金) 19:25:24
あっ、100で割り切れても400で割り切れる年はうるう年
っての忘れてたので追加

655 :デフォルトの名無しさん:2007/02/23(金) 19:25:55
言葉であらわされる仕様から、正しく論理関係を導き出すのが重要。

# 論理関係から 仕様をおこすのは比較的簡単か

656 :650:2007/02/23(金) 19:31:20
>>652
ぶちぶちなのでこうしとく

4で割り切れる年はうるう年 ---(1)
(1)であっても100で割り切れる年はうるう年ではない ---(2)
(2)であっても400で割り切れる年はうるう年 ---(3)


657 :デフォルトの名無しさん:2007/02/23(金) 19:37:10
具体的に該当する年の例を出してみては?
400 800 1200 1600 2000 と400年ごと、あと4年で割り切れる4年ごとだけど
↑にあげた以外の400で割れない下2桁が00の年 1100 1500 とかはダメ。って余計わかりづらいか?
ってかもうこの話はやめとくかw

658 :デフォルトの名無しさん:2007/02/23(金) 19:43:36
>>657
経験が浅い自分には、物凄い勢いで勉強になります。

659 :デフォルトの名無しさん:2007/02/23(金) 20:24:32
誰か>>636作ってみてくれww

660 :デフォルトの名無しさん:2007/02/23(金) 20:25:43
言語が分からん

661 :デフォルトの名無しさん:2007/02/23(金) 20:37:33
とりあえずCでいいんじゃね?

662 :デフォルトの名無しさん:2007/02/23(金) 20:39:43
ちゃんと北斗神拳で動かす場所は核戦争後の荒れた世界だぞ?

663 :デフォルトの名無しさん:2007/02/23(金) 20:53:28
>>662
C無理じゃん!

664 :デフォルトの名無しさん:2007/02/23(金) 22:32:47
スレ違いってことだな

665 :デフォルトの名無しさん:2007/02/23(金) 23:27:18
変数dataに格納された2進で表されたデータを10進に変換して
表示するプログラムを教えてください。
よろしくお願いします。
void disp(unsigned short data){

}

666 :デフォルトの名無しさん:2007/02/23(金) 23:49:13
カモン!エスパー。

667 :650:2007/02/23(金) 23:55:31
コンピュータ上ではすべて2進数表現ですから
それを10進に変換しましたよ

void disp(unsigned short data){
printf("%d",data);
}

はいどうぞ

668 :デフォルトの名無しさん:2007/02/24(土) 00:34:40
>>667
それ鼻からなんか出てるよ
printf("%hu",data);

669 :デフォルトの名無しさん:2007/02/24(土) 00:34:50
低レベルな質問で悪いのですが、
プログラムがmain関数だけ(例えばHello Worldと表示のみとか)の場合、

main()
void main()
main(void)
int main(void)

とか色々な書き方がありますが、
どういった感じに使い分けていけばよろしいのでしょうか?

670 :デフォルトの名無しさん:2007/02/24(土) 00:44:54
>>669
int main(){return 0;}
一つだけを使っていけばOK

671 :デフォルトの名無しさん:2007/02/24(土) 00:47:57
俺は
int main(void)派

672 :デフォルトの名無しさん:2007/02/24(土) 00:50:49
>>669
void main() // 動作は未定義
void main(void) // 動作は未定義
main() // int main() に同じ
int main() // 引数の型チェックなし。main(1)のような呼び出しができてしまう
main(void) // int main(void) に同じ
int main(void) // これ推奨

673 :デフォルトの名無しさん:2007/02/24(土) 00:52:51
int main(char *argv[], int argc) 水晶

674 :650:2007/02/24(土) 01:00:02
>>668
unsigned short であるの忘れてたorz

675 :669:2007/02/24(土) 01:00:07
スレ違いなのに、わざわざありがとうございます orz

676 :650:2007/02/24(土) 01:00:53
>>673
int main(int argc, char* argv[])
こっちじゃなかったっけ?

677 :デフォルトの名無しさん:2007/02/24(土) 01:05:39
>>676 うむ。日頃使ってないからどうだったか検索して見つかったものを
コピって書いたんだけど、他を探したらそれだったみたいw

678 :デフォルトの名無しさん:2007/02/24(土) 01:06:15
int main(void);
int main(int, char *[]);
int main(int, char **);

679 :デフォルトの名無しさん:2007/02/24(土) 03:10:55
int main(int argc, char **argv)

680 :デフォルトの名無しさん:2007/02/24(土) 03:56:21
>>679
俺そのスタイルだわ

681 :デフォルトの名無しさん:2007/02/24(土) 04:16:46
漏れは>676だなあ

682 :デフォルトの名無しさん:2007/02/24(土) 07:24:55
動きゃいいんだよ。

683 :デフォルトの名無しさん:2007/02/24(土) 08:07:11
動きゃいいと言っている奴の中には
特定の環境でしか動かないものを作ってくることもあるわけで

684 :デフォルトの名無しさん:2007/02/24(土) 11:09:12
ウリの環境が規格で、まわりが特殊ニダ

685 :デフォルトの名無しさん:2007/02/24(土) 11:35:44
たまには環境変数のことも思い出してあげて下さい
#include<stdio.h>
int main(int argc, char *argv[], char **argp){
int i;
for(i=0;argp[i]!=NULL;i++)
printf("%s\n", argp[i]);
return 0;
}

686 :デフォルトの名無しさん:2007/02/24(土) 13:40:15
それはベンダ拡張だから、一般的には未定義動作。

687 :デフォルトの名無しさん:2007/02/24(土) 18:14:47
上で「動作は未定義」とか出てるけど、
「未定義」だと何か問題があるの?

688 :650:2007/02/24(土) 18:21:02
>>687
何が起きるか分からない

689 :デフォルトの名無しさん:2007/02/24(土) 18:25:38
>>687
何も起きない
  ↑
(未定義動作)
  ↓
プロセスが暴走してPC壊す

690 :デフォルトの名無しさん:2007/02/24(土) 18:41:43
コンパイラを作る人に任せるともいえるし
全てのコンパイラが同じ動作にならなくてもいいとかそういう意味と
マジリアルに何が起きるかわかりませんよイヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒヒ
の区別はないのか

691 :デフォルトの名無しさん:2007/02/24(土) 18:42:29
(未定義動作)
1) 何も起きない
2) プロセスが暴走してPC壊す
3) たまたま普通に動いた
4) エラー吐いて終了


自分の環境でたまたま3というのが最悪



692 :デフォルトの名無しさん:2007/02/24(土) 18:44:31
なるべく仕様書の通り書くのがいいのね。

693 :デフォルトの名無しさん:2007/02/24(土) 18:49:37
>690
>全てのコンパイラが同じ動作にならなくてもいい
全てのコンパイラが同じ動作にならないかもよ
が適切じゃないかと

>>691
たしかにw>


694 :デフォルトの名無しさん:2007/02/24(土) 19:19:44
>>691
未定義動作から
2) プロセスが暴走してPC壊す 
は省くべきだな。
破壊動作と書くべきだ。

695 :デフォルトの名無しさん:2007/02/24(土) 19:34:11
>>694
その理由を1レス以内で述べよ。

696 :513:2007/02/24(土) 20:15:55
513です。今日中に何とかならないでしょうか?

697 :デフォルトの名無しさん:2007/02/24(土) 22:40:17
>>694
「エキスパートCプログラミング」のP43のコラム読んでみな。
未定義動作が昔のモニタを発火させる可能性について
書いてあるから。

698 :デフォルトの名無しさん:2007/02/24(土) 22:54:45
あのさ。

ここ、宿題スレだったんだけど

699 :デフォルトの名無しさん:2007/02/24(土) 22:55:47
過去形にするなよ
いまでも宿題スレだよ

700 :デフォルトの名無しさん:2007/02/24(土) 22:56:51
>>696
俺の能力ではキビシーな

701 :デフォルトの名無しさん:2007/02/24(土) 23:11:24
>>513

702 :デフォルトの名無しさん:2007/02/24(土) 23:11:41
>>698
宿題が来ないんだから別に構わないって。
疎開ってると落ちるし。

703 :デフォルトの名無しさん:2007/02/24(土) 23:17:43
>>696
いまやってるけど、完成までやると日付変わりそうだから
途中だけど、一応うp。
重要単語まわりと最大最小頻度とかは未実装…つかHTML出力はめんどい

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3690.txt

704 :513:2007/02/24(土) 23:21:04
>>703
提出期限が過ぎても一応受け付けてくれるみたいなので、大丈夫だと思います
お手数ですがよろしくお願いします

705 :デフォルトの名無しさん:2007/02/24(土) 23:21:24
>>703
それプラプラ?

706 :703:2007/02/24(土) 23:26:45
>>705
言われて気づいた。プラプラだ

707 :デフォルトの名無しさん:2007/02/24(土) 23:36:32
gcc拡張を使いましたということで

708 :デフォルトの名無しさん:2007/02/24(土) 23:41:51
すごいな作ってんのか。
問題見たけど面倒な機能を実装しなければいけないので俺には無理。
重複単語数数えてHTML作るだけで精一杯。

709 :703:2007/02/24(土) 23:46:15
ファイル名.cに変えたらエラー出まくりで、へこんだ…

>>513
重要単語の判定法は、各自決めろみたいな課題だけど…思いつかないんだけど。

710 :デフォルトの名無しさん:2007/02/24(土) 23:49:06
>>709
たとえば出現率何%以上とかは?

711 :513:2007/02/24(土) 23:51:11
重要単語は、単純に出現頻度で判定していいそうです。他の方法だと加点するという話でした

712 :デフォルトの名無しさん:2007/02/24(土) 23:51:23
冠詞とか主語とか数あっても重要単語に成り得ないとこ省いて考えるくらいかのう
テーブル作るのめどいけど

713 :デフォルトの名無しさん:2007/02/25(日) 01:11:10
あとは行頭にあったらポイントたくさん加算とかどうだろう

714 :703:2007/02/25(日) 02:27:58
>>513
一応出来た。
なんか、計画性なしに書いてたら悲惨なソースになったような気がする。
重要単語は>>710-712を足して割って、一定長さかつ一定以上頻度の単語にしました。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3692.txt

715 :513:2007/02/25(日) 02:41:47
>>714
ありがとうございました!とりあえずコンパイルしてエラーチェックしてみますね
本当にありがとうございました!

716 :デフォルトの名無しさん:2007/02/25(日) 02:58:50
>>715
すまん
>>714にミスがあった… ↓修正済
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3694.txt

717 :デフォルトの名無しさん:2007/02/25(日) 09:22:49
このタイミングで学校に密告した俺はネ申

718 :デフォルトの名無しさん:2007/02/25(日) 12:06:11
神 の使い方を間違っていると思う

719 :デフォルトの名無しさん:2007/02/25(日) 14:33:26
しかし、大掛かりではないにしろ、そこまで注文が多いものになると
多少はお金が欲しいもんだな

720 :デフォルトの名無しさん:2007/02/25(日) 15:03:56
突然すみません。
こういう感じの曲面がつくりたくて
ttp://www.rupan.net/uploader/download/1172382882.jpg
自分でこんな感じのソースをつくってみたんですが
ttp://www.rupan.net/uploader/download/1172383142.txt

うまくコンパイラできなくて困っています
環境はWindows2000で、VisualC++を使用しています
自由曲面を製作する課題なので特に条件はありません


期限は今日明日中に提出しなければならない課題で、完成形の画像などを載せてくれると嬉しいです

コンパイルに必要と思われるヘッダファイル
ttp://www.rupan.net/uploader/download/1172382980.zip



721 :デフォルトの名無しさん:2007/02/25(日) 15:25:58
なんか見たことあるな

722 :デフォルトの名無しさん:2007/02/25(日) 16:21:06
俺も見たことあるなと思ったら、
ライブラリが「はじめてのアルゴリズム入門」のグラフィックライブラリ…

723 :デフォルトの名無しさん:2007/02/25(日) 18:05:23
>>513
作ってみようと思ったんだけど
>単語数の確認はUNIX コマンドのwc を利用する.
これの意味がわからないんだけど
どういう意味かしら?


724 :デフォルトの名無しさん:2007/02/25(日) 18:08:24
http://www.linux.or.jp/JM/html/GNU_textutils/man1/wc.1.html

725 :デフォルトの名無しさん:2007/02/25(日) 18:32:05
[1] 授業単元: 救済レポート
[2] 問題文(含コード&リンク):
そのプログラムのソースコードを出力するプログラムを書け。
ただし、実行形式ファイルそれ自体で動作すること。
[3] 環境
 [3.1] OS: (Windows/Linux/等々) 特になし
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gccかcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: 2007/03/05
[5] その他の制限:
C言語自体は多分大丈夫です。

追試も点が足りず、教授にお願いに行くと
このレポートができれば単位がくれるとのことでした。
本試も追試も体調不良だった私に救いの手をお願いします。

教授はこれができるならやってもいいよって感じだったので
かなり難しいと思います。私自身考えに考えたのですが
どうしてもうまくいきません。
どなたかお願いできないでしょうか。

726 :デフォルトの名無しさん:2007/02/25(日) 18:33:25
>>725
>このレポートができれば単位がくれる
それすら他人任せで単位を取ろうとするのはおかしい、ってここで言うのもおかしいが
無理だろ。その最後のチャンスの蜘蛛の糸も他人に引っ張ってもらうつもりかw

727 :デフォルトの名無しさん:2007/02/25(日) 18:36:32
>>725
> そのプログラムのソースコードを出力するプログラムを書け。
> ただし、実行形式ファイルそれ自体で動作すること。
意味がわからん。現在実行しているプログラムのソースコードを逆コンパイルして
ソースを推測しろってかぁ?

728 :デフォルトの名無しさん:2007/02/25(日) 18:41:56
cで自己出力かw

教授、嫌がらせだろw

729 :デフォルトの名無しさん:2007/02/25(日) 18:44:31
Quineなら探せば幾らでもあるだろ

730 :デフォルトの名無しさん:2007/02/25(日) 18:45:33
>725
試験がダメだった理由が体調不良ならここで聞かなくてもいいだろ。

731 :デフォルトの名無しさん:2007/02/25(日) 18:47:05
ここでみんなでQuine書いてみるってのも面白そうだけどなw

732 :デフォルトの名無しさん:2007/02/25(日) 18:51:08
>>725
単位取るの無理だから諦めろってことだなw

733 :デフォルトの名無しさん:2007/02/25(日) 18:53:06
たしかにこれが出来たら単位なんて簡単に取れるなw

734 :デフォルトの名無しさん:2007/02/25(日) 18:54:57
>>725
もはや宿題ってレベルじゃねーぞ・・・

今後の事も考えて自力でやった方がいいと思う

735 :デフォルトの名無しさん:2007/02/25(日) 18:57:03
>>725
あきらめろってことだな
教授もこんな遠回しな言い方しなくてもいいのに…

736 :デフォルトの名無しさん:2007/02/25(日) 18:59:57
>>725
単位なら来年度でも取れるからな
春休みを楽しみたまえ

737 :デフォルトの名無しさん:2007/02/25(日) 19:00:20
>>725
中間言語ならまだしも実行ファイルからソースを予測なんて無理
「単位はやらん」って言ってるようなもんだな

738 :デフォルトの名無しさん:2007/02/25(日) 19:02:15
>>725
教授酷いな、かぐや姫が貴族に出した試練みたいだ

739 :デフォルトの名無しさん:2007/02/25(日) 19:02:17
何人かわかってないのがいるなぁwww

740 :デフォルトの名無しさん:2007/02/25(日) 19:02:29
>>725
俺が書いた退屈な奴でも良いならどうぞ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3696.c

741 :デフォルトの名無しさん:2007/02/25(日) 19:04:34
>>737←これとか

742 :デフォルトの名無しさん:2007/02/25(日) 19:05:20
探したらcのソースあった。
まぁ、がんばれ

743 :デフォルトの名無しさん:2007/02/25(日) 19:05:46
>>725
教授にやり方のアプローチの不安な部分を相談
出来ている部分を報告
色々やり方あると思うんだ。
出来た成果物だけで判断するような内容じゃないから、やる気や才能を見せればいいと思うよ。
コミュニケーションスキルも判断材料になるなら、合格あげてもいいと俺が教授なら思う


744 :デフォルトの名無しさん:2007/02/25(日) 19:06:01
結局答えはどうなるの?実行プログラムのバイナリコードを吐き出すとか?w

745 :デフォルトの名無しさん:2007/02/25(日) 19:08:00
#include<ほにゃらら>

int main(){
  ほにゃらら
}

実行↓

#include<ほにゃらら>

int main(){
  ほにゃらら
}

こういうことだろ?

746 :デフォルトの名無しさん:2007/02/25(日) 19:08:20
>>744
自身を解析するんじゃなくて、出力ファイル=ソースファイルになるプログラムを書けってこと

747 :デフォルトの名無しさん:2007/02/25(日) 19:09:03
>>740
すげー。できるもんなんだな

748 :デフォルトの名無しさん:2007/02/25(日) 19:09:47
とりあえずQuineかself-reproducing codeでぐぐれ

749 :デフォルトの名無しさん:2007/02/25(日) 19:15:09
>>747
main出力されてないからアウトだろ

750 :デフォルトの名無しさん:2007/02/25(日) 19:17:02
>>749
実行してみた?

751 :デフォルトの名無しさん:2007/02/25(日) 19:18:29
#プリプロセッサ演算子使えば簡単だが、芸がないよなあ…

752 :725:2007/02/25(日) 19:26:12
http://www.ipsj.or.jp/07editj/promenade/4703.pdf#search='Quine'
に答えが載っていましたが、おそらく説明などが求められそうです。
ただ、ソースが見つかったので、これを解析して
考えてみたいと思います。

やっぱり、単位はやらないって意味なんでしょうけど
もぎ取りたいと思います。(そうじゃないと留年か仮所属なので)
いろいろありがとうございました。
ぐぐるワードを教えていただけただけで幸せです。

753 :725:2007/02/25(日) 19:27:19
>>740のはすごいと思ったのですが
解析で断念しました、何これ・・・
こんなに難しいなんて。

754 :デフォルトの名無しさん:2007/02/25(日) 19:31:16
自力でもないのにもぎ取るとか言うなよ

755 :デフォルトの名無しさん:2007/02/25(日) 19:31:32
>>752
そんな鼻から脳みそ出そうなコードじゃなくて、もっと素直なの探せよ

756 :デフォルトの名無しさん:2007/02/25(日) 19:33:11
>>755
教授のコンパイラで走らなくてあぼんしそうな悪寒w

757 :デフォルトの名無しさん:2007/02/25(日) 19:34:14
>>752
この辺はどうじゃろか
一部IOCCCっぽいのも混ざってるけど気にするな
ttp://www.nyx.net/~gthompso/self_c.txt

758 :デフォルトの名無しさん:2007/02/25(日) 19:34:10
>>753
>>740のはHaskellのshowに当たるものを自分で書いているだけで、構造自体はHaskell版と変わらない。
http://www.nyx.net/~gthompso/self_c.txt
この辺から分かり易いのを探してみたらどうよ。

759 :758:2007/02/25(日) 19:41:09
すまん、>>752のpdfで>>725がHaskellerだと勝手に思ってしまった。
ぐぐっただけね。
Haskell云々は忘れてくれ。

760 :725:2007/02/25(日) 20:00:36
>>757>>758
いろいろありがとうございます。
それにしても難しいコードばっかりですね。


761 :デフォルトの名無しさん:2007/02/25(日) 20:18:14
ttp://www.nyx.net/~gthompso/self_c.txt
なかなか面白いな。こんなの考える人いるんだな

関係ないけど>>758の日時のほうが早いのに>>757が先に表示されてる
こんなことあるんだな

762 :デフォルトの名無しさん:2007/02/25(日) 20:54:01
そんなん2chだとしょっちゅうあるぞ
ただこの板の人数考えるとレアだな確かに

763 :デフォルトの名無しさん:2007/02/25(日) 22:07:44
問題は提出しても、本当に自分でやったのか?と説明を求められても説明できなきゃアウトだろうな・・・

764 :デフォルトの名無しさん:2007/02/25(日) 22:44:14
>>725の問題ってC言語の確認にもならないし、単位のかかっている課題としては不適切じゃね?
なんか一種のパズルだろ…

765 :デフォルトの名無しさん:2007/02/25(日) 22:47:26
>>752
お前みたいな考えの甘い低レベルは留年・仮所属で十分。
周囲の足を引っ張るような馬鹿がいるだけで
真面目な同級生に迷惑がかかる。むしろ退学しろ。

766 :デフォルトの名無しさん:2007/02/25(日) 22:48:18
一種のパズルだから言語を理解してるかの確認になるんですよ

767 :デフォルトの名無しさん:2007/02/25(日) 22:57:17
どうせなら15ゲームとか麻雀とか、ゲームでも作らせりゃ良いのに

768 :デフォルトの名無しさん:2007/02/25(日) 23:42:15
>>740の腕前に嫉妬


769 :デフォルトの名無しさん:2007/02/25(日) 23:44:40
>>766
クワインは考え方さえ知っていれば大抵の言語でなんの工夫もなく書ける。
ので言語の理解度の確認には不向きだと思う。

770 :デフォルトの名無しさん:2007/02/25(日) 23:46:08
嫉妬してレスする暇あったら勉強しろ!…と自分自身に言ってやりたい。

771 :デフォルトの名無しさん:2007/02/26(月) 01:15:04
>>757
#defineって最強だな

772 :デフォルトの名無しさん:2007/02/26(月) 05:39:11
【質問テンプレ】
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
以下に示すようなstudent構造体変数を宣言し、10人分のデータを格納する配列student構造体変数を宣言しなさい。
-----------------------------
typedef struct{
char number[16];
char name[64];
float height;
int tan_i;
char bikou[1024];
} student;
-----------------------------
次にあらかじめ用意されたファイル(student.dat)から10人分のデータを読み込み、キーによってソートし、ソートした結果を画面に表示する。
最後に、ソートした結果をファイル(sort_student.dat)に書き込むプログラムを作成しなさい。
ただし、student.datファイルのデータ形式は以下の通りに個人データがカンマで区切られているものとして、
各自がエディタを用いて作成すること。
キーは学籍番号の下二桁で考えて3で割ったあまりが0の学生は学籍番号、3で割ったあまりが1の学生は身長、
3で割ったあまりが2の学生は単位数をキーとして、ソートすること。
「student.dat」(左から 学籍番号,氏名,身長,単位数,備考)
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3699.txt
[3] 環境
 [3.1] OS: WindowsXP Home
 [3.2] コンパイラ名とバージョン: Visual Studio.NET C++
 [3.3] 言語: Cのみ
[4] 期限: 2007年2月28日まで
[5] その他の制限:

よろしくおねがいします。

773 :デフォルトの名無しさん:2007/02/26(月) 10:26:55
キーで抽出した結果をソートして表示するんだろうか?

774 :デフォルトの名無しさん:2007/02/26(月) 19:11:01
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3702.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3703.txt
[3] 環境
 [3.1] OS: Linux(fedoracore2)
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 明日まで
よろしくお願いします

775 :デフォルトの名無しさん:2007/02/26(月) 19:30:50
>>774
仕様が曖昧すぎ
3702.txtの2なんかなんのプログラムを作ればいいかすらわからない
3702.txtの3で入力する値は何なのか?
3703.txtの3〜5の入力した数ってのは何なのか?
string.hは使ってもいいのか?
明日までってのは後4時間半しか無いのか?

776 :デフォルトの名無しさん:2007/02/26(月) 21:30:19
>>775
入力する値っていうのは、自分で適当に考えていいそうです。
3703の3〜5も同じだそうです。
string.hはまだ習ってないので使わない方がいいです。
期限は明日の夕方5時までです。

777 :デフォルトの名無しさん:2007/02/26(月) 21:47:34
>>776
3702.txtの2は?日付が存在するかどうか確かめるプログラムを作ればいいの?
それともカレンダーの表示?

778 :デフォルトの名無しさん:2007/02/26(月) 21:57:56
>>774
すまん、どこの在日のための学校だ?教えてくれ。朝鮮と関係がないか調査さえていただきます。
要するに日本語でおkじゃなくて朝鮮語でにd?

779 :デフォルトの名無しさん:2007/02/26(月) 22:09:01
>>772
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3704.txt

780 :デフォルトの名無しさん:2007/02/26(月) 22:36:13
>>774
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3705.zip
>>776
>string.hはまだ習ってないので使わない方がいいです。
気にするなアル。

781 :デフォルトの名無しさん:2007/02/26(月) 23:03:46
[1] 授業単元: プログラミング技術
[2] 問題文:キーボードからデータを5つ入力する。
次に入力するデータは、
何番目に入力したデータと一致するか表示するプログラム。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:わからないです。
 [3.3] 言語: C
[4] 期限:明日

782 :デフォルトの名無しさん:2007/02/26(月) 23:04:43
向こうで答え出てるだろ…

783 :デフォルトの名無しさん:2007/02/26(月) 23:07:43
>>774はテキスト(多分、翻訳書)の章末とかについてる演習問題だろ。
おそらく、本文を読めば何をさせようとしてるかわかるんだろうけど、
これだけだと、曖昧すぎる。


784 :向こうの407:2007/02/26(月) 23:08:24
>>781
ひどいなぁ

785 :デフォルトの名無しさん:2007/02/26(月) 23:17:34
データについてkwsk

786 :デフォルトの名無しさん:2007/02/26(月) 23:18:39
>>784
すいません、気付きませんでした…
ありがとうございます!

787 :デフォルトの名無しさん:2007/02/26(月) 23:39:58
いまさらだけど、>>725はネタだろ。
こんなことして単位がくるのか?大学って。
行ったことないから分からんのだが、
プログラミングできれば大卒できるっていうなら
今から行ってやりたいものなんだが。(当方専門卒)

788 :デフォルトの名無しさん:2007/02/26(月) 23:48:15
>>787
その科目一つ分の単位だけなら来るんじゃね。
卒業所要単位数は無理だけど。

789 :デフォルトの名無しさん:2007/02/26(月) 23:50:54
教授によっては点足りなくてもレポートで許してくれたりする

790 :デフォルトの名無しさん:2007/02/26(月) 23:51:10
>>787
日本の大学はまぁ入れたら普通は出れる。
入れるかどうかが問題なわけだが、ピンキリだ。

791 :デフォルトの名無しさん:2007/02/26(月) 23:58:33
>>788-790
まあ、そんなもんなんだろうな。
こういう輩が上に立って
努力してる自分たちが土方として働かされてる現実が
最近になって本気で悔しくなったことがあって
なんでコーディングできるほうが給料も安いのかと怒ってるからさ。
このスレ自体が堕落の原因じゃね?
そういいながら、暇な時には回答してやってるわけなんだが。

792 :デフォルトの名無しさん:2007/02/27(火) 00:02:50
>>791
学生時代に遊びほうけて後で苦労するか
学生時代に勉強して後で楽するかの違いじゃね

793 :デフォルトの名無しさん:2007/02/27(火) 00:05:21
これから支那に外注増えてって土方職すら減ってくだろうから、
仕事があるだけありがたいと思わんとな。

794 :デフォルトの名無しさん:2007/02/27(火) 00:08:41
プログラミング関連じゃないが、名前書くだけで
(授業に一回も参加しないで)単位くれる先生もいたぞ
そういう先生に限って授業面白いからまじめに受けたが。

795 :デフォルトの名無しさん:2007/02/27(火) 01:09:36
救済措置にプログラムのソース書かせる試験のある授業って何だろうな

796 :デフォルトの名無しさん:2007/02/27(火) 03:03:17
ほら…マンガとかでよくある…。

797 :772:2007/02/27(火) 07:13:40
>>779
ありがとうございます!

798 :デフォルトの名無しさん:2007/02/27(火) 11:06:39
[1] 授業単元: C言語入門
[2] 問題文:関数atoiと同じ動きをするプログラムを2つ以上作成せよ
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン :Borland C++ 5.5.1
 [3.3] 言語: C
[4] 期限:今日中
とりあえず一つは作ってみたんですが、もう一つが浮かびません・・・
お願いします。
#include <stdio.h>
#include <string.h>
int moge_atoi(char *str);

void main(){
char str[256];
int num;
printf("char型で読み込む :"); gets(str);
num = moge_atoi(str);
printf("int型に変換した :%d\n", num);
}

int moge_atoi(char *str){
int cnt,num=0;
//読み込んだ値が0〜9以外を見つけるまでloop
for (cnt = 0; (str[cnt] >= '0') && (str[cnt] <= '9') ; cnt++){
num = 10 * num + (str[cnt] - '0');
}
return num;
}

799 :デフォルトの名無しさん:2007/02/27(火) 11:13:08
>>798
atoiでググったページに同じソースが出てきたんだが。
本当に作ったのか?

800 :デフォルトの名無しさん:2007/02/27(火) 11:21:12
>>798

#include <stdio.h>
#include <string.h>
void main(){
char str[256];
int num;
printf("char:");
scanf("%s",str);
sscanf(str,"%d",&num);
printf("int:%d\n", num);
}

801 :デフォルトの名無しさん:2007/02/27(火) 11:24:35
>> 798
どうみてもコピーにしか見えないが。

802 :798:2007/02/27(火) 11:26:37
ええと、コピーです。ごめんなさい。

>>800
ありがとうございました。

803 :デフォルトの名無しさん:2007/02/27(火) 13:42:19
>>798
負数は?

804 :798:2007/02/27(火) 13:45:58
>>803
すいません。負数も考慮して貰えるとうれしいです。
コピーの方は負数が考慮されていないので、負数も考慮したいです。

805 :デフォルトの名無しさん:2007/02/27(火) 14:02:05
>>798
こうかな。
int atoi1(const char *n)
{
  return strtol(n, NULL, 10);
}
int atoi2(const char *n)
{
  int r = 0;
  sscanf(n, "%d", &r);
  return r;
}


806 :798:2007/02/27(火) 14:07:26
>>805

ありがとうございます。動作確認しました。


807 :798:2007/02/27(火) 14:23:59
続けざまにすいません。
質問なんですが、atoiでは
int atoi1(const char *n)
{
return strtol(n, NULL, 10);
}
と記述するのはわかったのですが、
逆(itoa)などになった場合にはどう記述すればいいのでしょうか?


808 :デフォルトの名無しさん:2007/02/27(火) 14:36:54
>>807
atoiとstrtolはエラーの扱いが違う

809 :808:2007/02/27(火) 14:41:47
流れが読めてなかった
itoaは標準関数じゃないよspritfを使うよ

810 :798:2007/02/27(火) 14:56:09
>>808-809
ではitoaを行いたい場合はどうすれば・・・?

811 :デフォルトの名無しさん:2007/02/27(火) 14:58:07
1つ前のレスも読めないのか

812 :798:2007/02/27(火) 15:18:36
>>811
すいません。意味がわかってなかったでした。
printf("int型で読み込む :");scanf("%d",&num);
sprintf(str,"%d", num);
printf("文字列に変換した :%s\n",str);
これで大丈夫でした。ありがとうございます。

また質問で申し訳ないんですが、
sprintf以外でitoaを実現したい場合にはどうすればいいのでしょうか?

813 :デフォルトの名無しさん:2007/02/27(火) 15:31:16
stdlib.hをインクルードすれば、標準関数ではないがitoaが使える
itoa(num, str, 10); // 10進表記

しかしなぜそこまでitoaにこだわるのか

814 :798:2007/02/27(火) 15:44:43
>>813
sprintf自体の動きはわかったのですが、itoa自体の
構造がよくわかっていなくて、sprintf以外で
作るならばどう記述すればいいのかと思っただけです

815 :デフォルトの名無しさん:2007/02/27(火) 15:59:53
>>814
整数を1桁ずつ取り出して、
文字にしたものをstrに入れていけばいいんじゃないかな

816 :798:2007/02/27(火) 16:14:39
>>815
なるほど。確かにそれならできそうな気がします。
けどint型を分解する方法がよくわからないのですが、
参照できるのは1つの塊のint型なのにどうやって分解
すればいいのでしょうか??

817 :デフォルトの名無しさん:2007/02/27(火) 16:17:52
n mod 10^m で桁ごとの数字取り出せるでそ

818 :デフォルトの名無しさん:2007/02/27(火) 16:20:51
>>798
%10 の解を バッファに書き 数を10で割る。
これを数が 0 になるまで繰り返して
最後にバッファをひっくり返す。

はじめから逆方向に書き出すバッファにしてもいいと思います

819 :デフォルトの名無しさん:2007/02/27(火) 16:42:06
>>816
void my_itoa(int num, char* str) {
int i;
for (i = 0; num != 0; i++) {
str[i] = '0' + (num % 10);
num /= 10;
}
str[i] = '\0';
str = strrev(str);
}

820 :デフォルトの名無しさん:2007/02/27(火) 17:06:58
まだやってたのか
そもそも宿題なのか?

821 :798:2007/02/27(火) 17:16:21
>>819

なるほど。ありがとうございます。スッキリしました。

822 :デフォルトの名無しさん:2007/02/27(火) 17:26:22
>>819
strrevも標準ではない

823 :デフォルトの名無しさん:2007/02/27(火) 17:28:03
>>819
これが課題だとしたら、負数も考慮しなきゃいけないんじゃ?
どうなの?>>798

824 :798:2007/02/27(火) 18:02:46
>>823

課題じゃないですが、考慮して貰えるとうれしいです。
オプション問題なので・・・

825 :819:2007/02/27(火) 18:36:17
>>820-823
お騒がせして申し訳ありません。

>>824
これで解決すると思います。
void my_itoa(int num, char* str) {
int digit, index = 0;
if (num < 0) { str[index++] = '-'; num *= -1; }
for (digit = 1; (num / (int)pow(10, digit)) != 0; digit++);
for (; digit > 0; digit--) {
str[index++] = '0' + (num / (int)pow(10, digit - 1));
num %= (int)pow(10, digit - 1);
}
str[index] = '\0';
}


826 :デフォルトの名無しさん:2007/02/27(火) 19:17:24
再帰的に書いてみる。

char *itoa_i( int value,char *buffer )
{
char *rtn;
if(value == 0) return buffer;
rtn = itoa_i(value/10,buffer);
*rtn = value % 10 + '0';
return ++rtn;
}

char *my_itoa(int value,char *buffer){
if(value < 0){
*buffer++ = '-';
value = -value;
}
if(buffer == itoa_i(value,buffer) ) *buffer++ = '0';
*buffer = '\0';
return buffer;
}

オーバーヘッド増えて遅くなるし、関数二つに増えるしいいことなし?

827 :デフォルトの名無しさん:2007/02/27(火) 19:39:35
もう一案考えてみた…

#include<string.h>

void my_itoa(int value,char *buffer)
{
char *start_point;
int size;

if(value < 0){
*buffer++ = '-';
value = -value;
}
start_point = buffer;
buffer += 5;
if(value == 0){
*--buffer = value % 10 + '0';
value /= 10;
}
size = 5 - (buffer - start_point);
if(size == 0){
*start_point++ = '0'
*start_point = '\0'
} else {
memmove(buffer,start_point,size);
*(start_point + size) = '\0';
}
}

828 :デフォルトの名無しさん:2007/02/27(火) 19:54:51
void my_itoa(int n, char *s) {
    char *p = s, c;
    if(n < 0) n = -n, *p++ = '-', ++s;
    do *p++ = '0' + (n % 10); while(n /= 10);
    *p-- = '\0';
    do c = *s, *s = *p, *p = c; while(++s < --p);
}

こんなんでよくね?

829 :デフォルトの名無しさん:2007/02/27(火) 20:16:30
>>828
まぁこの手のミスはありがちだから別にいいんだけど

char buf[32];
my_itoa(1<<31,buf);
printf("%s\n",buf);

とすると面白い表示になる件。

830 :デフォルトの名無しさん:2007/02/27(火) 20:16:47
中括弧くらいつけろよ…

831 :デフォルトの名無しさん:2007/02/27(火) 20:17:39
>> 828

細かいことかもしれないが n = 0 で呼び出すと
0 って出ないじゃないかな?

832 :デフォルトの名無しさん:2007/02/27(火) 20:20:23
>>831
それは大丈夫じゃないか?

833 :デフォルトの名無しさん:2007/02/27(火) 20:25:55
>> 832

do while 文だから問題なかった…。
自分の勘違い すいません。

834 :デフォルトの名無しさん:2007/02/27(火) 20:35:05
>>828

if(n < 0) *p++ = '-', ++s;
do *p++ = '0' - (n < 0 ? n % 10 : -n % 10); while(n /= 10);

だな

835 :デフォルトの名無しさん:2007/02/27(火) 20:50:06
>> 834

if(n < 0) n = -n, *p++ = '-', ++s;

のとこで n は絶対値かされてますから
指摘部分では n>=0 になってます。

836 :デフォルトの名無しさん:2007/02/27(火) 20:53:28
>>835
あのなーおまえ。

視力大丈夫?

837 :デフォルトの名無しさん:2007/02/27(火) 20:56:09
>>835
その考えは間違い。
if(n<0)n=-n;
と書いたからと言ってn>=0は保障されない。
既に>>829で指摘されている。


838 :デフォルトの名無しさん:2007/02/27(火) 20:59:17
>>834
いや、こうしたほうがいいと思うよ。

do *p++ = '0' + (n < 0 ? -(n % 10) : n % 10); while(n /= 10);

839 :デフォルトの名無しさん:2007/02/27(火) 20:59:19
>> 836

ごめん、相当悪い
書き込んでから気づいた…自分は馬鹿だ

でも自分は 828 のように 先に絶対値化したほうが
分岐が減るのでいいと思います。

840 :デフォルトの名無しさん:2007/02/27(火) 21:00:39
ふ、甘いわ。これで分岐なしで済む。
ifは元のままで
do *p++ = '0' + (n % 10u); while(n /= 10u); 

841 :デフォルトの名無しさん:2007/02/27(火) 21:01:40
>>839
おまえ理解力なさ杉

842 :デフォルトの名無しさん:2007/02/27(火) 21:04:28
>>840
俺の環境だとn=0..9のときしか正しい結果になりませんですた

843 :デフォルトの名無しさん:2007/02/27(火) 21:06:24
>>842
もしBCCならコンパイラのバグだと思うけどもしかしてBCC?
違ってたら俺のミスと思うけど。


844 :デフォルトの名無しさん:2007/02/27(火) 21:08:45
いや、gcc version 3.4.2 (mingw-special)

845 :デフォルトの名無しさん:2007/02/27(火) 21:11:29
>>844
エーまじかよ。自分のとこのgcc 3.4.4だとうまく動いてるんだよなー

念のために聞くけどこういうコードだよね?
void my_itoa(int n, char *s) { 
    char *p = s, c; 
    if(n < 0) n = -n, *p++ = '-', ++s; 
    do *p++ = '0' + (n % 10u); while(n /= 10u); 
    *p-- = '\0'; 
    do c = *s, *s = *p, *p = c; while(++s < --p); 


846 :デフォルトの名無しさん:2007/02/27(火) 21:18:00
ごめん。俺のミスだった

いつの間にかmy_が落ちてて標準関数使ってた…orz

847 :デフォルトの名無しさん:2007/02/27(火) 21:23:42
>>843
BCCをバカにしないでください
ちゃんと動きましたよ

848 :デフォルトの名無しさん:2007/02/27(火) 21:32:28
整数がオーバーフローした場合って未定義動作じゃなかったっけ?
unsignedの変数を宣言して使ったほうがいいと思う

849 :デフォルトの名無しさん:2007/02/27(火) 21:36:26
>>847
すまん、以前に符号無し整数のBCCのバグを踏んだ事があって神経質になりすぎた。
過敏すぎた。悪かった。

850 :デフォルトの名無しさん:2007/02/27(火) 21:40:24
BCC=ブッシッシッ

851 :デフォルトの名無しさん:2007/02/27(火) 21:50:23
Boku wo Coke ni suru yatu ha Chinpo!

852 :デフォルトの名無しさん:2007/02/27(火) 21:51:40
BaCaCa?

853 :デフォルトの名無しさん:2007/02/27(火) 21:53:45
Cokeをコークと読んd(ry

854 :デフォルトの名無しさん:2007/02/27(火) 22:24:01
コーラにしたら飲めるようになるのか?

855 :1 << (8*sizeof(int)-1) :2007/02/28(水) 04:20:59
「はやく正数になりたい」

856 :デフォルトの名無しさん:2007/02/28(水) 04:35:14
だったらマイナスを掛ければ良いじょのいこ!?

857 :デフォルトの名無しさん:2007/02/28(水) 04:38:04
悩むことじゃない、こんとんじょのいこ。

858 :デフォルトの名無しさん:2007/02/28(水) 06:19:44
>>855
っ long long

859 :デフォルトの名無しさん:2007/02/28(水) 07:32:34
sizeof(long long int) = sizeof(int) であっても規格を満足できる

860 :798:2007/02/28(水) 15:46:57
>>825-838

返事が遅くなってすいません。ありがとうございました。
itoaの方は無事に完成しました。
また質問で申し訳ないんですが、そもそもの宿題
(atoi関数を自作する)の話に戻るのですが、char型で
入力された物を変換する時に、16進数で入力した場合に、
(例えばBAと入力したら186を返す)変更するのであれば
現状からどう変更すればいいのでしょうか?

int myatoi(char *str){
int cnt,num=0;
for (cnt = 0; (str[cnt] >= '0') && (str[cnt] <= '9') ; cnt++){
num = num * 10 + (str[cnt] - '0');
}
return num;
}

861 :デフォルトの名無しさん:2007/02/28(水) 16:13:05
atoi が ascii to integer だと気づくのにそう時間はとられませんでした
あ と い なんて思っていた時期が懐かしい。

862 :デフォルトの名無しさん:2007/02/28(水) 16:23:37
>>860
int myatoi(char *str){
int cnt,num=0;
for (cnt = 0; ; cnt++){
if((str[cnt] >= '0') && (str[cnt] <= '9'))
num = num * 0x10 + (str[cnt] - '0');
else if((str[cnt] >= 'A') && (str[cnt] <= 'F'))
num = num * 0x10 + (str[cnt] - 'A') + 0xA;
else
break;
}
return num;
}
こんな感じに改造するのが一番楽だと思う

863 :798:2007/02/28(水) 16:37:59
>>862
なるほど。ありがとうございます。
16進数で掛け算もしなければいけなかったんですね。
ありがとうございました。

864 :デフォルトの名無しさん:2007/02/28(水) 16:50:29
ちょっと細かいやり取りが多いなぁ。これが完成したソースだってのを誰かまとめてくれ!

865 :デフォルトの名無しさん:2007/02/28(水) 16:53:31
自分でやれよ

866 :デフォルトの名無しさん:2007/02/28(水) 16:54:22
やだよ、無関係な俺に対してそれは失礼だぞ。

238 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)