C/C++の宿題を片付けます 93代目at TECH
C/C++の宿題を片付けます 93代目 - 暇つぶし2ch112:デフォルトの名無しさん
07/07/16 22:46:56
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
CSVファイルからデータを読み込み、構造体に入れる。
CSVファイルの中身は、名前・住所・電話番号で、10件以内である。
構造体には、登録番号・名前・住所・電話番号を入れる。
登録番号は自分でつける。
最初に、登録番号と名前を表示し、入力された登録番号に応じて
名前住所電話番号を表示する。
[3] 環境
 [3.1] OS:windows cygwin
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 今日中
[5] その他の制限:特になし

色々かんがえたのですがわかりませんでした。。
よろしくおねがいします。


113:デフォルトの名無しさん
07/07/16 22:48:53
>>111さん
素早い回答ありがとうございました。おかげで次の宿題は出せそうです。ありがとうございました。

114:デフォルトの名無しさん
07/07/16 22:49:29
>>107
ごめん間違った

for(i=1;i<n;i+=2) s2+=2*f(a+h*i);
for(i=2;i<n;i+=2) s2+=4*f(a+h*i);

for(i=1;i<n;i+=2) s2+=4*f(a+h*i);
for(i=2;i<n;i+=2) s2+=2*f(a+h*i);

115:デフォルトの名無しさん
07/07/16 22:50:12
あちゃー手遅れだったか

116:スモーク
07/07/16 22:50:23
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。

実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。

演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。

まだcaseになれていないのだろうか・・・。
教えてください。

117:スモーク
07/07/16 22:51:41
他にも。
多分岐型(2)
次の説明は冬季オリンピックの開催年についての説明である。

キーボードから変数year に入力された年号について、
開催された年に第何回大会が開催されたか
画面に表示するプログラムを作成しなさい。

また開催年でない場合は、画面にその旨メッセージを出力すること。



118:デフォルトの名無しさん
07/07/16 22:55:35
>>117
説明がneeeeeeeeeeeee

