C/C++の宿題を片付けます 103代目at TECH
C/C++の宿題を片付けます 103代目 - 暇つぶし2ch93:デフォルトの名無しさん
08/01/16 00:26:37
>>77
> ・2つの入力年月日を実行時にキーボードから入力させるか

もう実装されてね?

94:デフォルトの名無しさん
08/01/16 00:32:39
>>48

#include <stdio.h>

int kensaku(char *data , char target)
{
int count;

for(count=0;*data!='\0';*data++){ *data==target ? count++:1; }

return count;
}

int main(void)
{
int i;
char input[100];
char target[100];

printf("キーから文字を数文字入力してください="); scanf("%s",input);
printf("調べる文字を入力してください="); scanf("%s",target);

for(i=0;target[i]!='\0';i++){
printf("入力された文字列の中に %c は、%d 個ありました。\n",target[i],kensaku(input,target[i]));
}

printf("\n何か入力をしてください\n"); scanf("%s",input);

return 0;
}


95:77
08/01/16 00:35:24
>>93さん
すいませんそうですね!誤りです。
残りの条件の方でできればお願いいたします。


96:デフォルトの名無しさん
08/01/16 01:02:47
>>77
int m22 = 1, d22 = 1;の下からy_count = year_prev(&y1, &y2);上までを以下に書き換えでいかがでしょう
char buf[100];
FILE *fp;

if (argc == 7) {
/* 引数の時
./hoge.exe y1 m1 d1 y2 m2 d2 */
y1 = atoi(argv[1]);
m1 = atoi(argv[2]);
d1 = atoi(argv[3]);
y2 = atoi(argv[4]);
m2 = atoi(argv[5]);
d2 = atoi(argv[6]);
show_date(y1, m1, d1);
show_date(y2, m2, d2);
} else if (argc == 2) {
/* ファイルのとき
ファイルの中身はテキストでy1 m1 d1 y2 m2 d2 */
fp = fopen(argv[1], "r");
fgets(buf, sizeof(buf), fp);
sscanf(buf, "%d %d %d %d %d %d", &y1, &m1, &d1, &y2, &m2, &d2);
show_date(y1, m1, d1);
show_date(y2, m2, d2);
fclose(fp);
}else {
input_date(&y1, &m1, &d1);
show_date(y1, m1, d1);

input_date(&y2, &m2, &d2);
show_date(y2, m2, d2);
}

97: ◆gDKJL3vNys
08/01/16 01:14:56
スレリンク(tech板:988番)
前スレ988です
>>75
遅くなりすみませんレスありがとうございます
情報の後だしかつ、わざわざ作っていただき申し訳ないのですが
学習範囲外技術を含んだ非常に高度なプログラムなのでバレてしまうかもしれません
またルネサスのヘッドファイルだと問題あるのかどうかもよく分かりません
クロックも20MHzだと問題あるのでしょうか?
本日(昨日?)学校より今までに学習しそれを利用して製作した
今までのプログラムをアップしておきました
ろだ、の5781.zipです
後出しかつせかっく作っていただいたのに文句ばかりつけて
本当に申し訳ありませんがアップしたプログラムの組み合わせや応用で
何かオリジナルの課題は作成可能でしょうか?
アップしたプログラムと同じや似た内容だとはねられる可能性があるので
自分なりにも考えていますが現状ではお手上げです
時間も少なく申し訳ないですが、どうかよろしくお願いします。


98:77
08/01/16 02:11:06
>>96さん
引数でもファイルからでもプログラムの実行が行えました!
教えていただいたプログラムは他の課題でも参考に使えそうです。
本当にありがとうございました!

99:75
08/01/16 12:00:27
>>97
課題サンプル見たよ
3664.hのヘッダは多分ルネサスから持ってきたもんだと思うから大丈夫
アップしたプログラムと課題には特に差はなかったです
課題のものが作れるならアップしたものも十分作れる…はず
日中時間ないんで夜になるけど、課題に合わせて修正してみるよ

アップしたプログラムの動作はLEDが以下のように並んでるとして、
常に一つだけ点灯するもの

○○○● SW2押す→ ○○●○ SW2押す→ ○●○○ SW1押す→ ○○●○

上のようにSWが押されると点灯しているLEDをずらしていくだけ
SWは一回押されたら一つLEDをずらす、SWを一回離してもう一回押さないと
動かないようにしてます、内容的にはこんなんでいいのかな

ちなみにクロック違うとタイマのカウント速度が違ってくるので
TV.TCORA = 156 とかやってる部分をクロックに合わせて変更する必要があります
3664だと多分16MHzだと思いますが、どうなってるでしょう


100:デフォルトの名無しさん
08/01/16 12:09:17
[1] 授業単元:プログラミング言語II
[2] 問題文(含コード&リンク):
ポインタ配列を用いて月の名前を英語名で静的変数に格納しなさい。
ポインタ配列を用いて各文字列を走査し、「r」が入っている月を求めなさい。
見つかった月の名前を表示しなさい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008/01/16 24:00まで
[5] その他の制限: 特になし

期限が今日まで申し訳ないですが、よろしくお願いします。

101:デフォルトの名無しさん
08/01/16 12:29:39
月って英語でlunaだっけ?と思った俺は負け組 orz

102:デフォルトの名無しさん
08/01/16 12:41:14
>>99の優しさを独り占めにしたい。

>>100
#include <stdio.h>

int main(void)
{
    char *month[] = {"January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December"};
    int i;
    char *p;

    for(i = 0; i < sizeof(month)/sizeof(month[0]); i++){
        for(p = month[i]; *p != '\0'; p++)
            if(*p == 'r')
                break;
        if(*p != '\0')
            puts(month[i]);
    }

    return 0;
}

sizeof(month)/sizeof(month[0])はたまたま動くのかな?(そんなら12にしないと駄目だけど)

103:デフォルトの名無しさん
08/01/16 12:57:36
動くのはたまたまじゃないが、要素数が分かってるからやる必要はないかもな。

104:デフォルトの名無しさん
08/01/16 13:00:24
配列の要素数を指定してないんだからsizeofの方が自然じゃね?
*month[12]とかしてるなら12でもいいけど。

105:デフォルトの名無しさん
08/01/16 13:02:44
それだと文字数が12の予感

106:デフォルトの名無しさん
08/01/16 13:03:58
一度他の変数に限界値保存して比較したほうがいいな。
forループ抜けるまで変動はしないのだから、毎回sizeof2つ使って除算までしてたら無駄過ぎる。
あとbreakする前にputsすればいいところを、わざわざif文外に持ってくる理由も分からん。

107:デフォルトの名無しさん
08/01/16 13:08:55
static忘れてね?

108:デフォルトの名無しさん
08/01/16 13:11:11
忘れてた。

109:デフォルトの名無しさん
08/01/16 13:22:35
sizeof(array) / sizeof(* array)は(コンパイル時に確定するから)定数だよ。

110:デフォルトの名無しさん
08/01/16 13:24:20
>>105
アホがいるw

111:デフォルトの名無しさん
08/01/16 13:37:35
>>110
すんませんでした。

112: ◆gDKJL3vNys
08/01/16 14:30:34
>>99
レスありがとうございます
それで全然かまわないのでよろしくお願いします
お手数おかけし申し訳ありません

113:デフォルトの名無しさん
08/01/16 17:58:06
[1] 授業単元: C言語
[2] 問題文:
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visual studio 2005
 [3.3] 言語: C言語
[4] 期限: 今日中です。。。
[5] その他:よろしくお願い致します。

114:デフォルトの名無しさん
08/01/16 19:01:05
>>113
URLリンク(kansai2channeler.hp.infoseek.co.jp)

Switchを再入力させる条件が読み取れなかったので、
その辺は自身で修正して。

115:デフォルトの名無しさん
08/01/16 19:06:48
>>113
おいらもできた。マルチバイト文字セットをつかってくれ
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(void) {
#define BUFSIZE 256
char buffer[BUFSIZE]; unsigned char val = 0; int bitpos, bitnum, i;
while (1) {
printf("\nBit number : 7 6 5 4 3 2 1 0\n" "Bit :");
for (i=7; i >=0 ; --i) printf( ((val >> i) & 1) ? " 1" : " 0");
while (1) {
printf("\n\ninput change bit : ");
fgets(buffer, BUFSIZE, stdin);
bitpos = atoi(buffer);
if (buffer[0] == '.') { return 0; }
else if (isdigit(buffer[0]) && (bitpos >= 0 && bitpos <= 7)) { break; }
puts("\nSorry. Input 0-7 number.\n" "(. is end)");
}
while(1) {
printf("\nSwitch on(1) or off(0) ? : ");
fgets(buffer, BUFSIZE, stdin);
bitnum = atoi(buffer);
if (isdigit(buffer[0]) && (bitnum == 0 || bitnum == 1)) {
val = (bitnum == 1) ? (val | (1 << bitpos)) : (val & ~(unsigned char)(1 << bitpos));
break;
}
puts("\nSorry. Input 0 or 1.");
} }
return 0;
}

116:114
08/01/16 19:16:28
あ、バイトじゃなくてビットだから間違ってるorz

117:デフォルトの名無しさん
08/01/16 19:21:30
>>113の人気に嫉妬しつつ書いてみた
URLリンク(kansai2channeler.hp.infoseek.co.jp)

118: ◆gDKJL3vNys
08/01/16 19:36:27
>>99
自分なりに調べてみましたが
仰られる通り
3664ではシステムクロック信号はΦ16MHzで
周波数16MHzでは1ステートは1/16MHz=0.0625μsになるようです
遅くなり申し訳ありませんがよろしければご参考ください

119:114
08/01/16 19:37:29
>>114の修正版。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

120:デフォルトの名無しさん
08/01/16 20:00:39
>>114
>>115
>>117
本当にありがとうございます。

121:デフォルトの名無しさん
08/01/16 20:35:15
[1] 授業単元:コンパイラ
[2] 問題文:
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:どちらでも可
[4] 期限: 1月17日10:00まで
[5] その他の制限:特に無し
よろしくお願いしますm(__)m

122:デフォルトの名無しさん
08/01/16 21:33:08
#include <stdio.h>

int main(void)
{
char buf[100], delim[] = "=)(+*-/.";
char *p, *q;

printf("入力 : ");
fgets(buf, sizeof(buf), stdin);

for (p = buf; *p != '\0'; p++) {
for (q = delim; *q != *p && *q != '\0'; q++);
if (*q)
printf("\n%c\n", *p);
else
putchar(*p);
}
return 0;
}

123:デフォルトの名無しさん
08/01/16 22:38:26
>>121
URLリンク(kansai2channeler.hp.infoseek.co.jp)

124:デフォルトの名無しさん
08/01/16 22:51:02
[1] 授業単元:プログラミング
[2] 問題文:
番号(整数4桁)と氏名(文字型30バイト)から構成される構造体を定義し、データを入力してその内容を表示するプログラムを作成しなさい。
なお、プログラムの終了条件は、ゼロ以下の番号が入力された時点とする。
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語: C
[4] 期限:1月23日
[5] その他の制限:

よろしくお願いします。

125:デフォルトの名無しさん
08/01/16 23:07:56
#include <stdio.h>

struct _data{
int number;
char name[30];
};

int main()
{
int i, j, n;
char buf[100];
struct _data data[100];
for (i = 0; i < 100; i++) {
printf("number : ");
fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%d", &n);
if (n < 0)
break;
data[i].number = n;
printf("name : ");
fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%s", data[i].name);
}
for (j = 0; j < i; j++)
printf("%d %s\n", data[j].number, data[j].name);
return 0;
}
配列でよかったのだろうか?

126:デフォルトの名無しさん
08/01/16 23:08:55
>>118
URLリンク(kansai2channeler.hp.infoseek.co.jp)

一応修正版、割り込みとかなしにしました
ビットシフト "<<" とかがわからんとかの話じゃないことを祈る

127:デフォルトの名無しさん
08/01/16 23:17:40
>>118
URLリンク(kansai2channeler.hp.infoseek.co.jp)

連投すまん、ビットシフトも抜いた

128:デフォルトの名無しさん
08/01/16 23:24:37
>>102
ありがとうございます!
おかげで助かりました。

129:デフォルトの名無しさん
08/01/16 23:38:43
>>121
#include<stdio.h>
int main(void){
char buf[100+1];
for(;;){
if(fscanf(stdin, "%100[A-Za-z0-9]", buf)!=1)
if(fscanf(stdin, "%1[(+*/.),-]", buf)!=1){
if(fscanf(stdin, "%1[\n]", buf)!=1) fprintf(stderr, "\nError: unexpected character.\n");
break;
}
puts(buf);
}
return 0;
}

130:デフォルトの名無しさん
08/01/16 23:55:12
ITEM *insert(ITEM **root, char*str)
{
ITEM *pos;
ITEM *tmp;
tmp = (ITEM *) *malloc(sizeof (ITEM));//領域取得
if(tmp == NULL){//取得領域失敗
return NULL;
}
//取得した領域の初期化
memset((void *)tmp, '\0', sizeof(ITEM));
strcpy(tmp -> str , str); //入力された文字列を領域に設定
//*rootに保存
if(*root == NULL){ //リストが空か?
*root = tmp ;
}
else{//リストの末尾を探して追加
pos = *root;
while(pos -> next != NULL){ //次はあるか?
pos = pos -> next;
}
pos -> next = tmp;
}
return tmp;
}
入力された文字列をリストに格納するプログラムの一部です。
しかしこれだと最後に入力した文字列が表示されなくて困っています。
おそらくこの部分に問題があると思うのですが、おかしい部分はあるでしょうか?

131:デフォルトの名無しさん
08/01/17 00:04:49
>>130
スレ違い
宿題だというなら>>1を読んでもう一度よく考えてみよう。

132:デフォルトの名無しさん
08/01/17 01:03:39
こういうのって再帰使って処理するほうが楽だと思うんだけど。

tmp->nextがNULLじゃ無いんじゃない?

133:デフォルトの名無しさん
08/01/17 01:05:50
NULLが0な処理系ならmemsetでNULLになってね?

それより、俺は返り値の意味があるのかとかmallocの前の*は何なのかとか気になるけど。

134:デフォルトの名無しさん
08/01/17 01:11:41
>>132
指摘ありがとうございます。
tmp->nextがNULLじゃ無いんじゃない? ってのは
while(pos -> next != NULLのことでしょうか?

>>133
mallocの前の*は、単なる消し忘れでした。

135: ◆gDKJL3vNys
08/01/17 01:18:59
>>127
ありがとうございます!
これからコンパイルして動作確認してみます
色々本当にありがとうございました

136:デフォルトの名無しさん
08/01/17 01:22:32
LEDを赤く光らせたり青く光らせたりすると面白そう

137:134
08/01/17 01:41:51
すいません。
自己解決しました。
なんかホントに的外しな質問をしてしまいましたw

138:デフォルトの名無しさん
08/01/17 01:54:44
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):正数nとbを10進数としてキーボードから入力すると、
 nをb進数で表示するプログラムを作成せよ。
 実行例
 24[enter]
 8[enter]
 24(10) = 30(8)
[3] 環境
 [3.1] OS:window
 [3.2] コンパイラ名とバージョン:BCC
 [3.3] 言語:C
[4] 期限:1/17
[5] その他の制限:特にありません

139:デフォルトの名無しさん
08/01/17 01:55:52
b進数の範囲は?

140:デフォルトの名無しさん
08/01/17 01:57:06
>>139
すみません、2~36でお願いします

141:デフォルトの名無しさん
08/01/17 02:14:42
>>138
#include<stdio.h>
const char *s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
void conv(int n,int b){
if(n>0){
conv(n/b,b);
putchar(*(s+n%b));
}
}
int main(void){
int n,b;
scanf("%d",&n);
scanf("%d",&b);
printf("%d(10)=",n);
conv(n,b);
printf("(%d)\n",b);
return 0;
}
てきとー。おやすみなさい。

142:デフォルトの名無しさん
08/01/17 04:45:59
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):文字列として入力した式(一行)を計算し、その値を表示するプログラム。
[3] 環境
 [3.1] OS:windows XP
 [3.2] コンパイラ名とバージョン:Visual Studio 8
 [3.3] 言語:C
[4] 期限:1/18
[5] その他の制限:少なくとも2つの2桁の整数に対する計算(四則演算)ができること。

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


143:デフォルトの名無しさん
08/01/17 08:46:29
【時間切れ】 (1/16)
>40

【未解決問題】
スレリンク(tech板:986番) 期限切れだが早めに (pass:c)

>>142 1/18
スレリンク(tech板:824番) 1/18
>>86 1/22
スレリンク(tech板:229番) 1/31
>>79 無期限

144:デフォルトの名無しさん
08/01/17 08:51:33
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク):円周上の点の複数の座標から円の中心(a,b)や半径rを求める
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2005 Express Edition
 [3.3] 言語: C++
[4] 期限: 無期限
[5] その他の制限: 特になし

145:デフォルトの名無しさん
08/01/17 08:57:26
>>144
点は3つでいいのかな?

146:デフォルトの名無しさん
08/01/17 09:07:47
>>145
100個ぐらいからです・・・。
まったくわからないんです。よろしくお願いします。。。

147:デフォルトの名無しさん
08/01/17 09:17:34
円を特定するには、一直線上にない異なる3点で必要十分じゃね?

148:144
08/01/17 09:21:01
すいません。問題間違いました。

正しくは、100個の座標からそれが円であるかどうか(完璧にきれいな円でなくてもよい)を判定するプログラムの作成でした。

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

149:デフォルトの名無しさん
08/01/17 09:25:05
判定方法は提示してもらわんとねぇ。

150:デフォルトの名無しさん
08/01/17 09:28:13
>>149
すいません!ハフ変換を使って判定します。
色々と足りないところだらけで申し訳ありません。。。

151:デフォルトの名無しさん
08/01/17 12:52:31
[1] 授業単元: プログラミング入門
[2] 問題文
(1)走行距離10kmまでは基本料金の6000円。10kmを超えた場合は、超えた距離に対して1kmあたり50円が加算される。
(2)深夜料金10時以降5時までは最終的な料金を2割増しする20キロを超えると1割引とする。
(3)迎車を使用した場合は400円として(1)~(3)を入力して料金を出力するプログラムを作れ。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2005 Express Edition
 [3.3] 言語: C
[4] 期限: 1月17日
[5] その他の制限:関数まで(初期の簡単なプログラムです)


152:デフォルトの名無しさん
08/01/17 12:53:06
151続き
(1)までのプログラム
#include<stdio.h>
main()
{
int run,price;
printf("走行距離(km)を入力せよ:");
scanf("%d",&run);
if(run<=10)
{
printf("料金は6000円です\n");
}
else
{
price=(run-10)*50+6000;
printf("料金は%d円です\n",price);
}
}

(2)と(3)お願いします。


153:デフォルトの名無しさん
08/01/17 13:09:10
「2割増しする20キロ」とか、「(1)~(3)を入力」とか、随分ややこしいな。

154:デフォルトの名無しさん
08/01/17 13:19:22
最初に乗ったキロと深夜かどうかなどの入力をさせてやろうとしたんですが・・・。できなくてとりあえず(1)までやってみました。ややこしくてすいません。

155:デフォルトの名無しさん
08/01/17 13:32:41
落ち着け、>153は皮肉だ。
以下、問題を列挙
・深夜料金の適用条件
例えば乗車時刻が21:59だったら? 或いは4:59だったら?
・迎車との関係
例えば呼んだのが21:59だったら? また、迎車時刻を指定されることはある?
・消費税の考慮
・タクシー料金にしては論外に高い初乗り料金

156:デフォルトの名無しさん
08/01/17 13:39:10
>155
指摘ありがとうございます。

判定条件が指定されてないので、今回は乗車時刻が22時~5時に一秒でもかかっていたら深夜料金として計算します。
迎車は有無のみで課金します。もし迎車を使用して深夜であれば最終的な料金は乗った距離の値段×深夜割増+迎車料金で出します。

消費税は考慮しません。確かに問題文法外な値段ですね^^;教授が意地悪なので・・・。

以上の点宜しくお願いします。

157:デフォルトの名無しさん
08/01/17 15:41:20
#include <stdio.h>
#include <malloc.h>
#define buffer_size 10
int main(int argc ,char *argv[])
{
FILE *fp;
fpos_t *start_fpos,*end_fpos;
char *buffer;
int n,option;
option=getopt(argc,argv,"rw");
switch(option){
case 'w':
fp=fopen(argv[1],"w");
buffer=(char *)malloc(buffer_size);
printf("文字列を書き込んでください\n");
scanf("%s",buffer);
fprintf(fp,buffer);
free(buffer);
break;
}
fclose(fp);
return 0;
}
指定したバッファサイズが入力文字数よりも小さい場合、
セグメンテーションエラーがでます。
#defineを変えないでmallocを使い書き加えるには何の関数を使えばいいですか?
ヒントをくださいませんか?よろしくお願いします。

158:デフォルトの名無しさん
08/01/17 15:47:11
>>157
buffer=(char *)malloc(buffer_size*100);

159:デフォルトの名無しさん
08/01/17 15:57:02
[1] 授業単元: C言語入門
[2] 問題文
キーボードから入力された文字列に指定した文字が何個
含まれているか表示するプログラムを作りなさい。

動作例:


 キーから文字を数文字入力してください= alpha-dog

 調べる文字を入力してください= a

 入力された文字列の中に a は、2 個ありました。


[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2005 Express Edition
 [3.3] 言語: C
[4] 期限: 1月17日
[5] その他の制限:

160:デフォルトの名無しさん
08/01/17 16:20:20
>>159
#include <stdio.h>
int main(void)
{
int i,num=0;
char str[100],ch;
printf("文字列を入力してください:");
gets(str);
printf("探す文字を入力してください:");
scanf("%c",&ch);
for(i = 0;str[i];i++)if(str[i]==ch)num++;
printf("%c は %d 個見つかりました",ch,num);
return 0;
}

161:157
08/01/17 16:42:11
正確な文字数でメモリ確保する方法ないですか?
ヒントください。

162:デフォルトの名無しさん
08/01/17 16:47:01
文字列が入力されるまで長さがわからないなら、事前にその文字数分確保する方法はないだろ。
多目に確保するのがどうしてもイヤならリストにでもしろよw

163:デフォルトの名無しさん
08/01/17 17:09:18
>>161
scanfを使わない

164:デフォルトの名無しさん
08/01/17 18:10:39
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):整数をm個入力してソートし、その後(2分)検索をn回行うプログラムを作りなさい(mとnは入力して決める)。ただし、できるだけポインタを利用した関数を作成して用いなさい。
[3] 環境
 [3.1] OS: (Windows Vista)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C)
[4] 期限: [2008年1月18日12:00まで]
[5] その他の制限:

お願いします。

165:デフォルトの名無しさん
08/01/17 18:18:26
>>161
多めに確保して、改めてmallocで宣言するくらいだな。

166: ◆cPUZU5OGFs
08/01/17 18:56:26
前スレ986の2分木の者です。
何とか解決出来たので>>143のリストから削除お願いします。
もし取り掛かってる方いましたらありがとうございました。

167:デフォルトの名無しさん
08/01/17 19:53:12
コンパイルは通るのですが、「メモリが"written"になることはできませんでした」というエラーが出てばっかりで、やりきれない気持ちでいっぱいになりました。
forループと複雑な計算を大量にしていると起こりやすい気がするのですが、その場合に考えられる特定の原因ってありますか?

168:デフォルトの名無しさん
08/01/17 19:56:50
ポインタじゃねえの?

169:デフォルトの名無しさん
08/01/17 19:59:44
[1] 授業単元: プログラミング1
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows、Unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 2008年1月17日21:00まで
[5] その他の制限: 図があるためリンクを押すとzipを開くようになっています。
            問題と図は無題.bmpです。ウイルスではありません。

お願いします。

170:デフォルトの名無しさん
08/01/17 19:59:52
>>168
試しにforループ内のiを逐一表示してみたのですが、i++なのに何故か途中でとんでもない数字に飛んだりします。
ポインタの扱いを間違っているって事ですか?

171:デフォルトの名無しさん
08/01/17 20:00:11
>>167
文章は読めたのですが、「こいつは一体何がいいたいんだ?」という疑問が出てばっかりで、
やりきれない気持ちでいっぱいになりました。
ソースを晒せばすぐに原因が分かる気がするのですが、それをしない特定の理由ってありますか?

172:デフォルトの名無しさん
08/01/17 20:00:19
>>169
すみません、URLをまちがえました

173:デフォルトの名無しさん
08/01/17 20:01:11
URLリンク(kansai2channeler.hp.infoseek.co.jp)

174:デフォルトの名無しさん
08/01/17 20:09:58
>>142
URLリンク(kansai2channeler.hp.infoseek.co.jp)

175:デフォルトの名無しさん
08/01/17 20:17:50
>>169
#include <stdio.h>
#include <stdlib.h>
int route(int m, int n)
{
if (m == 1 || n == 1) return 1;
else return route(m - 1, n) + route(m, n - 1);
}

int main(int argc, char *argv[])
{
if (argc != 3)
return 1;
int m = atoi(argv[1]), n = atoi(argv[2]);
printf("%d", route(m, n));
return 0;
}

176:デフォルトの名無しさん
08/01/17 20:23:58
>>175
実行してみたのですがなにも起こりませんでした・・・

177:167
08/01/17 20:26:46
>>171
やりきれない気持ちにさせてしまい申し訳ありません。私が分からないだけでよくある話かと思い、気軽に質問してしまいました。反省します。
プログラムが変な挙動をして強制終了する部分は下リンク先の大きなforループ内です。iが100を超えた瞬間にpointnの数値がオーバーフローします。プログラム自体は3ファイルに分かれていて長いので、ここに原因がなければ諦めます。

[1] 授業単元: 応用プログラミング
[2] URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: windowsXP
 [3.2] gcc32
 [3.3] cpp

178:デフォルトの名無しさん
08/01/17 20:31:59
>>177
症状が再現する最小のソースを示すのが礼儀だぞ。
widthやheightがどんな値を取るかもわからないでどうして答えられると思う?

179:デフォルトの名無しさん
08/01/17 20:34:28
なんでiが100超えるん?

180:デフォルトの名無しさん
08/01/17 20:36:16
>>179
ばっふぁおーばーふろー があれば簡単さw

181:デフォルトの名無しさん
08/01/17 20:36:50
>>176
引数に1以上与えればなんか出るはずなんだがな

182:デフォルトの名無しさん
08/01/17 20:40:12
>>181
すみません、こちらのミスでした。
ちゃんと実行できました。
ありがとうございました

183:デフォルトの名無しさん
08/01/17 20:42:47
>>179
バッファオーバーフローのテスト
コンパイラが自動変数をどこに配置するかによっても結果が変わるので
必ずしも何かが起こるとは限らない

/* 最適化をオフにしてコンパイルしてね */
#include <stdio.h>

int main(void){
int x=123;
int y[1]={456};
int z=789;

printf("x=%d z=%d\n", x, z);
y[1]=0;
printf("x=%d z=%d\n", x, z);

return 0;
}

184:デフォルトの名無しさん
08/01/17 20:47:55
point[100]なんだからiが100になっちゃいかんだろ。

185:183
08/01/17 20:50:44
>>177
i が pointn の数値以上になるということは
//後略
の部分に問題がある可能性が高いよ


>>179
ごめん勘違いしてた

186:167
08/01/17 20:52:22
>>178
最小に纏め上げるのが困難なもので…。
>>184
それでした。直した結果完璧に動きます。恥ずかしすぎる…。

みなさんご迷惑おかけしました。すれ汚しすみません。ありがとうございました。

187:デフォルトの名無しさん
08/01/17 20:59:58
別にまとめる必要すらないだろ。
まあ大方、全体を見せたくないとか言うんだろうが

188:デフォルトの名無しさん
08/01/17 21:13:50
>>167
pointn = (int)((rand()/(double)(RAND_MAX+1.0f))*100);//コア数
これだろ、、おかしいの。

189:デフォルトの名無しさん
08/01/17 21:19:01
>>174
文字列の式は固定ではなく、手動での入力なのです・・・。
自分の説明が不足していました、すみません。
あげていただいたプログラムを参考に、自分でももう少し頑張ってみます。

190:デフォルトの名無しさん
08/01/17 21:23:10
>>188
それ自体は0-99の乱数を発生させるだけで、おかしくなくね?
キャストはなくてもいいけど、あってまずいもんでもないし。

191:デフォルトの名無しさん
08/01/17 21:33:53
>>190
ぉぉぅ、たしかに普通に見間違えた。
>>167 なんでもないから>>188は普通にスルーしてくれ。
かき乱してすまん。

192:デフォルトの名無しさん
08/01/17 21:34:26
これだから情報を小出しにする奴は嫌いだ。。
どうせ原因は他にあるのに。

193:デフォルトの名無しさん
08/01/17 21:39:10
自分でここに原因があるって思って見つけられないときは
大方別のところに原因がある。
長かろうが短かろうが、主題さえはっきりしてれば別段読み解くのは難しくない。

てことで>>167ソースplz

194:デフォルトの名無しさん
08/01/17 21:41:21
もう終わってるんだけどw

195:デフォルトの名無しさん
08/01/17 23:56:16
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語: C
[4] 期限:1月22日
[5] その他の制限: 特にないです


196:デフォルトの名無しさん
08/01/18 00:07:14
【時間切れ】 (1/17)
>>151

【未解決問題】
>>164 1/18 12:00
>>142 1/18 >>172(手動入力)
スレリンク(tech板:824番) 1/18

>>86 1/22
>>195 1/22
スレリンク(tech板:229番) 1/31
>>79 無期限
>>144 無期限 問題文>>148

197:デフォルトの名無しさん
08/01/18 00:07:39
>インターネット上でファイルの転送に利用されるプロトコルは?(20点)
>[1] FTP, [2] POP, [3] PPP, [4] SMTP << 1
>正解です。

これってPOP&SMTPもファイル転送で使わね?添付ファイルてきな意味で。

198:デフォルトの名無しさん
08/01/18 00:13:10
>>144は最小二乗法の式作ってとくところからだな

199:デフォルトの名無しさん
08/01/18 00:24:39
>>197


200:デフォルトの名無しさん
08/01/18 07:26:58
>>スレリンク(tech板:824番) 
URLリンク(kansai2channeler.hp.infoseek.co.jp)


201:デフォルトの名無しさん
08/01/18 08:06:12
>>164
#include <stdio.h>
#include <stdlib.h>
int cmp( const void * l, const void * r ) { return *((int*)l)-*((int*)r); }
int main( int argc, char ** args ) {
int m, n, i, * data;
printf( "input m :" ); scanf( "%d", &m );
printf( "input n :" ); scanf( "%d", &n );
data = ( int * )calloc( m, sizeof( int ) );
if ( ! data ) { puts( "no memory."); exit(1) ; }
for ( i = 0; i < m; ++i ) scanf( "%d", &data[ i ] );
qsort( data, m, sizeof( int ), cmp );
for ( i = 0; i < n; ++i ) {
int * p, q;
printf( "search for >" ); scanf( "%d", &q );
p = bsearch( &q, data, m, sizeof( int ), cmp );
if ( p ) printf( "%d found at %d, %d\n", q, 1 + ( p - data ), data[ ( p - data ) ] );
else printf( "not found.\n" );
}
free( data );
return 0;
}


202:デフォルトの名無しさん
08/01/18 10:28:31
[1] 授業単元:プログラミング
[2] 問題文:問題①
      商品番号・商品名・個数・単価を対象とする構造体の配列を利用し、
      データを入力して、一覧表を表示するプログラムを作りなさい。ただし、
      各データごとに金額を、最後に合計金額を出しなさい。

      問題②
      上の問題の構造体の配列を利用し、データを入力した後、商品番号を
      並び替えを行い、その結果を一覧表として表示するプログラムを
      作りなさい。

[3] 環境
 [3.1] OS: (WindowsVISTA)
 [3.2] コンパイラ名とバージョン: (borland)
 [3.3] 言語: (C)
[4] 期限: ■■緊急■■本日1月18日正午まででお願いします。
[5] その他の制限: 特にありません。

203:デフォルトの名無しさん
08/01/18 12:42:14
[1] 授業単元:プログラミング
[2] 問題文:文字列を逆順にコピーする関数xcopyをポインタを用いて作り、確認のためのプログラムを作りなさい。ただし、xcopy(char*to,char*from)とします。なお、対象とするデータは通常の英数字とします。
[3] 環境
 [3.1] OS: (Windows VISTA)
 [3.2] コンパイラ名とバージョン: (borland)
 [3.3] 言語: (C)
[4] 期限: 1月18日
[5] その他の制限:

前102代目に書き込んだんですが見れなくなってしまったのでもう一度お願いします。

204:デフォルトの名無しさん
08/01/18 12:50:39
>>203
昔のスレからの拾い物

700 名前:デフォルトの名無しさん[sage] 投稿日:2007/12/06(木) 20:47:06
[1] 授業単元:C言語
[2] 問題文

要素数がnoであるint型の配列v2の並びを逆順にしたものを配列v1に格納する関数、
void intary_rcpy(int v1[],const int v2[],int no) {/…/}
を作成せよ

[3] 環境
[3.1] OS:Windows XP
[3.2] VS2005
[3.3] 言語:C++
[4] 期限: 12月7日(金)の午前中まで
よろしくお願いします

702 名前:デフォルトの名無しさん[sage] 投稿日:2007/12/06(木) 21:00:46
>>700
#include <algorithm>
void intary_rcpy(int v1[],const int v2[],int no){std::reverse_copy(v2, v2+no, v1);}

205: ◆vLIz8KOkPM
08/01/18 12:54:05
[1] プログラミンぐ演習
[2] URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3.1] Linux
[3.2] gcc
[3.3] C言語
[4] 今日15時まで

エラーの内容がわかりません…どなたか修正してください…

206:デフォルトの名無しさん
08/01/18 12:56:36
>>203
void xcopy(char *to, char *from)
{
char *p = from;
while(*p) p++;
while(p--!=from) *to++ = *p;
*to = '\0';
}


207:デフォルトの名無しさん
08/01/18 13:54:06
>>205
とりあえず その30行目を穴が開くまで読み返せ



new[ length ] = ’\0’;
single quotationが全角だ

208:デフォルトの名無しさん
08/01/18 14:32:38
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: [2008年01月18日23:59まで](本日中)
[5] その他の制限:

B_1は自力でいけましたが2に手が出ません;

209:デフォルトの名無しさん
08/01/18 16:20:22
>>208 B_2
#include <stdio.h>
#define N 20

void place_queen(int *x, int n, int k)
{
    int i, j;
    if(k == n){
        for(i = 0; i < n; i++)
            printf("%d ", x[i]);
        putchar('\n');
        return;
    }
    for(i = 0; i < n; i++){
        for(j = 0; j < k; j++)
            if(i == x[j] || k - j == i - x[j] || k - j == x[j] - i)
                break;
        if(j == k){
            x[k] = i;
            place_queen(x, n, k + 1);
        }
    }
}

int main(void)
{
    int n, x[N];
    printf("Input n : ");
    scanf("%d", &n);
    place_queen(x, n, 0);
    return 0;
}

210:デフォルトの名無しさん
08/01/18 16:43:55
>>208
URLリンク(kansai2channeler.hp.infoseek.co.jp)

211:デフォルトの名無しさん
08/01/18 18:13:00
>>208
URLリンク(kansai2channeler.hp.infoseek.co.jp)

212:211
08/01/18 18:20:51
>>208
URLリンク(kansai2channeler.hp.infoseek.co.jp)
ごめん、こっちで。

213:208
08/01/18 21:00:56
みなさんありがとうございます><;
参考にさせていただきました。非常に助かります

申し訳ないのですが、
もしよろしかったらこちらの方もお願いできませんか?
URLリンク(kansai2channeler.hp.infoseek.co.jp)

214:デフォルトの名無しさん
08/01/18 22:01:12
[1] 授業単元: プログラミング中級
[2] 問題文(含コード&リンク):random1.txt、random2.txtという名前の2つのファイルを
作成し、それぞれに0~100の範囲の乱数(整数)を20個ずつ書き込みなさい。
これら2つのファイルの内容を1行ずつ比較し、大きいほうの数をmax.txtに
書き込みなさい。
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン: わかりません。
 [3.3] 言語: C++
[4] 期限:無期限ですが、なるべく早く知りたいです。


215:214
08/01/18 22:02:59
途中まではやってみました・・

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

int main(void)
{
FILE *fout, *fout2, *fout3, *fin, *fin2;

int buf,buf2;
char filename2[]="random1.txt";
char filename3[]="random2.txt";
char filename4[]="max.txt";
int i;

printf("ファイルrandom1.txtを作成しました。\n");
printf("ファイルrandom2.txtを作成しました。\n");
printf("ファイルmax.txtを作成しました。\n");


216:デフォルトの名無しさん
08/01/18 22:03:22
>>213
良さそうな教授だなーとちょっと羨ましく思った。そんな俺は非情報学部。

217:214
08/01/18 22:03:42
続きです

fout=fopen(filename2,"w");
srand(time(NULL));
for(i=0;i<20;i++){
buf=rand()%101;
fprintf(fout,"%d\n",buf);
}

fout2=fopen(filename3,"w");
for(i=0;i<20;i++){
buf2=rand()%101;
fprintf(fout2,"%d\n",buf2);
}

fin = fopen(filename2, "r");
if(fin == NULL){
printf("%dをオープンできません\n", filename2);
exit(1);
}

218:デフォルトの名無しさん
08/01/18 22:07:50
[1] 授業単元:CプログラミングⅠ
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:分かりません
 [3.3] 言語:C++
[4] 期限:2008年1月19日 09:00
[5] その他の制限:特にありません
よろしくお願いします!

219:214
08/01/18 22:08:01
fin2 = fopen(filename3, "r");
if(fin2 == NULL){
printf("%dをオープンできません\n", filename3);
exit(1);
}

fout3=fopen(filename4,"w");
while(1){
if (fscanf(fin,"%d",buf)==EOF) break;
if (fscanf(fin2,"%d",buf2)==EOF) break;

if(buf>buf2){
fprintf(fout3,"%d\n",buf);
}
else fprintf(fout3,"%d\n",buf2);
}

fclose(fout);
fclose(fout2);
fclose(fin);
fclose(fin2);
fclose(fout3);

return 0;
}

220:デフォルトの名無しさん
08/01/18 22:16:02
>>214 すこしせこいがこれじゃだめかね
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
FILE *fran1, *fran2, *fmax;
char filename1[] = "random1.txt";
char filename2[] = "random2.txt";
char filename3[] = "max.txt";
int i, buf1, buf2;
if ((fran1 = fopen(filename1, "w")) == NULL ||
(fran2 = fopen(filename2, "w")) == NULL ||
(fmax = fopen(filename3, "w")) ==NULL) {
printf("ファイルが作れません\n");
return -1;
}
printf("ファイルrandom1.txtを作成しました。\n");
printf("ファイルrandom2.txtを作成しました。\n");
printf("ファイルmax.txtを作成しました。\n");
srand(time(NULL));
for (i = 0; i < 20; ++i) {
buf1 = rand()%101;
buf2 = rand()%101;
fprintf(fran1, "%d\n", buf1);
fprintf(fran2, "%d\n", buf2);
fprintf(fmax, "%d\n", (buf1 >= buf2) ? buf1 : buf2);
}
fclose(fran1);
fclose(fran2);
fclose(fmax);
return 0;
}

221:デフォルトの名無しさん
08/01/18 22:30:26
れいぷれいぷ

222:デフォルトの名無しさん
08/01/18 22:35:46
長くなるんならアップロードしろ

223:デフォルトの名無しさん
08/01/18 22:36:53
すいません
丸投げじゃないんですが、
どこで聞いてもわからないのでわかるかたいたらおねがいします・・

”数値を文字列として入力して、一桁ずつを配列にいれて和・差・積を出す”
って問題で、ここでプログラム作ってもらったんですがわかんないとこがあって、、

↓これ、積の計算らしいんですけどどういう意味ですか(∵)?

int i, j, carry;

// 最大100桁になるので2N桁を0に初期化
for( i = 0 ; i < 2 * Max_Length ; i++ ) a[i] = 0;

for( i = 0 ; i < Max_Length ; i++ ) {
carry = 0;
for( j = 0 ; j < Max_Length ; j++ ) {
a[i+j] += b[i] * c[j] + carry;
carry = a[i+j] / 10;
a[i+j] -= carry * 10;

詳しく説明できるかたいたらお願いします、、


224:デフォルトの名無しさん
08/01/18 22:37:47
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語: C 言語
[4] 期限:1月22日
[5] その他の制限: 



225:214
08/01/18 22:43:53
>>220さん
ありがとうございます。
ただ、
fprintf(fmax, "%d\n", (buf1 >= buf2) ? buf1 : buf2);
がよくわかりません。。
?や:の使い方習っていなんです。
bufとbuf2を比較して表示するところがどうしてもできません。


226:220
08/01/18 22:47:35
if (buf1 >= buf2) {
fprintf(fmax, "%d\n", buf1);
} else {
fprintf(fmax, "%d\n", buf2);
}
こういうこと。使い方は三項演算子でぐぐれ。

227:デフォルトの名無しさん
08/01/18 22:47:48
>>225
if (buf1 >= buf2)
fprintf(fmax, "%d\n", buf1);
else
fprintf(fmax, "%d\n", buf2);

228:デフォルトの名無しさん
08/01/18 23:05:12
>>223
情報を小出しにしない方がいい(・3・)YO
筆算と同じ手順と考えたらいい


229:デフォルトの名無しさん
08/01/18 23:43:09
[1] C言語入門
[2] 文字列の入れ替え
[3] 環境
 [3.1] Windows XP
 [3.2] bcc55
 [3.3] C言語
[4] 1週間後
[5] 最初と最後の文字を入れ替える

動作例
文字を入力しる:12345
52341

お願いします。

230:デフォルトの名無しさん
08/01/19 00:04:48
【時間切れ】 (1/18)
>142 >202 >213 ? 

【未解決問題】
>>218 1/19 9:00

>>86 1/22
>>195 1/22
>>224 1/22
>>229 1/25
スレリンク(tech板:229番) 1/31
>>79 無期限
>>144 無期限 問題文>>148

231:デフォルトの名無しさん
08/01/19 00:05:09
[1] 授業単元:プログラミング
[2] 問題文:
グレゴリウス暦の定義を利用して入力された日は何曜日か計算しなさい
西暦1年1月1日は月曜日とする
1年は通常365日ですが閏年は366日
4で割り切れる年は閏年
100で割り切れる年は閏年ではない
400で割り切れる年は閏年
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語: C
[4] 期限:1月21日
[5] その他の制限:
変数名、関数名の命名規約を作成
goto文は使用しない
開発途中でのreturn  プログラム途中でのexitはしない事
よろしくお願いします。

232:デフォルトの名無しさん
08/01/19 00:05:10
142ですが、課題のほうは一応どうにかなったので報告。
取り組んでいただいた方、ありがとうございました。


233:デフォルトの名無しさん
08/01/19 00:09:09
>>218
/* 適切なプリプロセッサ */
#define NAMEMAX 10
#define BIRTHMAX 8
#define N 10
/* Record型構造体の定義 */
typedef struct recoord {
char personal[NAMEMAX], birth[BIRTHMAX];
double height, weight;
}Record;
/* outputData関数の定義 */
void outputData(int n, Record *r)
{
printf("%d人目の出力\n", n);
printf("名前は\t\t%s\n", r[n].personal);
printf("生年月日は\t%*s\n", BIRTHMAX, r[n].birth);
printf("身長は\t\t%4.1lf\n", r[n].height);
printf("体重は\t\t%3.1lf\n", r[n].weight);
}

/* calcBMI関数の定義 */
void calcBMI(int n, Record *r)
{
printf("%d人目のBMIは\t%4.2lf\n", n+1, r[n].weight/pow(r[n].height/100, 2.0));
}

234:デフォルトの名無しさん
08/01/19 00:13:14
>>231
#include<stdio.h>
int weekday(int y,int m,int d){
if(m<3)y--,m+=12;
return (y+y/4-y/100+y/400+(m*13+8)/5+d)%7;
}
int main(void){
int y,m,d;
printf("年 = ");scanf("%d",&y);
printf("月 = ");scanf("%d",&m);
printf("日 = ");scanf("%d",&d);
printf("日 月 火 水 木 金 土\n%*s↑\n",weekday(y,m,d)*3,"");
return 0 ;
}

235:デフォルトの名無しさん
08/01/19 00:17:22
>>234
問題文見る限りツェラーの公式は使えん希ガス

236:デフォルトの名無しさん
08/01/19 00:23:22
>>235
>変数名、関数名の命名規約を作成
って書いてあるくらいだからいいんじゃない?

237:デフォルトの名無しさん
08/01/19 00:25:28
[1] 授業単元:C入門
[2] 問題文 英文の文字列を入力した場合,文字数・単語数・文章数を求めるプログラムを作成せよ。
英文中の特殊文字は(,(カンマ).(ピリオド)!(イクスクラメーション)?(クエスチョンマーク))のみとする。単語の間には1つ以上(2つ以上でも可)のスペースが入れるものとする。
文章の最後には必ず .(ピリオド)!?のどれかが単独で使われる。,(カンマ)や.(ピリオド)!?の後にスペースが入る可能性があるが前にはスペースは入らないものとする。
省略につかう .(カンマ)は今回はないものとする。

 入力に関して
   キーボードから,文字列を一行で入力
 出力に関して
   文字数・単語数・文章数をそれぞれスペース1つあけて1行で出力(+改行)[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Study C
 [3.3] 言語:C
[4] 期限:1月22日14:00
[5] その他の制限:一年なのでそこまで難しいのはつかわずにお願いします。


238:デフォルトの名無しさん
08/01/19 00:28:32
[1] C言語
[2] 500パターン(test000~test499)のファイルを用いてそれらのハッシュ値を求めるプログラム。
(ファイルを読み込む際、手動で500パターン打ち込むのは大変なので
そこもプログラムで自動的に次々とファイルを読み込むようにしていただけたら嬉しいです)

[3]
 [3.1]Mac OS X
 [3.2]よくわかりません
 [3.3]C
[4]1/19(土)
[5]特になし


よろしくお願いします。

239:デフォルトの名無しさん
08/01/19 00:29:35
>>236
>西暦1年1月1日は月曜日とする
ってのが生きてこなくなるんじゃね?
まあどうでもいいかもしれんが

240:デフォルトの名無しさん
08/01/19 00:31:45
>>229
#include<stdio.h>
int main(void){
char buf[0x100];
int i;
printf("文字を入力しる:");
fgets(buf,sizeof(buf),stdin);
for(i=0; buf[i]; ++i)if(buf[i]=='\n')break;
putchar(buf[i-1]);
buf[i-1] = '\0';
printf("%s",buf+1);
putchar(buf[0]);
return 0;
}
表示上では入れ替えてると思う

241:デフォルトの名無しさん
08/01/19 00:38:23
>>195
URLリンク(kansai2channeler.hp.infoseek.co.jp)

データはこんな感じで
静止画の圧縮技術と最も関係深いものはどれ?
[1] ITU-T H.261,[2] JPEG,[3] MIDI,[4] MPEG
2
10
131-45=53が成り立つのは何進法のときか?
[1] 3, [2] 7, [3] 11, [4] 13
2
10

242:デフォルトの名無しさん
08/01/19 00:46:55
>>239
それを生かすソース頼む

243:デフォルトの名無しさん
08/01/19 00:47:20
>>240
ありがとうございます。
ただ、課題の紙にヒントみたいのがあって
char a ='X' ;
char b ='Y' ;
char c ;

c = a
a = b
b = c
って代入していく方法があるよって書かれてました。
今見つけたので前のレスで書けなくてすいませんでした。
でも教えてくれたものも正しく動くので、これでいこうと思います。
もし、お暇でしたら代入するヒントを活用したものも考えてもらえると嬉しいです。

244:デフォルトの名無しさん
08/01/19 00:53:38
>>243
#include <stdio.h>
int main () {

char in[1024], c;
int i;
scanf("%s", in);

for (i = 0; i < sizeof(in) && in[i] != '\0'; ++i);

c = in[0];
in[0] = in[i-1];
in[i-1] = c;

printf("%s\n", in);
return 0;
}


245:デフォルトの名無しさん
08/01/19 00:53:51
>>237
こんなんで良いか?
#include <stdio.h>

#define MAX 1024

int main()
{
int c,i=0,j;
char ary[MAX] = {'\0'};
while((c = getchar())!='\n' && i < MAX){
if(c != '.' && c != ','&& c != '!'&& c != '?')
ary[i] = c;
i++;
}
for(j = 0; j < i;j++){
if(ary[j] != ' ')
putchar(ary[j]);
else if(ary[j] == ' ')
putchar('\n');
}
return 0;
}

246:デフォルトの名無しさん
08/01/19 00:59:26
>>242
ソースじゃないけど、俺が考えたのは入力した年月日と1年1月1日
との日数の差を出してから7で割って割り切れたら月曜、1余ったら火曜、、、
ってやるのかなー?と


247:デフォルトの名無しさん
08/01/19 01:01:16
>>243
putchar(buf[i-1]);
buf[i-1] = '\0';
printf("%s",buf+1);
putchar(buf[0]);
を削除して、char c;を追加
c = buf[i-1];
buf[i-1] = buf[0];
buf[0] = c;
printf("%s",buf);


248:231
08/01/19 01:11:54
>>234
ありがとうございます
結構早くできてて驚きました
>>235
そうなんですか?3日前から勉強しだしたんでよくわかりません
ツェラーの公式以外だとどんな感じになるんでしょうか?

249:デフォルトの名無しさん
08/01/19 01:22:04
>>245 つくっていただいてありがとうございます。
英文の文字列を入力した場合,文字数・単語数・文章数を表示する部分お願いします

250:デフォルトの名無しさん
08/01/19 01:34:38
>>248
ゴリ押しでやるとこんな感じ。

#include <stdio.h>

int main () {

int y, m, d, sum = 0;
int m_array[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
char *week[7] = {"日", "月", "火", "水", "木", "金", "土"};
printf("input (e.g. ****/**/**)\n>>");
scanf("%d/%d/%d", &y, &m, &d);

if (m > 2 && y % 4 == 0 && (y % 100 != 0 || y % 400 == 0)) {
++sum;
}

for (m -= 2; m >= 0; --m) {
sum += m_array[m];
}

--y;

sum = sum + y * 365 + y / 4 - y / 100 + y / 400 + d;
printf("%s曜日", week[sum%7]);
return 0;
}


251:231
08/01/19 01:58:56
>>250
あ、多分それだと思います
こんな時間につくってもらってホントありがとうございます

252:デフォルトの名無しさん
08/01/19 02:04:54
>>237
なんか作っててめんどくさくなった
#include <stdio.h>

#define MAX 1024

int main()
{
int c,i=0,j,k,word=0,letter=0,wnum=0;
char ary[MAX] = {'\0'};
while((c = getchar())!='\n' && i < MAX){
if(c == '.' || c == '!'|| c == '?')
letter++;
if(c != '.' && c != ','&& c != '!'&& c != '?')
ary[i] = c;
if(c ==' ' && i>0 ){
k = i -1;
if(c ==' ' || ary[k] == '!'|| ary[k] == '?')
word++;
} i++; }
for(j = 0; j < i;j++){
if(ary[j] != ' '){
putchar(ary[j]);
wnum++;
}
else if(ary[j] == ' ')
putchar('\n');
}
printf("\n文字数=%d 単語数=%d 文章数=%d \n",wnum,++word,letter);
return 0;
}


253:デフォルトの名無しさん
08/01/19 04:17:00
>>161
当方で確認した環境は WindowsXP, 処理系は cygwin(gcc 3.4.4) です。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
fgets(), realloc(), strcat() を使いました。

254:211
08/01/19 08:02:26
>>213
出勤前のお遊び。
追加するのはいいけど、ちゃんとテンプレで。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

255:デフォルトの名無しさん
08/01/19 08:08:43
>>233
解決しました,ありがとうございます!

256:デフォルトの名無しさん
08/01/19 09:32:16
>>224
URLリンク(kansai2channeler.hp.infoseek.co.jp)

データの形式が解らなかったので一行に1つとしてある。
ファイル名はコマンドラインから与える形にした。
あと、stdlib.hをインクルードし忘れてたので追加して。

257:デフォルトの名無しさん
08/01/19 11:11:17
【質問テンプレ】
[1] 授業単元: 基礎プログラミング
[2] 問題文(含コード&リンク):
入力された値nに対して、f(1)=f(2)=1、f(n)=f(n-1)+f(n-2)となるフィボナッチ数f(n)を表示するプログラミングを再帰を用いて作成せよ。
そのとき、関数fが呼ばれた回数をカウントして表示せよ。n=3,4,…,10のときにそれぞれ関数fが何回呼ばれたか調べよ。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 
[3.3] 言語:C
[4] 期限: できれば1月20日まで
[5] その他の制限:特にないと思われるけど。とりあえず再帰関数・構造体のところなので。

よろしくお願いします。

258:デフォルトの名無しさん
08/01/19 11:34:03
>>256
ありがとうございます。
ファイルはこれです。URLリンク(kansai2channeler.hp.infoseek.co.jp)

259:デフォルトの名無しさん
08/01/19 11:43:10
画像のピクセル間ごとの輝度を取得して、配列に格納するようなプログラム教えていただけませんか?
例えば100*100の画像なら、x[0][0]に座標0,0の輝度が格納されていくようなものです。

260:デフォルトの名無しさん
08/01/19 11:44:34
>>259
マルチ。

261:デフォルトの名無しさん
08/01/19 11:52:57
>>257
#include <stdio.h>
int call_count = 0;
int f(int n)
{
call_count++;
if(n == 1 || n == 2)
return 1;
else
return f(n - 1) + f(n - 2);
}
int main()
{
int n;
for(n = 3 ; n <= 10 ; ++n){
call_count = 0;
printf("f(%d) = %d\t(call count: %d)\n", n, f(n), call_count);
}
return 0;
}

262:デフォルトの名無しさん
08/01/19 12:22:02
【質問テンプレ】
[1] 授業単元: 置き換え方ステガノグラフィ
[2] 問題文(含コード&リンク):
100*100のbmp画像を4つの50*50のブロックにわけ
各ブロックの輝度を計算し、左上からABCDとする。
(a)A>Bのとき0 B>Aのとき1とし
(b)C>Dのときは0 D>Cのときは1とする

仮に(a)=1,(b)=0という出力が得たとし
ここで入力値(a')=0,(b')=1とするとき
ブロック毎の輝度を調節し、画像を出力しなさい。
また再度計算させ出力が(a)=0,(b)=1として得られること

ここでの輝度計算は、(r*0.299)+(b*0.587)+(g*0.114)を使いなさい

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual C++ 2005
 [3.3] 言語: C++
[4] 期限:1月21日
[5] その他の制限:無制限

263:デフォルトの名無しさん
08/01/19 13:10:33
>>262
bmpの読み込みってMFCのCImageとか使って書くの?

264:デフォルトの名無しさん
08/01/19 13:27:59
>>263
使っても平気です。


265:デフォルトの名無しさん
08/01/19 13:50:23
[1] 授業単元:プログラミング入門
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 今日中

266:デフォルトの名無しさん
08/01/19 14:16:14
>>265
>>254

267:265
08/01/19 14:17:59
>>266
見落としてました;
ありがとうございます

268:デフォルトの名無しさん
08/01/19 16:22:21
[1] 授業単元:プログラミング初級
[2] 問題文(含コード&リンク):名前(char)、身長(double)、体重(double)、視力(視力構造体)これらのデータをメンバとする構造体を定義し、入力された表示を行うプログラムを作成してください。
入力件数は、最大5件で、名前は19文字までの入力とし、範囲外だったならばエラーメッセージ(Sorry. Input less than 20 characters.)を表示し再入力して下さい。名前に"END"が入力されたときは入力終了とします表示は身長で昇順にソートして出力して下さい
また身長、体重は、小数点第以下一位までの表示とします。視力は、小数点以下第三位までの表示とします
出力の幅は、名前が19文字文、その他は5文字分で指定してください
視力は右(double)、左(double)をメンバとする構造体で扱って下さい
1件分の入力はibput_data()で、表示はdisplay_data()で、ソートはsort_data()でと処理を関数に分けて行ってくださ
名前入力の最初に"END"が入力された場合は、その旨のメッセージ(Input data is nothing!)
を出力してください
[3] 環境
 [3.1] OS : windows
 [3.2] コンパイラ名とバージョン: Visual C++ 2005
 [3.3] 言語: C言語
[4] 期限:1月21日

269:デフォルトの名無しさん
08/01/19 20:29:14
宿題じゃないと駄目?

270:デフォルトの名無しさん
08/01/19 20:44:36
>>262
こんなんでいい?
URLリンク(kansai2channeler.hp.infoseek.co.jp)

271:デフォルトの名無しさん
08/01/19 20:46:49
>>269
速攻で答えてやんよ
 ∧_∧
 ( ・ω・)=つ≡つ
 (っ ≡つ=つ
 /   ) ババババ
 ( / ̄∪

272: ◆8QYSceiIsU
08/01/19 21:04:42
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク)

適当な数字を与えてその数だけ「<」を使いそれに対応する「>」の例を全て表示するプログラムを作れ


2を与えた場合
<<>>
<><>

3を与えた場合
<<<>>>
<<>><>
<<><>>
<><><>

と表示する

[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:cygwin
 [3.3] 言語:C
[4] 期限:2008/01/20(日)

お手数ですが、よろしくおねがいします

273:shogo
08/01/19 21:11:56
【質問テンプレ】
1 西暦1868年から2007年までの年号を入力して和暦に変更して出力するプログ
 ラムを作りなさい。(10点)
 例 入力 1868  出力 明治元年
      2007     平成19年
2 整数配列が–32768から32767の範囲の数しか扱えないとしたとき、10桁の整数同士
 の足し算を行うプログラムを作りなさい。(10点)
3 3桁の整数の値を入力していき、-9999が入力されたところで、それまでに入力
 された数の個数と合計を整数で、平均を浮動小数点数で出力するプログラムを作りなさ
 い。(10点)
4 3つの文字列”Happy”と“New”と“Year”をつないで1つの文字列として出力する
 プログラムを作りなさい。(10点)
5 学籍番号、氏名、出席からなる10人分のデータがある。出席の悪いものから並び替
 えて表示するプログラムを作りなさい。(10点)
 例
 BA180002 山田太郎 70
 BA170001 石田次郎 60
 データは、適当なものを各自用意して入力すること。
 

274:デフォルトの名無しさん
08/01/19 21:19:39
>>272
3を与えた時、<><<>>は含まないの?

275: ◆8QYSceiIsU
08/01/19 21:23:05
>>274
<><<>>は含みません!

276:デフォルトの名無しさん
08/01/19 21:25:58
>>275
理由は? 272の条件文からじゃ含むように思うんだけど。

277:デフォルトの名無しさん
08/01/19 21:31:10
反転すりゃ同じになるものは省きたいんじゃないかな?

278:269
08/01/19 21:34:12
>>271
よろしくお願いしまーす。
[1] 授業単元:なし
[2] 問題文(含コード&リンク):
(URLリンク(kansai2channeler.hp.infoseek.co.jp))
[3] 環境
 [3.1] OS: (WindowsXPsp2)
 [3.2] コンパイラ名とバージョン: (BCC55-BCC Developer1.2.21)
 [3.3] 言語: (どちらでも可)
[4] 期限: ([無期限]だけど早ければうれしい )

279: ◆8QYSceiIsU
08/01/19 21:34:51
>>276
すみません、<<>><>と<><<>>は括弧の計算としては同じだからだと思っていましたが、そのような指定はありませんでしたorz

とりあえず
<>><<>や><<>><とかはダメだそうです


280: ◆8QYSceiIsU
08/01/19 21:37:22
>>276さん
たびたびすいません、今確認したところ>>277さんの言うとおりでしたorz

281:269
08/01/19 21:37:22
sorry!!URL修正です
URLリンク(kansai2channeler.hp.infoseek.co.jp)

282:デフォルトの名無しさん
08/01/19 21:38:01
>>279
それがダメなのは言われなくても分かるってw

283:257
08/01/19 21:48:13
>>261
ありがとうございます

284:デフォルトの名無しさん
08/01/20 00:07:49
【時間切れ】 (1/19)
>238

【未解決問題】
>>272 1/20

>>268 1/21
>>86 1/22
>>195 1/22
スレリンク(tech板:229番) 1/31
>79 無期限
>144 無期限 問題文>>148
>278 無期限

>273 ??

285:デフォルトの名無しさん
08/01/20 00:34:34
>>272
再帰で簡単に書けるかと思ったらすごいことになってしまったorz
URLリンク(kansai2channeler.hp.infoseek.co.jp)
もっと簡単に書けるもんかね?

286:デフォルトの名無しさん
08/01/20 00:40:31
>>285
ワラタ

287:デフォルトの名無しさん
08/01/20 01:17:06
>>285
対象排除してなくないか?

288:デフォルトの名無しさん
08/01/20 01:30:36
>>238どなたかできませんか?
よろしくお願いします。

289:デフォルトの名無しさん
08/01/20 01:32:47
ファイルの書式も書かずに催促とな

290:285
08/01/20 01:32:51
うは、結局対称だめってことだったのね。。。
もう力尽きたお。てか、意外と難しくない?

291:デフォルトの名無しさん
08/01/20 01:33:08
>>288
もう期限過ぎてるからいいじゃん別に

292:デフォルトの名無しさん
08/01/20 01:35:25
>>290
入れ子がややこしいな
俺がアホなだけかも試練が

293:デフォルトの名無しさん
08/01/20 01:41:20
<<><<>>><>
<<<>><>><>
例えばこういうのも別の要素として扱われるのかね。
そうだとしたら面倒くさいな。

294:デフォルトの名無しさん
08/01/20 01:49:46
>>268
URLリンク(kansai2channeler.hp.infoseek.co.jp)

295:デフォルトの名無しさん
08/01/20 01:56:46
>>272
URLリンク(kansai2channeler.hp.infoseek.co.jp)
< がn個、> がn個の文字列を求めるだけなら、再帰に加え
コールバックを使うと短く書ける。最初から条件に合う
文字列を効率よく出すやり方は分からない。

# あまり確認してないのでプログラムは間違ってるかもしれん。

296: ◆8QYSceiIsU
08/01/20 02:06:31
>>285
ありがとうございます!感激です!

>>293
俺の考えですが、多分同一とみなすと思います

>>295
ありがとうございます!こんなプログラム…俺には難しくて作れませんorz

297:デフォルトの名無しさん
08/01/20 08:07:10
>>272
URLリンク(kansai2channeler.hp.infoseek.co.jp)
正直やりすぎた

298:デフォルトの名無しさん
08/01/20 09:18:24
>>272 対象もでてしまうけど
#include<stdio.h>
#include<stdlib.h>
void disp(char *p){
for(;*--p;);
puts(p+1);
}
void brace(char *work, int brace_num, int depth){
if(depth==0 && brace_num==0){
*work='\0';
disp(work);
}
if(depth>0){
*work='>';
brace(work+1, brace_num, depth-1);
}
if(brace_num>0){
*work='<';
brace(work+1, brace_num-1, depth+1);
}
}
int main(int argc, char *argv[]){
int brace_num=3;
char *work;
if(argc==2) brace_num=atoi(argv[1]);
work=malloc(brace_num*2+2);
*work='\0';
brace(work+1, brace_num, 0);
free(work);

return 0;
}

299:デフォルトの名無しさん
08/01/20 10:01:56
1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3.1] OS:XP
[3.2] コンパイラ名とバージョン:cygwin
[3.3] 言語:C
[4] 期限:2008/01/21

お願いします

300:デフォルトの名無しさん
08/01/20 11:01:01
>>299
mainの
student std[]={

301:デフォルトの名無しさん
08/01/20 11:03:42
途中送信してしまった

>>299
mainの
student std[]={};

student std[NUMB];
にするだけで動く。平均はsougouを5で割ればいいだけ。
てかちゃんと内容を書け。

302:デフォルトの名無しさん
08/01/20 12:31:20
>>273
適当だが。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

303:デフォルトの名無しさん
08/01/20 14:10:15
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:本日11:30まで
[5]その他の制限:単位がかかっているので、どなたか回答の方をお願いしますorz

304:デフォルトの名無しさん
08/01/20 14:20:12
まじめにやらなかったから単位を落とすんだろ?自然なことじゃないか

305:デフォルトの名無しさん
08/01/20 14:39:12
>>303
[4] 期限:本日11:30まで
DATE:2008/01/20(日) 14:10:15

最初から期限切れてるじゃん

306:デフォルトの名無しさん
08/01/20 14:40:53
午後なら、11:30PMか23:30と書くべきだな。

307:デフォルトの名無しさん
08/01/20 14:43:53
>>304
スイマセン……頑張っても頑張っても理解を超えた内容でした
>>305 >>306
ややこしくてすいません。23:30です

308:デフォルトの名無しさん
08/01/20 14:59:47
>>307
下手に頑張っても頑張っても…とか書かれると、どう頑張って何を身につけたのか訊きたくなるじゃないか。
頑張ったからには途中まで出来ているだろうから、そこまでのソースを見せろ、とかね。

309:デフォルトの名無しさん
08/01/20 15:10:17
単位がかかっていると言われると期限過ぎてから回答したくなる

310:デフォルトの名無しさん
08/01/20 15:16:37
>>309
サディスト吹いたわw

311:デフォルトの名無しさん
08/01/20 15:21:45
ここに丸投げして課題をクリアしようとした自分が間違っていました。すいません
今から苦Cでもう一度基礎から勉強して何とかやってみます
見苦しいレスばかりしてしまい、申し訳ありませんでした

312:デフォルトの名無しさん
08/01/20 15:29:22
別に間違ってないんじゃない?
ただ「~がかかっている」とか理由をつけて解答を迫ってるのが
人によっては癪に障るだけで。

313:デフォルトの名無しさん
08/01/20 15:41:42
ちょっと待て、「苦C」って「苦しんで覚える……」か?
あんなサイトで基礎から勉強するから見につかないんだと思うぞ。

314: ◆8QYSceiIsU
08/01/20 15:49:45
>>298
3しか出ないのですが、どこを書き換えればいいですか?

315:デフォルトの名無しさん
08/01/20 15:51:32
>>314
>>298のレスを3で検索かけてみればいいだろ

316: ◆8QYSceiIsU
08/01/20 15:55:00
>>315
int brace_num=3;のところだと思うのですが、そこをどう書き換えればいいのかわからないのですorz

scanfだと思っていろいろいじったのですがエラーになってしまって…

317:デフォルトの名無しさん
08/01/20 16:15:10
scanfもわからないのに再帰を提出するのはまずいと思うぞw

318: ◆8QYSceiIsU
08/01/20 16:17:01
>>317
今は提出だけが目的なんで…すみませんorz

319: ◆1FgF6ehpzk
08/01/20 16:17:50
>>238だが、>>288お前なりすましか?
注意書き通り名前のところにトリップ入れておけばよかった。


スレ汚しすまん。
もう消える。

320:デフォルトの名無しさん
08/01/20 16:24:17
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語: C
[4] 期限:1月21日




321:デフォルトの名無しさん
08/01/20 16:50:13
>>301
ありがとうございます!なんでエラーがおこるのかわからなくて相当困ってました。

322:デフォルトの名無しさん
08/01/20 16:59:35
>>272
URLリンク(kansai2channeler.hp.infoseek.co.jp)
<<><>><<>><>
<<><>><><<>>
<<>><<><>><>
みたいに入れ子関係を変えない並び替えで同じになるものは同一とみなした.
これってグラフ理論とかの講義?


323: ◆8QYSceiIsU
08/01/20 17:07:17
>>322
ありがとうございます!
これはゼミの問題でしたσ(^_^;)アセアセ...

324:デフォルトの名無しさん
08/01/20 17:41:22
[1] 授業単元:文字列
[2] 問題文:
最大50文字で文字列を読み取り、
その文字数を出力するプログラム
(例:aiueo=5文字)

[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:?
 [3.3] 言語:C++
[4] 期限: 2008年1月20日22:00まで
[5] その他の制限:


お願いします(ノ_・。)

325:デフォルトの名無しさん
08/01/20 17:46:55
>>324
#include<iostream>
#include<string>
int main()
{
std::string str;
std::cin>>str;
std::cout<<str.size()<<"文字"<<std::endl;
return 0;
}

326:デフォルトの名無しさん
08/01/20 17:47:24
>>324 は削除でお願いします!!
ごめんなさい..

[1] 授業単元:
[2] 問題文:
数値を文字列として2つ入力し、
大小を求めるプログラムを作成せよ
(例:52846>48426)
[3] 環境
 [3.1] OS:WindowsVista
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C++
[4] 期限:2008年1月20日22:00まで
[5] その他の制限:

お願いします(ノ_・。)

327:デフォルトの名無しさん
08/01/20 17:48:16
>>325
ありがとうございます!!

328:デフォルトの名無しさん
08/01/20 17:50:40
>>326
int main(void)
{
using namespace std;
int a, b;
cin >> a;
cin >> b;
cout << max(a,b) << ">" << min(a,b) << endl;
return 0;
}

329:デフォルトの名無しさん
08/01/20 18:03:55
>>320
URLリンク(kansai2channeler.hp.infoseek.co.jp)

330:269
08/01/20 18:09:26
プリーズ、プリーズ

331:デフォルトの名無しさん
08/01/20 18:16:18
>>326

#include <iostream>

int main (int argc, char **argv) {
using namespace std;
int a, b;
cout << "数字を二つ入力してよ" << endl;
cin >> a >> b;
cout << a << (a == b ? "=" : (a < b ? "<" : ">")) << b << endl;
}      


332:デフォルトの名無しさん
08/01/20 18:20:46
>>330
問題文が理解不能だった

333:デフォルトの名無しさん
08/01/20 18:56:02
>>330 >>278
とりあえずA.txtとB.txtとC.txtの見本みたいのがないとよくわからんな
あと樹形図化ってあるけど、どういう規則の木構造なのかもわかるとうれしい

334:デフォルトの名無しさん
08/01/20 19:11:11
まじで何回も聞いてますができません↓
わかるかたお願いします↓


[1] 授業単元:
[2] 問題文:

最大50文字の数値を文字列として2つ入力して、
その差を求めるプログラムを作成せよ。
なお、最初に入力したものから後に入力したものを引くこととする

[3] 環境
 [3.1] OS:WindowsVista
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C++
[4] 期限:2008年1月20日23:00まで
[5] その他の制限:
答えがマイナスになる場合もお願いします、、
あとできれば説明もお願いします

335:デフォルトの名無しさん
08/01/20 19:51:31
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):添付されたファイル"city.txt"に、
日本の政令指定都市に関するデータが収められている。
このファイルを読んで、構造体の配列に格納し、
ソートを実行するプログラムを作成する。

構造体のメンバは、
都市名・登録年月日・面積・人口とし、
ソートはレコードの内容について、
まず、都市名の昇順(アルファベット順)にソートし、
次に、登録年月日の昇順にソートするものとする。

単純交換法でソートを実行した場合と、
単純選択法でソートを実行した場合の結果を示し、
違いがあれば、その違いの特徴を説明し、理由も書きなさい。

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:VS2005
 [3.3] 言語: C
[4] 期限: 1/22日まで
[5] その他の制限:city.txtなどは次に書きます。よろしくお願いします。

336:デフォルトの名無しさん
08/01/20 19:52:30
>>335
city.txtの中身


都市名 登録年月日 面積[km^2] 人口[人] (2007年12月1日現在)
Sapporo 1972/04/01 1,121.12 1881218
Sendai 1989/04/01 735.16 1029595
Saitama 2003/04/01 217.49 1192005
Chiba 1992/04/01 272.08 938293
Yokohama 1956/09/01 437.38 3,630830
Kawasaki 1972/04/01 142.70 1,372762
Niigata 2007/04/01 726.10 813170
Shizuoka 2005/04/01 1,388.78 710902
Hamamatsu 2007/04/01 1,511.17 811446
Nagoya 1956/09/01 326.45 2238223
Kyoto 1956/09/01 827.90 1469242
Osaka 1956/09/01 222.27 2645790
Sakai 2006/04/01 149.99 835257
Kobe 1956/09/01 552.15 1530912
Hiroshima 1980/04/01 905.13 1163051
Kitakyushu 1963/04/01 487.71 987337
Fukuoka 1972/04/01 340.60 1429828

337:デフォルトの名無しさん
08/01/20 19:53:26
>>336
すいません見にくかったです。

都市名 登録年月日 面積[km^2] 人口[人] (2007年12月1日現在)
Sapporo 1972/04/01 1,121.12 1881218
Sendai 1989/04/01 735.16 1029595
Saitama 2003/04/01 217.49 1192005
Chiba 1992/04/01 272.08 938293
Yokohama 1956/09/01 437.38 3,630830
Kawasaki 1972/04/01 142.70 1,372762
Niigata 2007/04/01 726.10 813170
Shizuoka 2005/04/01 1,388.78 710902
Hamamatsu 2007/04/01 1,511.17 811446
Nagoya 1956/09/01 326.45 2238223
Kyoto 1956/09/01 827.90 1469242
Osaka 1956/09/01 222.27 2645790
Sakai 2006/04/01 149.99 835257
Kobe 1956/09/01 552.15 1530912
Hiroshima 1980/04/01 905.13 1163051
Kitakyushu 1963/04/01 487.71 987337
Fukuoka 1972/04/01 340.60 1429828


338:デフォルトの名無しさん
08/01/20 19:58:11
>>335>>336>>337
337はミスりました、すいません。

#include<stdio.h>
#define N 17 //*keyの個数
#define SIZE 20 //*nameの大きさ

struct city{
char name[SIZE];
int year, month, day;
double area;
int population;
};
struct city key[N];
int main(void){
FILE *fp;
int i;
char naka[100];
fp = fopen("city.txt","r");
if(fp!=NULL){
printf("ファイルを開きました\n");
}
fgets(naka,100,fp);
for(i = 0; i < N; i++){
fscanf(fp,"%s %d/%d/%d %lf %d",key[i].name, &key[i].year, &key[i].month, &key[i].day, &key[i].area, &key[i].population);
printf("%s %d/%d/%d %lf %d\n",key[i].name, key[i].year, key[i].month, key[i].day,key[i].area, key[i].population);
}
return 0;
}
これを元に作ってほしいです。よろしくお願いします

339:デフォルトの名無しさん
08/01/20 20:09:55
>>334
#include <iostream>
using namespace std;
int main()
{
double n1, n2;
// 一つ目入力
cout << "n1 : ";
cin >> n1;
// 二つ目入力
cout << "n2 : ";
cin >> n2;
// 結果出力
cout << "n1 - n2 : " << n1 - n2 << endl;
return 0;
}

340:デフォルトの名無しさん
08/01/20 20:32:40
>>339
ありがとうございます!
でもまだ
using namespace std;
をならってません(ノ_・。)

341:デフォルトの名無しさん
08/01/20 20:34:03
ほんとにC++かよw

342:デフォルトの名無しさん
08/01/20 20:38:37
つうか、doubleで大丈夫なのか?
stringなりchar配列でやれって意味だと思うんだけど

343:デフォルトの名無しさん
08/01/20 20:42:32
>>340
文字列から数値への変換は自分でやるの?
入力とかは、scanfとかでやれとか?
使っていいものの条件をかいてくれ。

344:デフォルトの名無しさん
08/01/20 20:57:51
>>340
URLリンク(kansai2channeler.hp.infoseek.co.jp)
冗長だが。

数値に区切って算出した方がいいんだよな。

345:デフォルトの名無しさん
08/01/20 21:04:56
>>335
URLリンク(kansai2channeler.hp.infoseek.co.jp)
city.txtの","って取り除かないと読めなくない?

346:344
08/01/20 21:05:41
すまん、こっちで
URLリンク(kansai2channeler.hp.infoseek.co.jp)

ますますクソだわ、吊ってくる...

347:デフォルトの名無しさん
08/01/20 21:09:54
char配列だと思います。。
あとscanfもまだ習っていません、、
文字列の入力は cin.getline しか習ってないんですが。。。
まさかこれでこの問題乗り切るのむりですか?(´△`)


よくわかんないので、以前に和を出す方法を教えてもらったのでそれの一部のせます!
前後はしょってるので意味わかんなかったらごめんなさい、、

// 足し算
// a = b + c
int add(char a[], char b[], char c[])
{
int i ,carry = 0;
for( i = 0 ; i < Max_Length ; i++ ) {
a[i] = b[i] + c[i] + carry;
carry = a[i] / 10;
a[i] = a[i] - carry * 10;

}
return carry;
}

348:デフォルトの名無しさん
08/01/20 21:43:20
250ってそのまま書いても大丈夫なんですかね?
今ソフトがないもんで・・・

349:デフォルトの名無しさん
08/01/20 21:53:38
お願いします

[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
問題1;nの階乗の表を表示するプログラム(intで表示できる範囲のみ)

問題2: 二次元配列を使い、以下の点数表から各人の3科目の平均点と各科目ごとの5人の平均点を求めるプログラム

    国語 数学 英語
安藤  56  45   67
加藤  64  34   55
田中  53  76   46
山田  75  78   78
山本  60  67   62

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:コマンドプロンプト
 [3.3] 言語: C
[4] 期限: 2008年1月21日00:00まで
[5] その他の制限: なし

350:デフォルトの名無しさん
08/01/20 21:55:48
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語: C言語
[4] 期限:1月22日
[5]制限 : お願いします。


351:デフォルトの名無しさん
08/01/20 22:24:16
>>350
#include <stdio.h>
#define LMAX 100
int char_counter(char c, char * str)
{
int cnt=0;
while(*str!='\0'){
if(*str==c)
cnt++;
str++;
}
return cnt;
}
main()
{
char c,str[LMAX];
int cnt=0;
printf("文章:");
fgets(str,LMAX-1,stdin);
for(c=33;c<127;c++){
cnt=char_counter(c,str);
if(cnt>0)
printf("[%c]->%d個\n",c,cnt);
}
}

352:デフォルトの名無しさん
08/01/20 22:33:36
[1] 授業単元:C言語
[2] 問題文
1つ以上の空白文字で区切られた英文を半角文字列として入力し、空白文字
を区切りとし分解して表示する。以上の動作をNULLが入力されるまで繰り返
すプログラムを作成しなさい。
①文字列の入力にはgets関数を使用すること。また、最大で80文字
 までしか入力されないものとする。
②空白文字かどうかは文字検査関数(is・・・)を使用して調べること。
③半角文字しか入力されないもとする
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語: C
[4] 期限:なし
[5] その他の制限:

353:shogo
08/01/20 23:15:54
>>>273
ディフォルトの名無しさんご回答ありがとうございました!
大変参考になりました!!


354:デフォルトの名無しさん
08/01/20 23:27:08
ディフォルトの名無しさんって宿題全部やっちゃってすごいよね

355:デフォルトの名無しさん
08/01/20 23:30:25
>>352
URLリンク(kansai2channeler.hp.infoseek.co.jp)
無駄に長くした。

356:デフォルトの名無しさん
08/01/20 23:32:25
>>352
空白を複数個入れると表示が見苦しくなるが気にするな。
そうしちゃいけないとは書いていないから。


#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main()
{
char buf[81];
int i;

while(gets(buf)){
if(!strcmp(buf,"NULL"))
break;
for(i=0;buf[i];i++)
putchar(isspace(buf[i])?'\n':buf[i]);
printf("\n\n\n");
}

return 0;
}

357:デフォルトの名無しさん
08/01/20 23:56:04
>>352 では表示が見苦しくならないようにしたものを。先頭に空白が入ってても大丈夫にしてある。
#include <stdio.h>
#include <ctype.h>
#define LMAX 80
main()
{
int i=0;
char str[LMAX+1];
while(gets(str)){;//本当はfgets(str,LMAX,stdin)を使いたい
while(str[i]!='\0'){
if(isspace(str[i])){
if(i>0&&!isspace(str[i-1]))
putchar('\n');
}else
putchar(str[i]);
i++;
}
putchar('\n');
}
}

358:デフォルトの名無しさん
08/01/21 00:09:07
>>352
URLリンク(kansai2channeler.hp.infoseek.co.jp)
なんとなく。

359:269
08/01/21 00:33:14
>>333
混乱させていたらごめんなさい、樹形図化とはただの総書き出しのことです。
以下は私のイメージによる、辞書式に総書き出しをした場合の最初と最後の100件ずつ計200行です。

1行は常に25bytesです(Numberの右揃え7桁で7bytes+半角スペース1個で1byte+Combinationの2桁表記数字が6個分と半角カンマ5個分で17bytes)。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

これはn2c処理の材料の一例、B.txt(右揃え無し)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これはB.txtにn2c処理をした後=C.txt(Number部分は右揃え7桁になっている)
URLリンク(kansai2channeler.hp.infoseek.co.jp)

n2c処理出来るものさえ頂戴出来れば僥倖ですが、c2n処理の材料であるA.txtは以下。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
あと、自分でヒントを探した際に理解できなかったのですが(C#だし)考え方のノリとしてはこれです。
URLリンク(www.microsoft.com)

360:デフォルトの名無しさん
08/01/21 00:36:34
【時間切れ】 (1/20)
>303

【未解決問題】
>>86 1/22
>>335 1/22
スレリンク(tech板:229番) 1/31
>79 無期限
>144 無期限 問題文>>148
>278 無期限

361:デフォルトの名無しさん
08/01/21 00:41:37
Cプログラマ必須テキスト!

URLリンク(mori.eco.to)

362:デフォルトの名無しさん
08/01/21 00:44:15
宣伝するなクソが

363:デフォルトの名無しさん
08/01/21 01:06:33
>>355>>358
Thanks!!

364:デフォルトの名無しさん
08/01/21 01:43:30
ここって仕様書のせたらプログラム作ってくれますか?(゚゚)
もしだめなら仕様書のせてプログラム作ってくれるスレ教えてくだされ(ノ_・。)

365:デフォルトの名無しさん
08/01/21 01:46:29
>>364
無償では誰もやらないと思うYO!

366:デフォルトの名無しさん
08/01/21 01:50:05
スレ立てればいいじゃん

367:デフォルトの名無しさん
08/01/21 02:53:00
仕事代行スレ?面白そうだね。
作るならJAVAやC#その他言語もOKなスレにして欲しいな。
【無料】仕事代行ギコ猫商会【無保証】
猫の手を借りたいほど忙しい人が、プログラム好きの猫たちに仕事を依頼するスレです。
猫たちは気紛れなので、依頼を受け無い時もあります。途中で投げ出すかも知れませんし
出来たとしても猫たちの能力はまちまちなので品質は保証できません。
また、倫理や契約に違反する可能性がありますので十分注意してください。

まあ利用できるのは、個人ぐらいだろうな。企業とかでこんな所に仕事を投げたのが
ばれたら大変な事になりそう。

368:デフォルトの名無しさん
08/01/21 03:06:34
>>359
ロト6のできたよ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
何に使うのか気になるなw


369:348
08/01/21 03:21:22
スイマセン勘違いしてました
ところで250の
printf("input (e.g. ****/**/**)\n>>");
の意味がわからないのですが・・・

370:デフォルトの名無しさん
08/01/21 03:27:15
>>369
いや、"input (e.g. ****/**/**)\n>>"って表示するだけのことだろ。
****/**/**は年/月/日で入力しろってことでしょ

371:348
08/01/21 03:38:29
>>370
ありがとうございます!
助かりました!

372:デフォルトの名無しさん
08/01/21 04:03:55
>>272
面白そうなので、ちょっとやってみた。
期限過ぎてるし、手元に開発環境がなくてrubyだしで
スレ違いすまん

--
def create(n)
 if n < 2
  return "<>"
 else
  strs= create(n-1)
  result = []
  strs.each do |str|
   result.push "<"+ str +">"
   result.push str +"<>"
  end
  return result
 end
end

create(ARGV.shift.to_i).each { |str| print str, "\n"}
--

373:269
08/01/21 04:10:06
>>368
おお…おお!ありがとうございます!!
たった10文字だけど、他に表現できる言葉を知らないので、もう一度「ありがとうございます」


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