119:107
07/07/16 22:56:05
>>114さん、わざわざ丁寧にありがとうございます!(´;ω;`)ブワッ

120:デフォルトの名無しさん
07/07/16 22:57:52
【質問テンプレ】
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
文字列を置換するプログラムをつくれ。
どのような形でもいいので、置き換える文字列と置き換えられる文字列を受け取り
置換した文章を出力する。なるべくポインタを使うこと。試しにちゃんと動くか確認すること。
(例)”僕" を ”私” に置換する
僕は20才だ。僕の好きなたべものはお酒だ。
-> 私は20才だ。私の好きなたべものはお酒だ。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:(gcc 2.95.3)
 [3.3] 言語: C
[4] 期限: (2007年07月31日23:59まで )
[5] その他の制限: 無し

121:デフォルトの名無しさん
07/07/16 22:58:12
まぁ、感謝されたって力つかなきゃ意味無いし、暇つぶしの種にされてるだけだから考え物だけどな。

122:デフォルトの名無しさん
07/07/16 23:05:22
>>110
あれでできてるんじゃねえのか?
scanfの前に"c2p Message:","p2c Message:"とか
printfをいれて挙動をチェックしろ

123:デフォルトの名無しさん
07/07/16 23:11:52
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文:
URLリンク(kansai2channeler.hp.infoseek.co.jp)

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio .NET 2003
 [3.3] 言語:C
[4] 期限:2007/7/17(火) 10:30
[5] その他の制限:入力はfopen系関数を使用したものではなく、コマンドプロンプトから入力が保存されたテキストファイルを読み込む方法で行うようにしなければならない。

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

124:デフォルトの名無しさん
07/07/16 23:16:50
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): メンバx[]の値が定まっているPoint5Dのインスタンスを引数とし,
                その2ノルムを計算して返す関数 Norm を書け.
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:明日まで
[5] その他の制限:無し

問題の意味がいまいち分かりません…orz
よろしくお願いします。


125:デフォルトの名無しさん
07/07/16 23:17:09
>>120
#include <stdio.h>
#include <string.h>

void replace(char *sentence, char *src, char *dest){
    char *ptr;
    int src_len;

    src_len=strlen(src);
    for(;;){
        ptr=strstr(sentence, src);
        if(ptr==NULL) break;
        printf("%.*s%s", ptr-sentence, sentence, dest);
        sentence=ptr+src_len;
    }
    printf("%s", sentence);
}

int main(void){
    char *sentence="僕は20才だ。僕の好きなたべものはお酒だ。";
    char *src="僕", *dest="私";

    replace(sentence, src, dest);

    return 0;
}

126:デフォルトの名無しさん
07/07/16 23:18:52
>>120
#include <stdio.h>
int main(int argc, char **argv)
{
    char *queue;
    int c, qhead = 0, qtail = 0, qsize;
    if (argc < 3)
        return fprintf(stderr, "usage: %s from to\n", argv[0]), 1;
    qsize = strlen(argv[1]);
    queue = malloc(qsize);
    while ((c = getchar()) != EOF) {
        queue[qtail] = c;
        qtail = (qtail + 1) % qsize;
        if (qhead != qtail) continue;
        if (memcmp(&queue[qhead], argv[1], qsize - qhead) == 0
        && memcmp(queue, argv[1] + qsize - qhead, qtail) == 0) {
            fputs(argv[2], stdout);
            qhead = qtail = 0;
        } else {
            putchar(queue[qhead]);
            qhead = (qhead + 1) % qsize;
        }
    }
    while (qhead != qtail) {
        putchar(queue[qhead]);
        qhead = (qhead + 1) % qsize;
    }
    free(queue);
    return 0;
}

127:126
07/07/16 23:21:41
あ。
#include <stdlib.h>
#include <string.h>
もしといて。スマソ。

128:デフォルトの名無しさん
07/07/16 23:28:07
>>125
ありがとうございます。かなりきれいにできていますね。
自分もstrstr ()を使ったのですが、途中でつまってしまいました。

129:デフォルトの名無しさん
07/07/16 23:28:59
>>120 便乗
#include <stdio.h>
#include <string.h>

int main(void)
{
    char buf[1024], rep[2048], word1[32], word2[32], *p = buf, *q = rep;
    scanf("%[^\n]%s%s", buf, word1, word2);
    while(*p){
        if(!strncmp(p, word1, strlen(word1))) strcpy(q, word2), p += strlen(word1), q += strlen(word2);
        else *q++ = *p++;
    }
    *q = '\0';
    puts(rep);
    return 0;
}

130:デフォルトの名無しさん
07/07/16 23:31:06
>>126
すごいですね。こんなやりかたもあったのですか。

131:デフォルトの名無しさん
07/07/16 23:38:44
>>129
検索単語がみつかったら単語の文字の数だけ前に進めてstrcpy()をつかうのですね。
それも考えていたのですが、できそうでできませんでした。
みなさん、ありがとうございました。

132:デフォルトの名無しさん
07/07/16 23:40:48
[1] 授業単元:情報基礎
[2] 問題文:
・1から9までの数字を一回ずつ使った9桁の数字を小町数という。
 自乗した数が小町数となるような自然数をすべて求めるプログラムを作成し
 その数と小町数の両方を出力せよ

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: (明日まで )
[5] その他の制限: 無し



 C言語習いたてで、期限ぎりぎりまでがんばったんですけどダメでした
どなたかよろしくお願いします。

133:デフォルトの名無しさん
07/07/16 23:52:56
昔のスレに同じ質問あった気がするな

134:22
07/07/16 23:54:32
>>25
ありがとうございます。
なんですが、元々のソースを追記修正して今まできたので
一応そのような形でって事になってます。
制限なしと書いていましたが、現在のソースを
やっと作れるか作れないかぐらいのレベルなので
>>25さんのだとまだちょっとわからないことがいろいろとあります。
勉強してみます。ありがとうございました。



135:デフォルトの名無しさん
07/07/17 00:08:28
>>132
#include <stdio.h>
#include <string.h>
int check(unsigned long n)
{
    char f[10] = { '0' };
    for (n = n * n; n > 0; n /= 10)
        f[n % 10] = '1';
    return memcmp(f, "0111111111", 10) == 0;
}
int main(void)
{
    unsigned long n;
    /*
    * 最小小町数 123456789, sqrt(123456789) = 11111.11...
    * 最大小町数 987654321, sqrt(987654321) = 31246.96...
    */
    for (n = 11111; n < 31428; ++n)
        if (check(n))
            printf("%lu * %lu = %lu\n", n, n, n * n);
    return 0;
}

136:135
07/07/17 00:11:09
あ、コメント間違ってら
sqrt(987654321) = 31426.96...
ね、正しくは。

137:デフォルトの名無しさん
07/07/17 00:18:27
>>136
わざわざありがとうございます!
今できる環境にないので明日大学で試してみます

138:デフォルトの名無しさん
07/07/17 01:10:25
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:本日(17日)まで
[5] その他の制限:無し

よろしくお願いします。

139:デフォルトの名無しさん
07/07/17 01:50:51
>>108
ありがとうございます。
終了条件の部分大変参考になりました。

140:デフォルトの名無しさん
07/07/17 03:38:07
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):迷路の作成(探索)
2次元配列を用いて迷路をつくりSTARTからGOALまでの経路を視覚的にわかるように出力せよ。
(例)壁1 通路0 START8 GOAL9
データ
1 1 1 1 1 1 1 1 1 1
1 9 0 0 0 1 0 1 0 1
1 1 1 1 0 1 0 0 0 1
1 0 1 0 0 1 1 1 0 1
1 0 1 0 1 1 0 0 0 1
1 0 0 0 1 0 0 1 1 1
1 1 0 1 1 0 1 0 0 1
1 0 0 0 1 0 1 0 1 1
1 0 1 0 0 0 0 0 8 1
1 1 1 1 1 1 1 1 1 1

141:デフォルトの名無しさん
07/07/17 03:38:42
続きです
出力結果
**********
*G+++* * *
****+* *
* *++*** *
* *+** *
* ++* ***
**+** * *
* ++* * **
* *+++++S*
**********
[3] 環境
 [3.1] OS:Mac
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:本日(17日)まで
[5] その他の制限:無し

現在奮闘中ですがなかなかできませんorz
よろしくお願いします。

142:デフォルトの名無しさん
07/07/17 04:26:02
>>142
#include <stdio.h>
#define X 10
#define Y 10
int map[X][Y]={ {1,1,1,1,1,1,1,1,1,1}, {1,9,0,0,0,1,0,1,0,1},
{1,1,1,1,0,1,0,0,0,1},{1,0,1,0,0,1,1,1,0,1},
{1,0,1,0,1,1,0,0,0,1},{1,0,0,0,1,0,0,1,1,1},
{1,1,0,1,1,0,1,0,0,1},{1,0,0,0,1,0,1,0,1,1},
{1,0,1,0,0,0,0,0,8,1},{1,1,1,1,1,1,1,1,1,1}};
char expr[]=" *+34567SG";
int next(int x, int y) {
if (map[x][y] == 0) map[x][y] = 2;
if (map[x-1][y] == 9 || map[x-1][y] == 0 && next(x-1, y)) return 1;
if (map[x][y-1] == 9 || map[x][y-1] == 0 && next(x, y-1)) return 1;
if (map[x+1][y] == 9 || map[x+1][y] == 0 && next(x+1, y)) return 1;
if (map[x][y+1] == 9 || map[x][y+1] == 0 && next(x, y+1)) return 1;
if (map[x][y] == 2) map[x][y] = 0;
return 0; }
int main() {
int x, y, r=0;
for (x=0; x<X; x++) for (y=0; y<Y; y++) if (map[x][y] == 8) next(x, y);
for (x=0; x<X; x++) {
for (y=0; y<Y; y++) putchar(expr[map[x][y]]);
putchar('\n');
}
return 0; }


143:142
07/07/17 04:30:54
安価ミスた.orz

144:デフォルトの名無しさん
07/07/17 04:46:27
URLリンク(ja.wikipedia.org)

145:デフォルトの名無しさん
07/07/17 08:50:03
>>138
URLリンク(kansai2channeler.hp.infoseek.co.jp)

146:デフォルトの名無しさん
07/07/17 09:22:08
>>112
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct{
    char num[128], name[128], adr[128], tel[128];
}Data;

int main(int argc, char *argv[])
{
    Data x[10];
    FILE *fp;
    int i = 0, j;
    char buf[1024], *p, search[128];
    if(argc < 2) fprintf(stderr, "usage : %s string\n", argv[0]), exit(1);
    if((fp = fopen(argv[1], "r")) == NULL) perror(argv[1]), exit(2);
    while(fgets(buf, sizeof(buf), fp) != NULL){
        printf("num : "), scanf("%s", x[i].num);
        if((p = strtok(buf, ",")) != NULL) sscanf(p, "%s", x[i].name);
        if((p = strtok(NULL, ",")) != NULL) sscanf(p, "%s", x[i].adr);
        if((p = strtok(NULL, ",")) != NULL) sscanf(p, "%s", x[i].tel);
        i++;
    }
    for(j = 0; j < i; j++)
        printf("%s %s\n", x[j].num, x[j].name);
    printf("search : "), scanf("%s", search);
    for(j = 0; j < i; j++)
        if(!strcmp(search, x[j].num))
            printf("%s %s %s\n", x[j].name, x[j].adr, x[j].tel);
    return 0;
}

147:デフォルトの名無しさん
07/07/17 11:28:50
[1] 授業単元:IT入門B1
[2] 問題文:繰り返し複素数(実部,虚部はそれぞれ整数型とする)を入力し,ユーザが最後に1 (1+i*0)を入れたら今まで入力した複素数の実部と虚部のペアをすべて出力し,さらに入力した複素数すべての積を出力するプログラムを作成せよ.
なお,ユーザが入力する回数に制限はないものとする.
stdio.hの他にstdlib.hをインクルードしておく必要がある.
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:c
[4] 期限:2007年7月30日
[5] その他の制限: 特になし
参考プログラムです→URLリンク(www-it.sci.waseda.ac.jp)

よろしくお願いします。



148:デフォルトの名無しさん
07/07/17 11:38:25
>>147
検索して死ね

149:デフォルトの名無しさん
07/07/17 11:39:39
[1]授業単元:プログラミング技術III
[2]問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ: gcc
 [3.3] 言語: C
[4] 期限:7/18まで
[5] その他の制限:特になし

よろしくお願いします

150:デフォルトの名無しさん
07/07/17 13:09:50
[1]授業単元:ゲームⅢ
[2]問題文:数独(wiki参照URLリンク(ja.wikipedia.org))解読プログラム
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ: gcc
 [3.3] 言語: C
[4] 期限:7/20
[5] その他の制限:関数は2つ以下、#include <stdio.h>のみを使用すること

宜しくお願いします


151:デフォルトの名無しさん
07/07/17 13:22:11
>>150
URLリンク(www.techfinesse.com)
こんなのがあるようだぞ
その制限には引っかかるようだがなw

152:デフォルトの名無しさん
07/07/17 13:30:55
[1] データ構造論
[2]treeprintのプログラムを参考にして木をカッコ表記で表示するプログラムを作り、コマンド X で動作するようにせよ。

/* treeprint() : 2分探索木を根から順にすべて表示する(1行10個毎) */

int num; /* 1行のデータ個数を制御するための変数。*/
void treeprint(void)
{
num= 0;
/* 木の根ノードからサブ関数trprintを用いてプリント開始。*/
trprint(start->right);
}
int trprint(TNODE *p) /* trprint(p) : p の2分木を再帰的にプリント。*/
{
if(p != end){ /* p が終端ノードでないならば */
trprint(p->left); /* pの左部分木を再帰的にプリント。 */
printf("%5d%c",p->key, (++num % 10) ? ' ':'\n'); /* pのkey値を表示。 */
trprint(p->right); /* pの右部分木を再帰的にプリント。 */
}
}
 [3.1] Linux [3.2] gcc 3.4 VC 6.0等 [3.3] C言語
[4] 2007年07月18日12:00まで]
[5] プログラムの中のtreeprintだけ問題文の載せています
よろしくお願いします

153:デフォルトの名無しさん
07/07/17 13:33:01
>>149
URLリンク(kansai2channeler.hp.infoseek.co.jp)

154: ◆Il0WZuGYWw
07/07/17 14:47:00
>>150
bsdのportsの中に入ってるお

155:デフォルトの名無しさん
07/07/17 15:36:03
>>150
何の工夫も無い力技だが一応やってみた。
出回っているソースは確実にこれよりはマシだろう。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

156:デフォルトの名無しさん
07/07/17 16:23:42
あ、あ、ぼるじょあのほうにカキコしてしまった……
こっちのほうがいいのかな?マルチは怒られますよね?よければ誰かぼるじょあスレ見てください~~

157:デフォルトの名無しさん
07/07/17 19:15:37
>>142
遅い時間にも関わらず回答ありがとうございます。
確かに動作できました。
しかしながら関数を3つ作ってとけとのことでしたorz
すみませんがお時間がありましたら回答おねがいします。
問題は>>140-141です
よろしくお願いします<(__)>

158:c言語初心者
07/07/17 20:00:23
授業名:プログラミング1
プリントを渡されてやってこいとのことでした。
問題1
 サイコロを10000回投げたとき、1から6までのそれぞれの目が
何回ずつ出たか調べるプログラムを作成せよ

#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))

int main(void)
{
int i, j,spot, f[ ?(1) ];

srand(0);
for (j = 1;j <= 6;j++){
f[j] = 0;
}
for( i = 1;i <= 10000; i++){
spot = (int)(6 * uniformrand()) + 1;
[ ?(2) ]
}

return 0;
}

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


159:デフォルトの名無しさん
07/07/17 20:01:52
C++です
距離の単位にyかmが入力されるともう片方の単位に変換するプログラムです。
ただし、距離を変換する部分は、関数transを定義し、main関数で呼び出すこと。
距離の数値を入れた後に動かなくなるんですが、何が違うのか教えてほしいです。。
よろしくお願いします
#include <iostream>
using namespace std;
double trans(char a,double b)
{
double c;
cin>>a;
cin>>b;
if(a='y')
{
c=b*0.914;
return c;
}
else if(a='m')
{
c=b/0.914;
return c;
}
}

160:デフォルトの名無しさん
07/07/17 20:02:55
続き
int main()
{
char a;
double b;
cout<<"meter or yard -->";
cin>>a;
while(a!='E')
{
cout<<"input data -->";
cin>>b;
{
if(a='y')
{
cout<<b<<" yard --> "<<trans(a,b)<<" meter";
}
else if(a='m')
{
cout<<b<<" meter --> "<<trans(a,b)<<" yard";
}
cout<<"meter or yard -->";
cin>>a;
}
}
return 0;

161:デフォルトの名無しさん
07/07/17 20:04:35
a=='y' にしろ


162:デフォルトの名無しさん
07/07/17 20:05:45
>>158
結果の出力は要らないのか?

163:デフォルトの名無しさん
07/07/17 20:05:48
>>158
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))

int main(void)
{
int i, j,spot, f[7];
srand(0);
for (j = 1;j <= 6;j++){
f[j] = 0;
}
for( i = 1;i <= 10000; i++){
spot = (int)(6 * uniformrand()) + 1;
f[spot]++;
}
for(i=1; i<=6; i++) {
printf("%d %d \n",i,f[i]);
}

return 0;
}

164:デフォルトの名無しさん
07/07/17 20:06:15
>158
(1)7
(2)f[spot]++;

165:c言語初心者
07/07/17 20:07:34
たぶん(1),(2)にあてはまるものをいれてこいってことだと思います。
よろしくおねがいします。。

166:デフォルトの名無しさん
07/07/17 20:10:40
>161
改善されませんでした・・・

167:デフォルトの名無しさん
07/07/17 20:14:50
>>159
>>161 に加えて
trans(a,b)で余計に a, b を入力させようとしてるから.
引数で渡してんだから,そこで入力させてどうする.


168:c言語初心者
07/07/17 20:27:54
ありがとうございました
講義名:プログラミング1
プリントを渡されてやってこいとのことでした。よろしくおねがいします
1,2,・・・13の中から5個の数をランダムに選び出すプログラムを作成せよ

#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))

int a[13];

void RandomPermutation(int n)
{
例題2と同じ


int main(void)
{
int i;

RandomPermutation(13);
for (i = 0;i < (1)? ; i++){
printf("%4d \n", (2)? );
}

return 0;
}
です。(1)(2)の部分をお願いします。『例題2と同じ』という場所は
問題の横に横に例題2というのが乗っていました。だけど、自分はどこからどこまでが例題2
と同じ部分なのかがわからないです。例題2の部分がいるならそれも打ちます。よろしくお願いします。

169:デフォルトの名無しさん
07/07/17 20:37:44
(1)13
(2)a[i]

170:デフォルトの名無しさん
07/07/17 20:41:31
[1] 授業単元:C言語演習
[2] 問題文:
テキストファイルを読み込みたとえばテキストファイルに
3+4=
5*6=
...etc(これは他のその他の数式、etcと直接出力しない)
と書かれていたら画面に
3+4=7
5*6=30
...etc
と出力せよ。
[3] 環境
 [3.1] OS: (Linux)
 [3.2] コンパイラ名とバージョン: (gcc )
 [3.3] 言語: (C言語)
[4] 期限: 7月19日

171:c言語初心者
07/07/17 20:46:29
講義名:プログラミング1 プリントを渡されてやってこいとのことでした。よろしくおねがいします
よく切られたトランプから、5枚のカードを選び出すプログラムを作成せよ、
ただし、トランプにはジョーカーは含まれないものとする。
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))

int a[ (1)? ];

void RandomPermutation(int n)
{
例題2と同じ


int main(void)
{
int i;

RandomPermutation( (1)? );
for(i = 0; i < 5; i++){
if( (2)? ){
printf("ハート% 4d \n", n (3)? );
}else if ( (4)? ){
printf("ダイア% 4d \n", n (5)? );
}else if ( (6)? ){
      printf("クラブ% 4d \n", n (7)? );
}else{
printf("ハート% 4d \n", n (8)? );
}
return 0;
}
問2もありがとうございました。(1)から(8)までをよろしくお願いします

172:デフォルトの名無しさん
07/07/17 20:47:34
>>170
演算の種類は?

173:デフォルトの名無しさん
07/07/17 21:06:43
>>172
足し算、引き算、割り算、掛け算です。説明不足ですいません。

174:スモーク
07/07/17 21:23:34
こんばんわ。すみません、今度は説明を書いたのでよろしくお願いします。

「1」課題:C言語でコードを記述して実行する。

「2」内容:多分岐型のコードを使って整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力して、その計算結果cを出力するプログラムを作る。
というもの。さらに、実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で、
表現されるものとする。 演算子にそれ以外の記号が入力された場合は、
エラーメッセージを表示する。
また0による除算の回避も含めるものです。

「3」OS:WINDOWS XP SP2。

「4」バージョン:Visual Studio 2005。

「5」期限:今週の金曜まで。

「6」 コンパイラのバージョン: gcc。

 これでおねがいします。

175:デフォルトの名無しさん
07/07/17 21:23:47
[1] 授業単元: CG入門
[2] 問題文
縦横400ピクセルのスクリーン上に3次元空間の3角形が複数個、投影される。
この3角形についてそれぞれ
①スクリーン上の頂点:(x1,y1)(x2,y2)(x3,y3)
②頂点のZ値(視点から3次元空間までの距離):Z1,Z2,Z3
③三角形の色:(r,g,b)-均一色
が標準入力から与えられるとき、Z-バッファ法に基づいてスクリーン上に三角形を描き
最終結果をppm画像として出力するプログラムを作成せよ。

*必要なデータは標準入力から入力するものとし、かつ複数の③角形に対応させる事
(③角形個数は予め与えてもよい)

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual studio.
 [3.3] 言語: C
[4] 期限: 2007年7月19日 11:00まで

この手のプログラムはスレ違いかもしれないと思いつつも、C言語で書いて来いとのことなので
書き込ませて頂きました。何卒、よろしくお願いします。

176:デフォルトの名無しさん
07/07/17 21:25:47
>>170
できた。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

177:デフォルトの名無しさん
07/07/17 21:28:47
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 線形探索
次の表は、平成19年のお年玉付き年賀葉書の当選番号である。
1等 157788、457190
2等 5161、7093、7485、9614
3等 64、79
手元に届いた年賀状の抽選番号をキーボードから入力し、
当選したかどうかチェックして結果を表示するプログラムを作成する。

当選番号(の下2桁)は、キーの配列に初期値として格納する
キーボードから2桁の数字を入力してターゲットに格納し、線形探索を行う。
探索結果を画面に出力する。当選した場合は何等が当たったか、も出力すること。
【発展】
余力のある人は、下2桁に限らず、全桁を初期値として格納し、当選のチェックを実行するプログラムを作成してみること。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VB
 [3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限: 習ったのは 配列 if-else文 繰り返し ポインタ 線形探索と基礎知識
です。[発展]の方でお願いします。

178:デフォルトの名無しさん
07/07/17 21:37:38
>>174

>>170と同じ人か?

%演算子の分追加、変数名微修正と
コマンドライン引数を指定するとそのファイルから、
指定しないと標準入力から読み取るようにした。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

179: ◆y43pIoOHKo
07/07/17 21:39:12
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
自分の名前をローマ字でキーボードで入力し、文字数を表示させる関数、名前を逆順にする関数を
各自それぞれ定義しプログラムを組みなさい。結果の表示はmainで行い、姓と名の間は1文字
空白を入れること。ただし、変数が文字型、ポインタ型のみの場合の2つに分けてプログラムを組みなさい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語:C++
[4] 期限: 2007年07月18日10:00まで]
[5] その他の制限:できれば、do-while文及びfor文を使用してお願いします。

180:デフォルトの名無しさん
07/07/17 21:41:12
>>176さん、ありがとうございます。
けどまた説明不足でした…。小数の場合も含みます…。
>>170追加例
ファイル内
1.5+1.5=
3*5=
1.5+2=
出力
1.5+1.5=3
3*5=15
1.5+2=3
何度も説明不足ですいません…。この小数と整数を区別して出力するのが
むずかしいです。よかったらお願いします。

181:デフォルトの名無しさん
07/07/17 21:45:15
>>180
説明し忘れが無いか一度確認したほうがいいと思うよ
小数点以下は切り捨てるとかそういう細かい部分も説明すべきだと思う

182:デフォルトの名無しさん
07/07/17 21:45:22
>>180
aとbの型をdoubleにして、
fscanfの%dを%lfに、
printfの%dを%gにすればおk

183:デフォルトの名無しさん
07/07/17 21:50:56
170です。
>>182さんありがとうございます!!これで完成しました!!
みなさんありがとうございました。%gとは便利な…。

184:デフォルトの名無しさん
07/07/17 21:52:10
そんな事より、今日うちに犬が死んだ。老衰だった

185:デフォルトの名無しさん
07/07/17 21:53:27
>>34>>37
遅くなりましたがありがとうございました。


186:デフォルトの名無しさん
07/07/17 22:01:04
[1] 授業単元: ソフトウェアシステム
[2] 問題文(含コード&リンク):
以下の円周率を2000桁もとめるプログラムを
できるだけ高速に計算できるように改良せよ。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:分かりません
 [3.3] 言語: C
[4] 期限: 2007年7月18日12:00まで
[5] その他の制限:
マイコン。配布プロラムはマチンの公式を使っている。

若干スレ違いかもしれないですが、よろしくお願いします。

187:デフォルトの名無しさん
07/07/17 22:05:38
>>186
マイコンかWindowsかどっちなんだ。つかマイコンだろうな。
どんな石だか知らんが、これコンパイルして動かせる環境持ってる奴
いないんじゃないか。

188:デフォルトの名無しさん
07/07/17 22:07:21
>>175
よくわからんが、おもむろにCreateWindow()で窓を開く
コンソールアプリをつくれということだろうか。

189:デフォルトの名無しさん
07/07/17 22:09:28
>>187
Windows上で開発してるってことだろ、多分
せめてどんなマイコンを使ってるかわからないと難しいな・・・

190:デフォルトの名無しさん
07/07/17 22:17:30
○×ゲーム
Linuxのプロンプト上でplay
com/man対戦、先攻/後攻を選べる

191:デフォルトの名無しさん
07/07/17 22:20:53
最近三目並べはやってんのかyo

192:175
07/07/17 22:37:33
>>188
アプリと言いますか、コマンドプロンプトで必要な入力を入れていくと
それを適当なソフトで忠実に再現したppm画像に出してくれるものです。
同じ事言ってたらすいませんorz

できれば骨組みだけでも(流れ的な)考えていただけると幸いですm(__)m

193:デフォルトの名無しさん
07/07/17 22:40:26
>>186です

>>187
>>189
説明不足ですいません。

答えになってないかいもしれないですが、この付属のV850基板を使っています。
URLリンク(www.cqpub.co.jp)

194:デフォルトの名無しさん
07/07/17 22:42:40
V850基板なら手元にあるぜ
でもまだソフトインスコしてない・・・

195:デフォルトの名無しさん
07/07/17 22:43:16
>>192
いや、スクリーンに描画しろとか書いてあるからさ。
それを見なかったことにして、PPM画像ファイルを出力するだけなら、
標準Cの範囲のプログラムで出来る話だが、400*400の画面に
描画しろってんなら、窓開いてGUIスレッド起動してって話になるだろう。

196:190 ◆Oa0JSQvro2
07/07/17 23:14:27
追記です。
期限は木曜夜でお願いします。

よろしくおねがいしますm(__)m

197:175
07/07/17 23:14:34
>>195
なるほどそういう事でしたか…
特に制限などは言われていないので(Cのみとは言われてません)
このスレの趣旨に沿っていないかもと思ったのです。

できれば400X400は後に考えますので、ファイル出力の部分をお願いします。

198:デフォルトの名無しさん
07/07/17 23:36:49
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
 練習13-2(気象情報)
インターネットを利用して出身地の観測開始から現在までの
気象情報を入手し,各年の月別平均気温データを作成する.
作成したファイルから気象データを読み込んで,
  (1)平均気温が最も低い年月と最も高い年月を探索して
    両者の年月と気温をディスプレイに出力する
  (2)年間平均気温を計算し,高い年から順に
    年と年間平均気温をファイルに出力する
プログラムを作成しなさい.

気象庁HP(URLリンク(www.jma.go.jp))参照
[3] 環境
 [3.1] OS: Windows
 [3.2]
 [3.3] 言語:C言語
[4] 期限: 2007年 7月18日の朝
[5] その他の制限: 出身地は神戸でお願いします

199:デフォルトの名無しさん
07/07/17 23:38:00
>>196

>>1のテンプレを漏れなく書け。

200:デフォルトの名無しさん
07/07/17 23:45:39
× 資料なし(欠測) 統計値を求める期間内の観測結果が全て求められなかった場合。
は、どうあつかうんだ?

201:デフォルトの名無しさん
07/07/18 02:31:07
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
longが定義されている数の最大値LONGMAXをもとめろ。
例えば、i=1 を2倍していき、LONGMAXの最大値を求める。
別にこの方法でなくてもいい。各自にまかせる。
ちなみに LONGMAXはおよそ2147483647である。
余裕があるものはdouble などもやることが望ましい。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: (gcc2.95-3)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: (2007年07月25日23:59まで)
[5] その他の制限:無制限
さぐりで下のようなところまでは書きました。
#include <stdio.h>
#define LONGMAX 2147483647
int main(void)
{
long int i,i2;
/*これは0 ... の無限ループ
for(i=1;i<LONGMAX;i*=2)
printf("%d ",i);
*/
for(i=1;;i2=i,i*=2){
printf("%d ",i);
if(i<i2){
printf("%d is LONGMAX\n",i);
break;
}}}
までできましたが、値が少し違い微妙です。
それと、コメントカットしたらなぜ無限ループになるのでしょうか?
これにかなり悩みました。

202:デフォルトの名無しさん
07/07/18 03:17:08
>>201
無限ループの最初の方で止めれば分かるけど 1,2,4,8…1073741828 の次から0になってるはず。
で、その理由は出力される数を2進表現してみれば分かるはず。キーは32ビット。

後半での出力は…少しの違いなのか?

---
#include <stdio.h>
int main(void)
{
unsigned long max = -1;
printf("Unsigned MAX:%ud\n", max);
printf("Signed MAX:%d\n", max >> 1);
return 0;
}
----

203:デフォルトの名無しさん
07/07/18 03:37:53
>>201
2倍していき・・・verで書いてみた

#include <stdio.h>
#include <math.h>
int main(void)
{
int i=0;
long n, tmp;
while( (tmp = pow(2, i)-1) >= 0 ){
n = tmp;
i++;
}
printf("LONG MAX : %d\n", n);
return(0);
}

204:デフォルトの名無しさん
07/07/18 03:54:03
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:不明
 [3.3] 言語:C
[4] 期限:7/19まで
[5] その他の制限:課題①はwhile文、②は両方とも構造体、③は全てポインタと構造体の単元です
①と②は自分が考えたソースを添えてみたので、どこが悪いのかだけでも教えていただけると幸いです
どうかご教授の程お願いします

205:デフォルトの名無しさん
07/07/18 07:36:23
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:標準関数の利用
問題1:文字列を入力、英文字とそれ以外を収納する配列に振り分けしなさい
使用する標準関数:isalpha()など
実行画面
文字列入力==>A12H&jfTy8uZ3#
英字:AHjfTyuZ
その他:12&83#

問題2:文字列と削除文字列を入力し、文字列中から削除文字列を排除しなさい
使用する標準関数:strncmp(),strcpy(),strlen()など
実行画面
文字列入力(m1)==>ABCDEFAADABC
削除文字列(m2)==>ABC
結果文字列(m1):DEFAD

注意:配列の使用はm1,m2のみとする


206:デフォルトの名無しさん
07/07/18 07:56:14
>>204
よく見てないけど

=< じゃなくて <=
isdigit() -> isdigit(moji)
printf("hogehoge %d"); -> printf("hogehoge %d",); (カンマ)


× while(buff = getchar()!="0 0 0"){
whileのなかのsscanfのbufferなんてない
× printf("%4s%4f%4s,stu[j].name,stu[j]height,stu.[j]blood");}


207:206
07/07/18 07:57:21
あー
printf("hogehoge %d"fuga); -> printf("hogehoge %d",fuga); (カンマ)
に訂正です

208:デフォルトの名無しさん
07/07/18 08:10:29
>>186

URLリンク(www.sra.co.jp)

たぶんこれと同じなんやろうけど、どうやったら速くできるんだろう。

209:デフォルトの名無しさん
07/07/18 08:34:24
>>177
奮闘中ですが、できませんorz
お願いします!

210:190 ◆Oa0JSQvro2
07/07/18 09:12:44
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):○×ゲーム(3目並べ) をプロンプト上で動かす。com/man対戦、先攻後攻は選択可能
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C
[4] 期限: 今週金曜夜
[5] その他の制限: 特になし

211:デフォルトの名無しさん
07/07/18 10:09:46
[1] プログラミング基礎
[2] 検討及び考察」の指示に従って求めた, S/N=3.0 [dB]のときの a. 誤差[%],b. 誤り検出率[%] の数値(有効数字3桁以上)
および実験 2. のために作成したシミュレーションプログラムを使って報告せよ。

詳しいことは次のアドレスに書いてあります。
URLリンク(itohws03.ee.noda.tus.ac.jp)

[3.1] Unix
[3.2] gcc
[3.3] c
[4] 7月27日(金)
[5] 私の学籍番号の下三桁は080です。

212:デフォルトの名無しさん
07/07/18 10:14:23
どうせその学籍番号は他人のものだろ?

213:デフォルトの名無しさん
07/07/18 10:41:19
>>177
VBではなくVSです

214:c言語初心者
07/07/18 10:56:39
講義名:プログラミング1 … プリントを渡されてやってこいとのことでした。よろしくおねがいします
問3、よく切られたトランプから、5枚のカードを選び出すプログラムを作成せよ、ただし、トランプにはジョーカーは含まれないものとする。
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))

int a[ (1)? ];

void RandomPermutation(int n)



215:c言語初心者
07/07/18 10:57:29
『続き』

{
例題2と同じ


int main(void)
{
int i;

RandomPermutation( (1)? );
for(i = 0; i < 5; i++){
if( (2)? ){
printf("ハート% 4d \n", n (3)? );
}else if ( (4)? ){
printf("ダイア% 4d \n", n (5)? );
}else if ( (6)? ){
      printf("クラブ% 4d \n", n (7)? );
}else{
printf("ハート% 4d \n", n (8)? );
}
return 0;
}
例題2と同じというところは、プリントの横に例題2というのがあったんですが、どこかどこまでが例題2と同じなのかがわかりませんでした。そこが必要であれば例題2を打つんでよろしくお願いします。(1)から(8)までを回答としてよろしくねがいします。

216:デフォルトの名無しさん
07/07/18 11:07:22
>>209
URLリンク(kansai2channeler.hp.infoseek.co.jp)


217:デフォルトの名無しさん
07/07/18 11:19:47
>>215
四の五の言わないで全部書き出しな

218:デフォルトの名無しさん
07/07/18 11:21:57
>>175
ですがどうにもうまく三角形が描けませんorz
ファイル出力までで結構ですので、どなたかなにとぞお願いしますm(__)m

219:c言語初心者
07/07/18 11:39:59
>>215
0,1,2, … 、99をランダムに並べる

#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1))

int a[100]



220:c言語初心者
07/07/18 11:40:29
続き
void RandomPermutaion(int n)
{
int i, j, z;
for (i = 0; i < n; i++) {
a[i] = i;
}
for(j = n - 1; j > 0; j--) {
i = (int)(j * uniformrend());
z = a[i]; a[i] = a[j]; a[j] =z;
}
}

int main()
{
int n, i;

n = 100;
RandmPermutation(n);
for (i = 0; i < n; i++){
printf("%4d", a[i]);
}
printf("/n");

return 0;
}
が例題2です。よろしくお願いします

221:デフォルトの名無しさん
07/07/18 11:56:24
>>220
できたぞ
つか
 printf("ハート% 4d \n", n (3)? );
とか
 printf("ダイア% 4d \n", n (5)? );
って、問題間違ってないか?

222:c言語初心者
07/07/18 12:00:14
間違ってました。申し訳ありません。
printf("ハート% 4d \n", (3)? );
printf("ダイア% 4d \n", (5)? );

です。
よろしくお願いします。

223:デフォルトの名無しさん
07/07/18 12:07:51
[1] 授業単元: C
[2] 問題文(含コード&リンク):単純選択法
大きさ20の配列keyを用意し、キーボードから値を入力する。
この配列keyの要素を、単純選択法でソートするプログラムを作成せよ。

ただし、ソートの途中経過を画面に出力すること。
また、最後に比較回数を画面に出力すること。

【ヒント】
配列の大きさの指定
#define SIZE 20
単純選択法‥最小の要素を選び、未ソートの部分の先頭の要素と交換する
途中経過‥未ソートの部分が1つ減るたびに(外ループ)出力。
比較回数‥初期値0の変数を用意し、比較のたびに(内ループ)インクリメント。
発展
以下の機能を持つ関数を作成し、利用する形にコードを修正しなさい。

配列要素の入力を行う input_array
配列要素の出力を行う output_array
単純選択法によるソート select_sort
[3] 環境
 [3.1] OS: WindowXP
 [3.2] コンパイラ名とバージョン:VS2005
 [3.3] 言語: C
[4] 期限: いつでも
[5] その他の制限:なし

224:デフォルトの名無しさん
07/07/18 12:09:04
>>223
発展までは書いてみました

#include<stdio.h>
#define SIZE 20
void kadai28()
{ int key[SIZE];
int i, j, p, cnt = 0, w;
for(i = 0; i < SIZE; i++)
scanf("%d", &key[i]);
for(j = 0; j < SIZE; j++)
printf("%3d", key[j]);
printf("\n");
for(i = 0; i < SIZE; i++){
p = i;
for(j = i+1;j < SIZE;j++){
if(key[j] < key[p])
p = j;
cnt++;
}
w = key[p];
key[p] = key[i];
key[i] = w;
for(j = 0; j < SIZE; j++)
printf("%3d", key[j]);
printf("\n");
}
printf("cnt = %d\n", cnt);
return;
}
発展の方お願いしますー

225:デフォルトの名無しさん
07/07/18 12:10:49
[1] プログラム基礎復習
[2] charのみを使用し小数点以下100桁まで計算できる計算機を作る(中学程度)
[3] 環境
 [3.1] Windows2000プロ
 [3.2] gcc
 [3.3] C
[4]7/20
[5]main以外の関数を作ってはいけない

お願いします。さっぱりなので・・・

226:デフォルトの名無しさん
07/07/18 12:13:08
>>225
「+」「-」「*」「/」「√」位かな?


227:デフォルトの名無しさん
07/07/18 12:15:15
>>222
じゃ、パーツだけ教えるよ


a[i]/13==0
a[i]/13==1
a[i]/13==2
a[i]%13
a[i]%13
a[i]%13
a[i]%13

または

n
a[i]&3==0
a[i]&3==1
a[i]&3==2
a[i]/4
a[i]/4
a[i]/4
a[i]/4

好きなほうを使ってくれ

228:デフォルトの名無しさん
07/07/18 12:15:26
>>226
お願いできますか?
charだと256までしか出来ないので積や商がさっぱりで・・・


229:c言語初心者
07/07/18 12:20:22
>>221さん。
頼んでおいて申し訳ないのですが、>>214の回答をよろしくお願いします。

230:デフォルトの名無しさん
07/07/18 12:20:25
>>225
小数点以下でcharってprintf出力で表示される答えが100桁でいいんだよね?

231:デフォルトの名無しさん
07/07/18 12:24:54
>>229
>>227にヒントを書いたんだけど、不服?

232:225です
07/07/18 12:28:13
>>214さん
問題文の意味がよく分からないんですけど
ジョーカーは1枚ですよね?
それでランダムで5枚引くと・・・・




233:デフォルトの名無しさん
07/07/18 12:29:21
>>225
小数点以上は無限大?

234:225です
07/07/18 12:32:02
>>233
指定されていないので 多分無限だと思います

235:c言語初心者
07/07/18 12:33:46
>>231さん
不服なんてとんでもないです。ただ、ヒントもらっても自分が解けないだけです。申し訳ないです。

>>232さん
たぶんジョーカー2枚を抜いた52枚でのことだとおもいます。よろしくお願いします。


236:225です
07/07/18 12:33:59
足し引きはifで100で固めれば簡単に出来ることはわかったんですけど


237:デフォルトの名無しさん
07/07/18 12:34:33
多倍長の実数計算を実装させて
>[5]main以外の関数を作ってはいけない

冗談きつすぎ

238:デフォルトの名無しさん
07/07/18 12:37:24
>>225
100^256 までしかできなくね? 無限じゃネージャン

239:デフォルトの名無しさん
07/07/18 12:38:15
再帰下降も不可、と

240:デフォルトの名無しさん
07/07/18 12:39:19
>>238
勿論char[]で多倍長を実装するんでしょ
そうじゃなきゃそもそも実数すら扱えん

241:256です
07/07/18 12:39:40
ごめんなさい頼る所はココしかないので・・・・orz 


242:デフォルトの名無しさん
07/07/18 12:40:08
未来からの使者か?

243:149
07/07/18 12:58:59
>>153さんのテキストをコンパイルしてみたのですが、

/tmp/ccY67IGB.o(.text+0x163): In function `angle':
: undefined reference to `sqrt'
/tmp/ccY67IGB.o(.text+0x177): In function `angle':
: undefined reference to `sqrt'
/tmp/ccY67IGB.o(.text+0x197): In function `angle':
: undefined reference to `acos'
collect2: ld はステータス 1 で終了しました

と表示されて、./a/out のファイルが作成されなかったのですが
これは何でしょうか・・

244:デフォルトの名無しさん
07/07/18 13:00:17
何方か205お願いします

245:デフォルトの名無しさん
07/07/18 13:01:49
エラーメッセージじゃないかな??

246:デフォルトの名無しさん
07/07/18 13:05:23
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
特定の単語にgoogle 検索のリンクをはるプログラムをつくれ。
例えば、下は「テスト」という単語をgoogle検索したリンク である。
q= 以降は「テスト」という単語がURLエンコード(unicode)された文字列となっている。
URLリンク(www.google.co.jp)
1. htmlファイルを受け取る
2. 検索リンクにしたいいくつかの指定した単語を受け取る
3. すでにリンク済みの単語に注意しながら、指定した単語をgoogle 検索のリンクにする。
(例)「宿題」をgoogle 検索されたリンクにする。
この宿題ができなかったら単位はあげません。
->
この<a href="URLリンク(www.google.co.jp)
宿題</a>ができなかったら単位はあげません。
なお、目的を果たせるプログラムだったらこの形式でなくてもかまわない。
余裕がないものは
・検索ワードはURLエンコードの必要のない半角英数等だけでいい。
・受け取った検索ワードはすでにリンクされていないと仮定してもいい。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc2.95-3
 [3.3] 言語: C
[4] 期限: (2007年07月31日17:00まで)
[5] その他の制限: 何を使っても構わない

247:デフォルトの名無しさん
07/07/18 13:07:40
>>243
-lmつけると幸せになれる

248:デフォルトの名無しさん
07/07/18 13:08:14

>>225
組むのめんどいからヒントだけあげるよ

現在のCPU能力では「+」と「-」しか演算が出来ない。
「*」「/」はただの演算方法でしかない
例 a*bの場合   int i; for(i=0;i=b;i){a++}




249:デフォルトの名無しさん
07/07/18 13:09:34
>>248
ちょw

250:デフォルトの名無しさん
07/07/18 13:12:39
>>205
何が分からないか分からないんだが・・・・・・・
まんまじゃん




251:デフォルトの名無しさん
07/07/18 13:15:31
>>250
それを言うなwそれ言っちゃこのスレの存在価値がw

252:149
07/07/18 13:37:55
>>247さん
幸せになれましたが、どういう原理なのでしょう?
質問ばっかですいません

書き忘れましたが、153さん・247さんありがとうです

253:デフォルトの名無しさん
07/07/18 13:41:52
>>252
mという数学ライブラリをリンクしたのです。

254:デフォルトの名無しさん
07/07/18 13:42:09
>>248
兄さんそれ掛け算になってません。
forの条件式もアレです。意図は伝わるけど。

255:デフォルトの名無しさん
07/07/18 13:46:27
a*bの場合 int i,n; for(i=0;i<b;i++){n+=a;}
暇ですね。

256:デフォルトの名無しさん
07/07/18 13:47:11
a*bの場合 int i,n=0; for(i=0;i<b;i++){n+=a;}

257:デフォルトの名無しさん
07/07/18 13:48:03
>>252
243のエラーメッセージはソースの中に存在しない関数(sqrtとacos)があって
プログラムを作れないというリンカのエラー。
>>253の言うとおり数学ライブラリをリンク指定すれば
その中に関数sqrtとacosという関数があるからリンクが通る。

258:デフォルトの名無しさん
07/07/18 13:52:06
>>248

259:デフォルトの名無しさん
07/07/18 14:02:41
馬鹿は彫っとけ

260:デフォルトの名無しさん
07/07/18 14:04:45
やらないか

261:デフォルトの名無しさん
07/07/18 14:16:34
>>175
URLリンク(kansai2channeler.hp.infoseek.co.jp)

入力は各行に(別に各行でなくてもいいけど)
x1 y1 Z1 x2 y2 Z2 x3 y3 Z3 r g b
の順で数値を並べたファイル.
(例)
0 10 10 100 30 10 50 50 100 255 0 0
0 100 20 100 100 20 50 0 20 0 255 0
0 200 30 100 200 30 80 20 15 0 0 255

出力先もコンソールにしてるが,変更したければmain冒頭の
FILE *out = stdout;
を書き換えればいい.

画像はLinuxのxvで確認した.ppm形式はいくつか種類があるようなので問題あるかも.
(注:CGは昔かじった程度なのでzバッファについて根本的な勘違いをしてるかもしれない)

262:デフォルトの名無しさん
07/07/18 14:30:47
>>205
URLリンク(kansai2channeler.hp.infoseek.co.jp)
問題2でstrcpy()(文字列のコピー)の替わりにstrcat(文字列の連結)を使った。
strcpy()を使えと言われても俺の能力じゃムリポ

263:デフォルトの名無しさん
07/07/18 14:33:09
>>262
strccat(a, b) ≡ strcpy(a + strlen(a), b) ≡ strcpy(strchr(a, '\0'), b)

264:262
07/07/18 14:37:06
262の駄文は忘れてくれ
問題2の修正版
URLリンク(kansai2channeler.hp.infoseek.co.jp)

265:デフォルトの名無しさん
07/07/18 15:08:56
>>246
色々穴だらけだが
URLリンク(kansai2channeler.hp.infoseek.co.jp)


266:デフォルトの名無しさん
07/07/18 15:18:43
>>262
最後のナル文字にさえ気をつければ便利だし安全だよ。

267:デフォルトの名無しさん
07/07/18 15:19:45
サイズの方が重要かも。

268:265
07/07/18 15:24:25
あ、コメントの処理入れるの忘れた
まあいいや
どうせもともと穴だらけだ

269:ヒープ
07/07/18 15:36:58
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):
ヒープソートを用いて、配列に格納された10個の数値データを
大きい順に並び替える。変化がわかるようにソート前と後を出力させる。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 早いとありがたいです
[5] その他の制限: 特にありません
よろしくおねがいします。

270:デフォルトの名無しさん
07/07/18 17:26:12
>>177
#include <stdio.h>

int main(void) {
int i,j,k,sn,flg[3]={0},suka;
int n[3][5]={
{157788,457190,-1},
{5161,7093,7485,9614,-1},
{64,79,-1}
};
printf("Input number > ");
scanf("%d",&sn);
for(i=0,k=1000000; i<3; i++,k/=100) {
for(j=0; n[i][j]>0; j++) {
if(n[i][j]==sn%k) {
flg[i]++;
break;
}
}
}
for(i=0,suka=1; i<3; i++) {
if(flg[i]) {
printf("%d等 \n",i+1);
suka=0;
}
}
if(suka) printf("はずれ\n");
return 0;
}


271:デフォルトの名無しさん
07/07/18 18:07:53
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
2次元配列の中にデータの入ったファイルを読み込んで代入する方法を
main関数ともう1つ関数をつくって作成せよ。
例. box[5][5];の2次元配列にファイルのデータ(ここではdata.txt)を代入
data.txt
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 今日中です
[5] その他の制限: 特にありません
よろしくおねがいします。

272:175
07/07/18 19:53:23
>>261
ありがとうございました!m(__)m
自分でも色々いじってみましたが、思っていた通りの完璧な出来でした。
本当に助かりました!



273:デフォルトの名無しさん
07/07/18 20:09:44
[1] 授業単元:情報活用
[2] 問題文:キーボードから順次入力された正の整数を0が入力されるまで、
配列に順番に格納し、入力された(0を除く)値の平均値(実数として扱うこと)
にもっとも近い値(平均との差が最小となる値)が何番目に入力された
どういう値であるかを表示するプログラムを作成せよ。

例)
数字(1)を入力してください。 2
数字(2)を入力してください。 5
数字(3)を入力してください。 3
数字(4)を入力してください。 1
数字(5)を入力してください。 0
入力された数字の平均は2.75です。
これは、3番目に入力された3に最も近いです。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: [7月19日20:00]
[5] その他の制限:特になし

ギリギリまで頑張ったのですができませんでした。わかる方お願いします

274:デフォルトの名無しさん
07/07/18 20:12:21
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):○×ゲーム(3目並べ) をプロンプト上で動かす。com/man対戦、先攻後攻は選択可能
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C
[4] 期限: 今週金曜
[5] その他の制限: 特になし

275:デフォルトの名無しさん
07/07/18 20:13:01
>>273
なんか前々スレくらいで全く同じ問題に回答した気がする。

276:スモーク
07/07/18 20:17:27
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 問題009
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。

実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。

演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。

[3] 環境
 3.1] OS: (Windows XP)
 [3.2] コンパイラ名とバージョン: (VS 2005)
 [3.3] 言語:C
[4] 期限: ([2007年07月20日hh:金曜まで]
[5] その他の制限:

課題の数は残り20くらいありますが、半分は片付けました。
しかし、追加されてくるものを回答する時間がもうありません。
どうかよろしくおねがいします。
あなたの能力が便りです。

277:デフォルトの名無しさん
07/07/18 20:20:53
釣りか?

278:デフォルトの名無しさん
07/07/18 20:21:21
除算の結果の小数点以下は?

279:デフォルトの名無しさん
07/07/18 20:25:19
>>271
URLリンク(kansai2channeler.hp.infoseek.co.jp)

280:デフォルトの名無しさん
07/07/18 20:27:06
[1] 授業単元:情報
[2] 問題文:2次方程式a*x*x + b*x + c = 0の解を求めるプログラムを作成せよ。
係数a,b,cはdouble型で、キーボードから入力するものとする。
虚数解の出力も行うこと。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: あしたまで
[5] その他の制限:ありません

よろしくおねがいします

281:22
07/07/18 20:37:28
名前:デフォルトの名無しさん[sage] 投稿日:2007/07/15(日) 09:55:51
[1] 授業単元: C言語 基礎&応用
[2] 問題文(含コード&リンク): 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
ソース:URLリンク(kansai2channeler.hp.infoseek.co.jp)

[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:Visual studio.2005
 [3.3] 言語:C言語
[4] 期限:2007/07/19の12:00まで。
[5] その他の制限:特になし

どうにか講師が作らせたかった内容になったらしく問題1と2はOKでました。
最後の問題3です。よろしくお願いいたします。

282:スモーク
07/07/18 20:41:23
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 問題009
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。

実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。

演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。

[3] 環境
 3.1] OS: (Windows XP)
 [3.2] コンパイラ名とバージョン: (VS 2005)
 [3.3] 言語:C
[4] 期限: ([2007年07月20日hh:金曜まで]
[5] その他の制限:

課題の数は残り20くらいありますが、半分は片付けました。
しかし、追加されてくるものを回答する時間がもうありません。
どうかよろしくおねがいします。
あなたの能力が便りです。
小数点以下は切り捨てでいいですよ。
とにかく0による除算の回避とあるだけなのでそのとおりで済むはずです。
多少のミスはかまいません。それ以外がうまく機能すればよいです。
また、ほかの問題も載せますのでよろしくお願いします。


283:デフォルトの名無しさん
07/07/18 20:42:52
ここまでくると、嫌がらせとしか思えないな

284:デフォルトの名無しさん
07/07/18 20:43:30
なんか追記の書き方がムカツクのは俺の心が狭いからかな

285:デフォルトの名無しさん
07/07/18 21:07:30
>>280
汚くて&間違ってたらスマソ
URLリンク(kansai2channeler.hp.infoseek.co.jp)

286:285
07/07/18 21:11:36
あー、a=0の時の処理書いてないわ
適当に追加してね

287:デフォルトの名無しさん
07/07/18 21:26:20
>>284
俺も。>>285はキリストかあるいはMだと思う。

288:デフォルトの名無しさん
07/07/18 21:39:00
>>282
#include <stdio.h>
#include <stdlib.h>
int main(void){int a,b,c;char e;if(scanf("%d %d %c",&a,&b,&e)!= 3){
fprintf(stderr, "input error\n");return EXIT_FAILURE;}switch (e) {
case '+': c = a + b; break;case '-': c = a - b; break;
case '*': c = a * b; break;case '/':
case '%':if (b == 0) {fprintf(stderr, "zero divide\n");
return EXIT_FAILURE;}if (e == '/') {c = a / b;} else {c = a % b;}
break;default:fprintf(stderr, "illegal operator\n");return EXIT_FAILURE;}
printf("result = %d", c);
return EXIT_SUCCESS;}


289:alsk
07/07/18 21:56:33
健康についての英語のエッセイを500~600字程度でお願いしたいのですが…
可能でしょうか?
タバコとか、肥満についてならなんでもいいんで!

290:デフォルトの名無しさん
07/07/18 21:57:11
>>289
スレ違いすぎ。

291:デフォルトの名無しさん
07/07/18 22:00:17
(´-`).。oO(英語で500~600"字"ってかなり少なくないか?)

292:デフォルトの名無しさん
07/07/18 22:03:32
(´-`).。oO("語"の間違いだろ・・・常考)

293:デフォルトの名無しさん
07/07/18 22:04:01
釣りか単なるマルチだろ…

294:デフォルトの名無しさん
07/07/18 22:40:52
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
次のようにプログラムを作成せよ。前回のプログラムのmainとnumber大域変数は変更しない。
intのスタックを2つ作る(大域変数)。1つのスタックは数値をいれる。もう1つには演算子を表す数をいれる

+→0 弱低
-→1 ↓
*→2 ↓
/→3 強高


#include<stdio.h>
#include<ctype.h>
char *p;char c[100];
int expression(void);
int term(void);
int number(void);
main(){
int ans;
while(1){
printf("Enter expression : ");
fgets(c,90,stdin);
p=&c;

if(*p == '\n')
{break;}
ans=expression();
printf("Answer:%d\n" , ans);
}
}


295:デフォルトの名無しさん
07/07/18 22:42:19
int expression(){
int ans;
ans = term();
while(1){
if(*p == '+'){
*p++;
ans = ans + term();
}
else if(*p == '-'){
*p++;
ans = ans - term();
}
else
break;
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2007年07月19日
[5] その他の制限:特になし


296:デフォルトの名無しさん
07/07/18 23:13:01
>>223
お願いします

297:デフォルトの名無しさん
07/07/18 23:16:30
>>279
回答ありがとうございます。
とてもみやすかったです^^

298:デフォルトの名無しさん
07/07/18 23:24:06
>>297
readfile関数内の int j はいらないから消しといて><

299:デフォルトの名無しさん
07/07/19 00:12:58
>>273

#include <stdio.h>
#include <math.h>
#define N 128
int main(void)
{
int i=0, j, n=0, x[N];
float avg=0.0, tmp;
while(1){
printf("数字(%d)を入力してください。: ", i+1);
scanf("%d", &x[i]);
if(x[i] == 0) break;
avg += x[i];
i++;
if(i == N) break;
}
avg = avg / i;
printf("\n入力された数字の平均は%fです。\n", avg);
tmp = fabs(avg - x[0]);
for(j=1 ; j<i ; j++){
if(tmp > fabs(avg - x[j])){
tmp = fabs(avg - x[j]);
n = j;
}
}
printf("これは、%d番目に入力された%dに最も近いです。\n", n+1, x[n]);
return(0);
}

300:デフォルトの名無しさん
07/07/19 00:33:57
[1] 授業単元:計算機
[2] 問題文(含コード&リンク):
スタックを利用し、入力された文字を逆順に出力するプログラム。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
ここまで作ったのですが、ポップアップがうまく出来ません
[3] 環境
 [3.1] OS: (Windows/Linux/等々) windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) bcc32
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限:7/26

どなたかご教授お願いしますorz




301:273
07/07/19 00:47:41
>>299
ありがとうございますmm
明日やってみます。
本当にありがとうございます。

302:デフォルトの名無しさん
07/07/19 00:51:41
>>296
URLリンク(kansai2channeler.hp.infoseek.co.jp)

303:デフォルトの名無しさん
07/07/19 00:58:09
>>300
よく分からないのだが、
対話的に1文字ずつ文字入力を行い、1文字ずつ取り出したいのか?
それとも、
文字列を入力し、結果の反転文字列を一気に出力したいのか?

304:デフォルトの名無しさん
07/07/19 00:58:15
>300
char x;
scanf("%s", &x);
ってなんだ?

305:デフォルトの名無しさん
07/07/19 01:02:05
>>303
入力は1文字ずつで、出力は1文字ずつ出したり全部出したり出きる様にしたいんです。


306:デフォルトの名無しさん
07/07/19 01:11:28
[1] 授業単元:Cぷろぐらみんぐ
[2] 問題文:複素数a+bi(iは複素数)のn乗を求めて出力するプログラムを作れ。
a,bはdouble型とし、nはint型で、キーボードから入力するものとする。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: はやめでおねがいします
[5] その他の制限:特にないです


307:デフォルトの名無しさん
07/07/19 01:16:07
「はやめ」っていつまでだよ
明日の朝とかもうちょっと具体的に書け

308:デフォルトの名無しさん
07/07/19 01:19:00
[1] 授業単元:プログラミング論
[2] 問題文(含コード&リンク):URLリンク(sakuratan.ddo.jp)
                  return ????部分が分かりません。
[3] 環境
 [3.1] OS: (Windows/Linux/等々)WinXP
 [3.2] コンパイラ名とバージョン:VC6
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: 今日
[5] その他の制限:なし

よろしくおねがいしますorz

309:デフォルトの名無しさん
07/07/19 01:24:12
なんでいちいち外部に上げるかね

310:デフォルトの名無しさん
07/07/19 01:24:47
>>308
問題文じゃねええええええええええええええええええええええええええええええええええええええええええ


311:デフォルトの名無しさん
07/07/19 01:27:19
>>308
double 型の値を返すんだから、
FXかFX1じゃねえの?

問題文がないしわけがわからんよ


312:308
07/07/19 01:28:11
>>310
問題文がついてないんです・・・
一次正弦関数の補完値を求めたいみたいなんですけど
グーグル先生に聞いてもよく分かりませんでした。

313:デフォルトの名無しさん
07/07/19 01:29:36
は?
問題文がないなら宿題じゃねえじゃん

314:デフォルトの名無しさん
07/07/19 01:30:00
>>306
int main(){
double a,b,t; int n;
scanf("%lf,%lf,%d",&a,&b,&n);
while(--n>0)
t=b,b=2*a*b,a=a*a-t*t;
printf("%g+%gi\n",a,b);
}


315:デフォルトの名無しさん
07/07/19 01:31:47
[1] 授業単元: c言語
[2] 問題文(含コード&リンク):
 整数nを入力し、1~nまでの整数を使い、n桁の組み合わせを出力する。
同じ整数は2回以上使ってはいけない。
例えば3を入力した場合
012 021 102 120 201 210
を出力したい。


[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 7/23
[5] その他の制限: 特に無し

もうさっぱりです。お願いします。

316:308
07/07/19 01:32:04
>>313
「ここ埋めてきて」と…

317:デフォルトの名無しさん
07/07/19 01:33:24
>>316
俺たちはその「ここ埋めてきて」とか一時正弦関数の補完とか言われてな・・・
もしかして文章で伝えられずに口頭だったから何も書かなかったのか・・・

もうだめぽ

318:デフォルトの名無しさん
07/07/19 01:46:04
>>315
> 整数nを入力し、1~nまでの整数を使い、n桁の組み合わせを出力する。
...
>例えば3を入力した場合
>012 021 102 120 201 210

この例だったら、1 ~ n じゃなくて 0 ~ n-1 じゃないのか?


319:300
07/07/19 01:46:55
とりあえず1文字ずつ入力して1文字ずつ出力しようとしてみたけど
どうしても最後の文字(1番最初に入力した物)が出力されません。。
配列には入ってるみたいなんだが・・・


320:デフォルトの名無しさん
07/07/19 01:47:47
>>315
n桁ってのは上限はないのか?

321:デフォルトの名無しさん
07/07/19 01:48:52
1違いは良く見直せというのはプログラミングをやる人間にとっての常套句

322: ◆Kt53Ir50Qk
07/07/19 01:50:39
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
線形リストを用いて過去に素数とわかった数を保存し、指定された数(N)以下の素数を求めるプログラムを作成する。
Nはプログラム実行中に外部から入力できるようにする。
・素数かどうかを判定する際には線形リストに保存されている素数のみ利用する。
・引数として与えた数が、引数として与えられた素数を保存する線形リスト中の素数で割り切れるかどうかを判定する関数を作る。
・順番に小さい数から線形リストに保存してある素数で割り切れるかどうかを判断し、割り切れない場合(素数)は線形リストに加えていく。 [3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語: C/C++の違いがわからない
[4] 期限: はやめ
[5] その他の制限: 特になし
わ か り ま せ ん

323:デフォルトの名無しさん
07/07/19 01:53:41
>>318
うっかりしてました。
123 132 213 231 312 321
の間違いです。

>>320
基本的に上限はありませんが、あんまり数が大きいと
馬鹿になりませんので…。
大体5か6くらいまでを想定してます。

324:デフォルトの名無しさん
07/07/19 01:58:48
>>300
変な所は色々あるんだが、とりあえず、
case 3:
while(sp>0){
 sp--;
 printf("%c", Stack[sp]);
}
printf("\n");
break;


325:デフォルトの名無しさん
07/07/19 02:01:00
>>322
最初は線形リストになにも保存されていないと思われるが、どうする?

326: ◆Kt53Ir50Qk
07/07/19 02:05:05
たぶん、いくつかの素数を入れた素数テーブルを作っておくんだと思いますが、、、
よくわからないです。
↓授業で使った線形プログラム
URLリンク(sakuratan.ddo.jp)



327:デフォルトの名無しさん
07/07/19 02:07:59
何?
さくらアップローダーが流行ってるの?

328:300
07/07/19 02:10:22
きったないプログラムだけどなんとか動くようになりました。。。
あとは修正頑張ってみます。
ありがとうございました。

329:デフォルトの名無しさん
07/07/19 02:12:17
>>323
#include <stdio.h>
#define N 6
int nextperm(int p[], int n){
int i, j, t;
i = n - 1;
p[0] = 0;
while (p[i] >= p[i + 1]) i--;
if (i == 0) return 0;
j = n;
while (p[i] >= p[j]) j--;
t = p[i]; p[i] = p[j]; p[j] = t;
i++; j = n;
while (i < j){ t = p[i]; p[i] = p[j]; p[j] = t; i++; j--; }
return 1;
}

int main(){
int i, n, p[N + 1];
do{ scanf("%d", &n); }while(n < 1 || N < n);
for (i = 1; i <= n; i++) p[i] = i;
do{ for (i = 1; i <= n; i++) printf("%d", p[i]); putchar(' '); }while(nextperm(p,n));
return 0;
}
ぐぐって出てきたのほぼそのまんまだから動作原理はシラネ

330:デフォルトの名無しさん
07/07/19 02:23:00
>>300
がんばれ

331:デフォルトの名無しさん
07/07/19 03:01:10
自分で書いたソースを晒して質問するのって、それなりに大変だよな。
宿題丸投げして、回答があっても放置される事が多いけど。

332: ◆Kt53Ir50Qk
07/07/19 03:13:35
>326 まちがってました。授業でやったのは
URLリンク(sakuratan.ddo.jp)
でした。さっきのは自分でぐちゃぐちゃにしたやつでした。

333:306
07/07/19 07:44:56
今日、19日のうちにおねがいします

334:デフォルトの名無しさん
07/07/19 08:53:07
>>329
まさにそのまんまがあったんですね…。
ありがとうがざいます。

335:デフォルトの名無しさん
07/07/19 08:57:12
>>333
もうで照るだろ

336:デフォルトの名無しさん
07/07/19 09:57:38
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
a,b,c,d,eに1~5の整数を一つずつ入れて
a + b - c * d / e
の結果の最大になる値、最小となる値、そのときのa,b,c,d,eを求めよ。
(算数的に計算するのではなく全パターンをためすこと。)
また、結果は何通りあるかも求めよ。

[3] 環境
 [3.1] OS: (/Linux/)
 [3.2] コンパイラ名とバージョン: (gcc 2.95-2)
 [3.3] 言語: C
[4] 期限: 2007年07月20日17:40
[5] その他の制限: 無し

337:デフォルトの名無しさん
07/07/19 11:08:25
[1] プログラミング
[2] 問題 配列 int a[12]を用意し、a[i] = I ( i=0,1,2,…,10),a[11] = a[0]+a[1]+a[2]+…[10]とせよ
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:VS2005
[3.3] 言語: C ++
[4]本日まで

問題の意味がよく分からないかもしれませんがよろしくお願いします。

338:デフォルトの名無しさん
07/07/19 11:56:02
>>336
URLリンク(kansai2channeler.hp.infoseek.co.jp)

339:デフォルトの名無しさん
07/07/19 12:12:46
>>338
ありがとうございます。
ところで、count が120になったのですが、
a + b - c * d / e
のaとbまたはcとdを入れ替えると同じになると思うので
値は5*4*3*2*1通り未満になりませんか?
よくわからないので、もうすこしがんばってみます。

340:デフォルトの名無しさん
07/07/19 12:17:01
>>339
同値になる入れ換えは考慮してない。
必要かな?

341:デフォルトの名無しさん
07/07/19 12:23:35
>>340
どちらかといえばあったほうがいいです。

342:デフォルトの名無しさん
07/07/19 12:25:21
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:ポインタの利用
英文字の単語の出題をカウントしなさい
英文字に含まれる単語数は10以下とする
ポインタ配列を使用する
char english[] = "My name is Taro.Your name is Hanako.";

実行画面
My:1
name:2
is:2
Taro:1
Your:1
Hanako:1

343:デフォルトの名無しさん
07/07/19 12:28:13
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:ユーザ関数の作成
問題1:2値の最大を求めるユーザ関数を作成しなさい
プロトタイプ宣言:int Max(int dt1,int dt2);
実行画面
数値1を入力==>10
数値2を入力==>15

大きい値:15

344:デフォルトの名無しさん
07/07/19 12:50:24
>>343
#include <stdio.h>

int Max(int dt1,int dt2);

int main(void) {
int a,b,c;

printf("数値1を入力==>");
scanf("%d",&a);
printf("数値2を入力==>");
scanf("%d",&b);

printf("大きい値:%d",Max(a,b));

return 0;
}


int Max(int dt1,int dt2) {
return dt1>dt2 ? dt1 : dt2;
}


345:デフォルトの名無しさん
07/07/19 13:04:30
>>341
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これでどうかな

346:デフォルトの名無しさん
07/07/19 13:25:20
>>345
たとえば
1 +2 -3 *4/ 5
1と2の入れ換えで結果が重複して120の半分の60通りになり
3と4の入れ換えで結果が重複して60の半分の30通りになりそうなので
あっていると思います。
ありがとうございました。
ちなみにこれは算数オリンピックの第一問です。

347:デフォルトの名無しさん
07/07/19 13:31:01
>>346
aとb、cとdの値に順序性を持たせた。
宿題ではないのか?

348:デフォルトの名無しさん
07/07/19 13:42:23
>>347
それをC言語でとかせる宿題です。

349:デフォルトの名無しさん
07/07/19 13:42:49
>>337です。
聞いてみたところどうもfor文を使うらしいのですがどこに使えばいいのか分かりません
よろしくお願いします。

350:デフォルトの名無しさん
07/07/19 13:47:18
>>337>>349
int a[12];
int i;
for(i = 0; i < 11; i++) a[i] = i;
a[11] = 0;
for(i = 0; i < 11; i++) a[11] += a[i];

351:デフォルトの名無しさん
07/07/19 13:48:00
>>337です。
たびたびすみません。
先ほどの問題でデバックの結果がa[11] = a[0]+a[1]+a[2]+…+a[10]と表示できればいいそうです。
よろしくお願いします

352:デフォルトの名無しさん
07/07/19 13:51:54
printf("a[11] = %d\n", a[11]);

353:デフォルトの名無しさん
07/07/19 13:54:06
何方か342お願いします

354:デフォルトの名無しさん
07/07/19 13:55:43
[1]単元:プログラミング
[2]問題:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
OS:リナックス
コンパイラ:cc
言語:C
[4]期限:来週の水曜日までに

よろしくお願いします.

355:デフォルトの名無しさん
07/07/19 14:06:47
[1]単元:プログラミング
[2]問題:複数人の、名前と不定個の得点を入力し、平均点が50点を超える場合のみ、
名前と平均点を出力するプログラムをつくれ。得点の最大個数は10個である。
平均点は、小数点以下2桁までとせよ。入力は3人のデータとし、得点の入力終了は負数(-1)とする
一応ココまでやりました
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
OS:windows
コンパイラ:bcc32
言語:C
[4]期限:7/20

356:デフォルトの名無しさん
07/07/19 14:06:55
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク)
 
 演算子のオーバーロードにより、複素数a,bの絶対値の大小を与える
 演算子 < を作成せよ。 

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: CC
 [3.3] 言語:C++
[4] 期限: 7月20日

どなたかよろしくお願いします。


357:デフォルトの名無しさん
07/07/19 14:21:04
>>356
#include <complex>
template <typename T>
bool operator<(const std::complex<T>& left, const std::complex<T>& right) {
    return std::abs(left) < std::abs(right);
}


358:デフォルトの名無しさん
07/07/19 14:32:44
誰か >>306 お願いします。


359:デフォルトの名無しさん
07/07/19 14:53:49
>>385
複素数をn乗するってことでおk?

360:デフォルトの名無しさん
07/07/19 14:58:11
予言者か!

361:デフォルトの名無しさん
07/07/19 15:24:32
>>360
書いた自分でワロタ

362:デフォルトの名無しさん
07/07/19 15:39:45
>>359 おkです。

363:デフォルトの名無しさん
07/07/19 15:43:07
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:標準関数の利用
問題1:文字列を入力、英文字とそれ以外を収納する配列に振り分けしなさい
使用する標準関数:isalpha()など
実行画面
文字列入力==>A12H&jfTy8uZ3#
英字:AHjfTyuZ
その他:12&83#

問題2:文字列と削除文字列を入力し、文字列中から削除文字列を排除しなさい
使用する標準関数:strncmp(),strcpy(),strlen()など
実行画面
文字列入力(m1)==>ABCDEFAADABC






364:デフォルトの名無しさん
07/07/19 15:55:56
syntax errorってなんですか?
cygwin上でemacsを使ってCのソースの入力してコンパイルしたのですが、
syntax errorとでまして、コンパイルできません^^;

syntax error before '{' token
とでます^^;

基本中の基本かもしれませんが^^;
誰かわかりますか?

365:364
07/07/19 15:59:12
失礼・・・カテ違いでした^^;

366:デフォルトの名無しさん
07/07/19 16:01:42
>>306

#include <stdio.h>

int main(void){
double a, b, prev_a, prev_b, const_a, const_b;
int i, n;

printf("a b n : "); scanf("%lf%lf%d", &a, &b, &n);

const_a = a, const_b = b;
for(i = 1, prev_a = a, prev_b = b; i < n; i++, prev_a = a, prev_b = b){
a = prev_a*const_a - prev_b*const_b;
b = prev_a*const_b + const_a*prev_b;
}

printf("%g + %gi\n", a, b);

return 0;
}

367:デフォルトの名無しさん
07/07/19 16:27:16
>>363
>>205と同じやね。>>262>>264

368:デフォルトの名無しさん
07/07/19 17:12:56
>>342
URLリンク(kansai2channeler.hp.infoseek.co.jp)
バグっているかも試練

369:368
07/07/19 17:23:40
後、ボーランドで確認してない。よろ

370:デフォルトの名無しさん
07/07/19 17:58:40
[1] 授業単元:プロA
[2] 問題文

  構造体
  struct coord{
float x;
float y;
}
を用い、また、coord.data(内容は以下のようなもの)を作成して、
 
  1.2 3.4
2.1 4.5
3.2 2.1
2.0 4.9
5.3 2.8
1.5 3.2

これらの値をメンバx,yに読み込み、(例えばa.x,a.y,b.x,b.y
又はa[0].x,a[0].yなど好きな変数名を作成すればよい。
構造体はa[0],a[1]のように配列でもよい。
この場合、メンバとはa[0].xなどとして結びつく)
 
  xとyの平均をoutput2.dataに出力するプログラムを作れ。


[3] 環境
 Windows ,CC ,C++
[4] 期限: 7/19 21:00

よろしくお願いします。

371:デフォルトの名無しさん
07/07/19 18:36:25
>>355
URLリンク(kansai2channeler.hp.infoseek.co.jp)

372:デフォルトの名無しさん
07/07/19 18:46:15
どなたか>>354お願いします

373:デフォルトの名無しさん
07/07/19 19:08:19
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: BCC 5.5.1
 [3.3] 言語: C
[4] 期限: できればお早めに

お手数ですが宜しくお願いいたします

374:デフォルトの名無しさん
07/07/19 19:25:43
>>354 (>>372)
URLリンク(kansai2channeler.hp.infoseek.co.jp)

375:デフォルトの名無しさん
07/07/19 19:30:20
>>354
URLリンク(kansai2channeler.hp.infoseek.co.jp)

376:デフォルトの名無しさん
07/07/19 19:32:59
>>373
下の二つの関数を追加して
int gcd(int a, int b){ // 最大公約数を求める関数
int c;
while((c=a%b)!=0){a=b;b=c;}
return b;
}

int gcd3(int a, int b, int c){
return gcd(gcd(a, b), c);
}

if(gcd3(a, b, c)!=1) // これが成り立つ時はなにかの倍数

377:デフォルトの名無しさん
07/07/19 20:28:26
>>373
問1は、ループをxyz共に1000回ずつ回すのは無駄だから
for(x=1; x<=MAX-2; x++) {
for (y=x+1; y<=MAX-1; y++) {
for (z=y+1; z<=MAX; z++) {
みたいにすれば速くなるよ
問2はできてるんじゃないの?

378:デフォルトの名無しさん
07/07/19 20:48:32
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):実行結果と同じ内容を表示するプログラムの作成

実行結果

+
++
+++
++++
+++++

[3] 環境
 [3.1] OS:Windows Vista Business
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
 [3.3] 言語:C言語
[4] 期限:2007年9月3日
[5] その他の制限:①文字の出力にはprintfを使用し、プログラム中に2回のみ使用できるものとする
②アルゴリズムはwhile文の2重ループで行うこと

379:デフォルトの名無しさん
07/07/19 20:49:04
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):月(1~12)と日(1~31)をキーボードから入力し、入力された日付を表示する
プログラムの作成

実行結果 (「」内の部分はキーボードからの入力)


月を入力:「15」
月の入力は1以上12以下にしてください
月を入力:「8」
日を入力:「46」
日の入力は1以上31以下にしてください
日を入力:「25」
入力された日付は8月25日です

[3] 環境
 [3.1] OS:Windows Vista Business
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
 [3.3] 言語:C言語
[4] 期限:2007年9月3日
[5] その他の制限:①月の入力については1~12で範囲チェックを行い、範囲外の入力だった
場合は、エラーメッセージを表示して再入力させること
②日の入力については1~31で範囲チェックを行い、範囲外の入力だった
場合は、エラーメッセージを表示して再入力させること

380:デフォルトの名無しさん
07/07/19 20:54:54
>>378
#include <stdio.h>

int main(void)
{
int i=0, j;

while(i < 5){
j = 0;
while(j <= i){
printf("+");
j++;
}
printf("\n");
i++;
}

return(0);
}

381:デフォルトの名無しさん
07/07/19 20:57:13
>>379
終了の条件は?

382:デフォルトの名無しさん
07/07/19 21:04:44
>>377
問2はいきなり7309から始まるんですよ…

383:デフォルトの名無しさん
07/07/19 21:06:37
>>382
いや、それはそれ以前に処理されたものが画面に表示しきれていないだけでは・・・
実際には処理されているよ。

384:デフォルトの名無しさん
07/07/19 21:07:54
>>382
っ a.exe > result.txt

プロンプトのバッファを超えただけと思う

385:デフォルトの名無しさん
07/07/19 21:21:19
294です。おねがいします

386:デフォルトの名無しさん
07/07/19 21:23:49
>>381
何の終了条件ですか?

387:デフォルトの名無しさん
07/07/19 21:32:44
ああ、1周でいいのか

388:デフォルトの名無しさん
07/07/19 21:38:22
>>379

#include <stdio.h>
int main(void){
int m, d, tmp;
while(1){
printf("月を入力:");
scanf("%d", &m);
if(m<1 || m>12) fprintf(stderr, "月の入力は1以上12以下にしてください\n");
else break;
}
switch(m){
case 2:
tmp = 2;
break;
case 4:
case 6:
case 9:
case 11:
tmp = 1;
default:
tmp = 0;
}
while(1){
printf("日を入力:");
scanf("%d", &d);
if(d < 1 || d > 31-tmp) fprintf(stderr, "日の入力は1以上%d以下にしてください\n", 31-tmp);
else break;
}
printf("入力された日付は%d月%d日です\n\n", m, d);
return(0);
}

389:デフォルトの名無しさん
07/07/19 21:44:17
うわあ、switch文でbreak;書き忘れた><

390:デフォルトの名無しさん
07/07/19 22:00:18
>>375
サンクスです☆

391:デフォルトの名無しさん
07/07/19 22:09:26
>>379

#include <stdio.h>
int main(void) {
int month = 0, day = 0;
while (month<1 || 12<month) {
printf("月を入力:");
scanf("%d", &month);
if (month<1 || 12<month) printf("月の入力は1以上12以下にしてください\n");
}
while (day<1 || 31<day) {
printf("日を入力:");
scanf("%d", &day);
if (day<1 || 31<day) printf("日の入力は1以上31以下にしてください\n");
}
printf("入力された日付は%d月%d日です", month, day);
return 0;
}

392:デフォルトの名無しさん
07/07/19 22:22:33
>>294>>295
お願いします

393:デフォルトの名無しさん
07/07/19 23:01:43
>>376 >>377 >>383
ありがとうございました~!

394:体験版ありw
07/07/19 23:15:53
株式会社リアルクソエイト
URLリンク(www.realcreate.net)

WILLTY(ウィルティ)はネットワーク上や
外部媒体からウィルスやハッカーが侵入する際の
異常な電子の動きをキャッチし、コンピュータの入り口で
確実にブロックしてしまうという世界初の画期的な方法が
とられています。

たとえ、ウィルス感染したCD,FD,USBなどをインストールしても、
コンピューターがウィルス感染することはありません。
正常なデーターのみがコンピューター内に取り込まれます。

■ 電源コンセントからの情報漏洩をブロック
WILLTYは電源LANシステムを応用したデーター漏洩やハッキングをブロックします。
コンピュータ電源をコンセントに差し込んだ瞬間から機密情報は丸裸になっています。
LAN上のセキュリティーをどれだけ強固にしても、電源コンセントから
あなたの情報は筒抜けになっています

395:デフォルトの名無しさん
07/07/19 23:16:32
>>393
if ( dvsr >= trg ){
このtrgって、sqrtを取得して比較すれば
素数判定が早くできないかな。

dvsr++;
これも奇数を見るだけで良いのじゃないかな。
チェック対象件数が半減すると覆うよ。


396:デフォルトの名無しさん
07/07/19 23:17:16
↑のソフト使った人感想ちょうだいw




397:デフォルトの名無しさん
07/07/19 23:22:24
ウィルスに感染した電子ってスピンか何かが違うのか?

398:デフォルトの名無しさん
07/07/19 23:24:02
URLリンク(kansai2channeler.hp.infoseek.co.jp)

>>261を参考にしながらPPMファイルを出力したいのですが、できません。
環境はWindows xp + cygwinです。
0 10 10 100 30 10 50 50 100 255 0 0
0 100 20 100 100 20 50 0 20 0 255 0
0 200 30 100 200 30 80 20 15 0 0 255
をCygwin上で入力しています。
何がいけないのでしょうか・・

399:デフォルトの名無しさん
07/07/19 23:24:10
>>397
違わないだろw

壮大な釣りソフトw

400:デフォルトの名無しさん
07/07/19 23:53:45
こんなソフト通用すると思ってんのかw

401:デフォルトの名無しさん
07/07/20 00:04:20
>>394
あぶねえ。
俺、“そういう試みをチャレンジしている会社がある”と信じるところだった。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch