C/C++の宿題を片付け ..
666:663
07/05/22 03:02:03
口頭で「scanfはいけないのはわかるよねー。だったらgetsかgetcharだよねー」
見たいな事を言っていたのでその通りに書きました。そのときに笑っていたので>>665さんみたいな感じだと重いmasu。
667:デフォルトの名無しさん
07/05/22 03:05:27
別にscanfでもなんら問題ない。書式の指定を%sにして文字配列に入れてから処理すりゃええし。
書式を%dとかにして文字列を受け付けようとするとダメだから推奨できんが。
668:デフォルトの名無しさん
07/05/22 03:16:27
scanfやらgetsやらはバッファオーバーフローが怖いって話だろ?
口頭だったらfgetsの聞き間違いじゃないの?
669:デフォルトの名無しさん
07/05/22 03:36:08
scanfがいけないといっておいてダメなgetsを言うのもどうかと・・・
670:デフォルトの名無しさん
07/05/22 03:38:43
「げっとえす」と「えふげっとえす」は
さすがに間違えないと思うんだ。
671:663
07/05/22 03:55:51
ぼくおなかがすいたんだな。
672:デフォルトの名無しさん
07/05/22 04:02:15
(||)は選択、digitは数値、+-eは文字、.は小数点か?
*は何?正規表現ってことは、ワイルドカード?乗算記号?なんか良く分からん
673:デフォルトの名無しさん
07/05/22 04:02:33
おっ、おおおおおお、おにぎりあげるから、後は自分でどうにかするんだな
674:デフォルトの名無しさん
07/05/22 04:11:10
>>672
あんまり気にしないでやってた。言いたいことはなんとなくわかりそう。
乗算ではないと思う。
>>671 つ■ 海苔でもくってろ
675:デフォルトの名無しさん
07/05/22 04:30:25
あー・・・ようやく何となく分かったかも
正規表現の+を使っちゃうと符合と被ってややこしいから
「digit digit*」って書いてあるのか。スペースは無視すんだな。
「digit digit*」は1桁以上の数値っつーことか。
676:デフォルトの名無しさん
07/05/22 04:36:34
アレ?でもそうすると
[5] その他の制限:-2.eだとOK,-.1eだとNG。
が逆になっちまう・・・。
-2.eは入力出来ないけど、-.1eが入力出来るという奇妙な現象。
やっぱ分かんねー・・・
677:デフォルトの名無しさん
07/05/22 07:30:01
>>482 お願いします。
678:デフォルトの名無しさん
07/05/22 08:17:50
>>651 よろしくお願いします。
679:デフォルトの名無しさん
07/05/22 10:10:12
>>657
よく読むとfreeし損ねてるのがあるな
そのまま提出すると怒られるかも
やっぱ眠いときは駄目だな
680:デフォルトの名無しさん
07/05/22 10:51:55
>>663
よくわからんからすげー適当に書いたお
URLリンク(kansai2channeler.hp.infoseek.co.jp)
.が必須のようだしeの後はdigitが必須のようだから
ただの整数も-2.eも-.1eも受理されないし
switchも使ってないお
681:解いてください。お願いします。
07/05/22 11:41:18
問2 時間(0以上23以下)を入力し、以下に示す時間に従った挨拶を出力するプログラムを作りなさい。
プログラムは、0未満24以上の時間が入力されるまで繰り返しなさい。
0時〜3時 :Good night
4時〜11時 :Good morning
12時〜16時 :Good afternoon
17時〜20時 :Good evening
21時〜23時 :Good Night
但し、一つの整数を引数とし、引数で指定された数値によって、上記メッセージを出力する関数を
作り、main関数では、その関数を呼び出すようにしなさい。
682:680
07/05/22 11:49:24
うわ
いくら適当と言ってもコンパイルも通らないソースをageちゃったよ
つーわけであげなおしスマソ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
683:デフォルトの名無しさん
07/05/22 11:53:16
>>663
* は正規表現どおりの定義だと「前方の 0回以上の繰り返し」の意となるんだが…
> [5] その他の制限:-2.eだとOK,-.1eだとNG。
どちらもマッチすると思われ
684:デフォルトの名無しさん
07/05/22 11:53:52
つまりここの人は脳内コーディングがデフォなのか
上手い人ほど大胆なミスをするってなんかの本で言ってたけどこんな所でもそれが見られるとは
685:680
07/05/22 12:07:43
>>683 ただのdigit*ではなくdigit digit*なので、「1回以上の繰り返し」になると
おもうよ
>>684 俺は別に全然上手くなんかないよ
>>681
#include <stdio.h>
char *s[] = {
"Good night", "Good night", "Good night", "Good night",
"Good morning", "Good morning", "Good morning", "Good morning",
"Good morning", "Good morning", "Good morning", "Good morning",
"Good afternoon", "Good afternoon", "Good afternoon", "Good afternoon",
"Good afternoon", "Good evening", "Good evening", "Good evening",
"Good evening", "Good Night", "Good Night", "Good Night",
};
char *hello(int h) { return s[h]; }
int main(void) {
int n;
while (scanf("%d", &n) == 1 && n >= 0 && n < 24)
puts(hello(n));
return 0;
}
686:デフォルトの名無しさん
07/05/22 12:09:04
>>685
俺が気にしてるのは整数部の 「digit* . 」 側。
ピリオドの前は digit* だけっしょ
687:デフォルトの名無しさん
07/05/22 12:09:22
>>681
コンパイル試してないから通るかわかんない。
0未満24以上は0以上24未満の間違いでおk。
あと予想外(数字以外)の入力で無限ループに入るのは仕様。
可読性がアレなのも仕様。
#include <stdio.h>
void hello(int hour){
char *mes = "night\0morning\0afternoon\0evening\0Night";
printf("Good %s\n",&mes[hour<4?0:hour<12?6:hour<17?14:hour<21?24:32]);
}
int main(){
int h=0;
while(1){
scanf("%d",&h);
if(h<0||h>23)continue;
break;
}
hello(h);
return 0;
}
688:680
07/05/22 12:10:22
>>686
整数部はそうだけど、eの後がdigit digit*なので、
eが来たらその後数字が必須になるんだお
だからどっちも受理されないお
689:デフォルトの名無しさん
07/05/22 12:12:08
>>688
e(+|-|) digit digit* |
おれはこれを e <省略可符号> <省略可 digit群>
と読んだ(末尾の | ね)
690:デフォルトの名無しさん
07/05/22 12:12:09
>>677>>482
文章がやばい事になってるけど、骨格自体は間違っていない筈だから
問題文などを変えれば問題ないだろう。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
691:デフォルトの名無しさん
07/05/22 12:13:21
ちょっと、問題文とは違うけど大体通る奴作ってみるか
692:680
07/05/22 12:14:26
>>689
にゃるほど
693:689
07/05/22 12:18:44
>>692
と思ったけど.... (<e付きのなんたら群> | 無) の結合のほうが正しいのか<問題側
694:デフォルトの名無しさん
07/05/22 12:49:49 BE:34938263-2BP(222)
>>681
#include<stdio.h>
void message(int n){char* seg;switch(n){case0:case1:case2:seg="night";break;
case4:case5:case6:case7:case8:case9:case10:case11:seg="morning";break;
case12:case13:case14:case15:case16:seg="afternoon";break;
case17:case18:case19:case20:seg="evening";break;
case21:case22:case23:seg="Night";break;}printf("Good %s\n",seg);}
int main(void){char tmp[256];fgets(tmp,256,stdin);message(atoi(tmp));return 0;}
695:685
07/05/22 13:07:56
>>681
繰り返しの仕様を誤解してた。main()を↓のように変えて。
int main(void) {
int n;
do {
while (scanf("%d", &n) != 1) {
clearerr(stdin);
scanf("%*[^\n]\n");
}
} while (n < 0 || n > 23);
puts(hello(n));
return 0;
}
696:デフォルトの名無しさん
07/05/22 14:15:25
0未満24以上ってのは、範囲外の数字が入力されたら終了って意味じゃねーの?
697:デフォルトの名無しさん
07/05/22 14:19:39
書きこむスレ間違えたのでこちらで。
whileを使って九九のプログラム作りたいのですがわかりません(´д`)
698:デフォルトの名無しさん
07/05/22 14:21:43
>>697
>>1 の質問テンプレ読んで書きなおし
699:デフォルトの名無しさん
07/05/22 14:28:18
適当な質問なので適当に応える
int i=0,j=0;
while(i++<9){j=0;while(j++<9)printf("%d x %d = %d\n",i,j,i*j);}
700:デフォルトの名無しさん
07/05/22 14:33:16
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):適当な大きさの配列を作り、配列の末尾から
先頭(0番目の要素)に向かって入力された値を格納するプログラムを作りなさい
[3] 環境
[3.1] OS: WindowsXP home
[3.2] コンパイラ名とバージョン:TeraPad 0.90
[3.3] 言語: どちらでも可(ただしcin coutを使用しろとの事です)
[4] 期限:今週の木曜まで
[5] その他の制限: 特になし
よろしくお願いします
701:デフォルトの名無しさん
07/05/22 14:40:26
TeraPadはテキストエディタ。コンパイラじゃないよ。
702:デフォルトの名無しさん
07/05/22 14:41:58
生茶ふいた
703:デフォルトの名無しさん
07/05/22 14:44:16
>>701
すみません勘違いしてました
djgppです(これも違ってたら申し訳ないです)
704:デフォルトの名無しさん
07/05/22 14:45:37
>>700
#include <iostream>
int main(void){
int array[5];
int i;
for(i=0;i<5;i++){
std::cout << "数値を入力して下さい : ";
std::cin >> array[i];
}
for(i=5-1;i>=0;i--)
std::cout << array[i] << std::endl;
return 0;
}
705:700
07/05/22 14:48:38
>>704
ありがとうございます
std::ってのがよくわからないんですが、
これは先頭に #using namespace std; を付ければ入力しなくてもいいんでしょうか?
706:デフォルトの名無しさん
07/05/22 14:49:25
>704
問題文読めてる?
707:デフォルトの名無しさん
07/05/22 15:00:45
[1] 授業単元: プログラミング演習1
[2] 問題文:
sample.txtに書かれている文字(数字、英数字、全角など何が含まれているかはわからないものとする)
をbase64エンコードするコードを記述せよ。
[3] 環境 OS: WindowsXP
[3.2] コンパイラ名とバージョン: VC++ .net 2003
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限:なし
よろしくお願いいたします。
708:デフォルトの名無しさん
07/05/22 15:05:58
>>700
>>704 の訂正
#include <iostream>
int main(void){
int array[5];
int i;
for(i=5-1;i>=0;i--){
std::cout << "数値を入力して下さい : ";
std::cin >> array[i];
}
for(i=0;i<5;i++)
std::cout << array[i] << std::endl;
return 0;
}
>>705 その通りです
>>706 読めてなかった
709:700
07/05/22 15:08:06
>>708
お手数お掛けしてすみません
どうもありがとうございました
710:デフォルトの名無しさん
07/05/22 15:10:44
Wikipedia項目リンク
711:デフォルトの名無しさん
07/05/22 15:25:40
[1] 授業単元:IT入門B1 C言語
[2] 問題文
二次関数(y = a x^2+ bx +c)でxがx1 <= x <= x2のときの最大値と最小値(そのときのxの値も含めて)を求めるプログラムを作成せよ。
ここでa,b,cは整数、x1,x2は浮動小数とする。
[3] 環境
[3.1] OS: Linux
[3.2] gcc versionは不明ですが最新版のはずです
[3.3] 言語:C
[4] 期限: 2007年5月28日0:00まで
[5] その他の制限: 特にありません。
どなたか手を差し伸べてください・・・orz
712:デフォルトの名無しさん
07/05/22 15:32:44
[1] データ構造論
[2] 課題 SE3.5
逆ポーランド電卓プログラムでは2項演算の演算子、加算( '+')、減算('-')、
乗算 ('*')、除算('/')の4種類しか用意していない。
負数を扱うための単項演算子 ('$'記号を用いる)、余りを求める2項演算子('%'記号を用いる)など
を導入するにはどうすればよいか?
[3.1] OS:Linux
[3.2] gcc 3.4 VC 6.0等
[3.3] 言語:C
[4] 期限: ([2007年05月23日12:00まで]
[5] その他の制限:特になし
よろしくお願いします
713:デフォルトの名無しさん
07/05/22 15:36:54
722の逆ポーランド電卓プログラムです
/* 逆ポーランド電卓プログラム
#include <stdio.h>
#include "s_q.h" /* s_q.h の取り込み */
main()
{
int type; /* 次の演算子または演算数のタイプ*/
int op2, atoi() ;
char s[MAXOP]; /* 入力領域 */
while ((type = getop(s)) != EOF) { /* 次の演算子または演算数がある間 */
switch (type) { /* そのタイプが */
case NUMBER: /* 演算数の場合 */
push(atoi(s)); break; case '+': /* 演算子 '+' の場合 */
push(pop() + pop()); break;
case '*': /* 演算子 '*' の場合 */push(pop() * pop());
break; case '-': /* 演算子 '-' の場合 */
op2 = pop(); push(pop() - op2); break; case '/': /* 演算子 '/' の場合 */
op2 = pop(); if(op2 != 0.0) push(pop() /op2);
else printf("零割りのエラー \n"); break;
case '\n': /* 改行文字 の場合 */
printf("\t%d\n",pop()); break; default: /* その他の場合 */
printf("未登録コマンド: %s\n", s); break;
}
}
return 0;
}
714:デフォルトの名無しさん
07/05/22 15:43:07
>>713
pop() の戻りの型を int と仮定(っぽいコードだし)
case '$': /* 演算子 '$' の場合 */push(-pop()); break;
case '%': /* 演算子 '%' の場合 */
/* 0割見ない場合 */ push(pop() % pop()); break;
/* 0割チェックする場合 */
{ int num, den; num=pop(); den=pop();
if (den != 0) { push(num/den); } else { /*0割だお スタックに戻しとくか? */ push(den); push(num); }
} break;
715:デフォルトの名無しさん
07/05/22 15:43:55
-if (den != 0) { push(num/den); }
+if (den != 0) { push(num%den); }
716:デフォルトの名無しさん
07/05/22 16:21:37 BE:77640858-2BP(222)
>>712
URLリンク(c-kadai.sakura.ne.jp)
717:デフォルトの名無しさん
07/05/22 16:59:19
>>707
#include<stdio.h>
int encode(char *dest, int dest_size, const char *src, int src_size){
char *base64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
int dest_index, src_index, left_size, i;
long temp;
if(dest==NULL || src==NULL || src_size<=0 || dest_size<(src_size+2)/3*4) return -1;
for(src_index=dest_index=0;src_index+2<src_size;src_index+=3){
temp=(src[src_index]<<16)|(src[src_index+1]<<8)|src[src_index+2];
for(i=0;i<8*3;i+=6) dest[dest_index++]=base64[(temp>>(18-i))&0x3F];
}
left_size=src_size-src_index;
for(i=0,temp=0;i<left_size;i++) temp=(temp<<8)|src[src_index+i];
for(;i<3;i++) temp=(temp<<8);
for(i=0;i<left_size*8;i+=6) dest[dest_index++]=base64[(temp>>(18-i))&0x3F];
for(;dest_index%4!=0;) dest[dest_index++]='=';
return dest_index;
}
int main(void){
FILE *fp;
char src_buf[3*100], dest_buf[(sizeof(src_buf)+2)/3*4];
int read_size, coded_size;
if((fp=fopen("sample.txt", "rb"))==NULL) return 1;
for(;;){
read_size=fread(src_buf, 1, sizeof(src_buf), fp);
coded_size=encode(dest_buf, sizeof(dest_buf), src_buf, read_size);
if(read_size<=0 || coded_size<=0) break;
fwrite(dest_buf, 1, coded_size, stdout);
}
fclose(fp);
return 0;
}
718:デフォルトの名無しさん
07/05/22 17:07:23
訂正
int encode(char *dest, int dest_size, const char *src, int src_size){
↓
int encode(char *dest, int dest_size, const unsigned char *src, int src_size){
719:デフォルトの名無しさん
07/05/22 17:31:11
>>690 ありがとうございます、ですけどC++だったんですが。
文法の方はなんとかできるんで、なんとかしてみます。
720:デフォルトの名無しさん
07/05/22 17:34:44
>>518 よろしくお願いします。
721:デフォルトの名無しさん
07/05/22 17:41:22
>>717
ありがとうございます。たすかりました
722:デフォルトの名無しさん
07/05/22 18:28:51
[1] 授業単元: プログラミング演習
[2] 問題文:重複しない適当な値ですべての要素が初期化された配列を作り、適当な整数(Nとする)を入力して
N番目の要素の値を表示するプログラムを作りなさい。入力と表示は繰り返す。
Nにどのような値が入力されたとしても、適切に対処しなさい。
ただし、表示は次のようにしなさい。
配列名がa,a[0]の値が20であるとき、Nとして0が入力された場合の表示:a[0]=20
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C++
[4] 期限:5月24日
[5] その他の制限:
お願いします
723:デフォルトの名無しさん
07/05/22 18:33:07
<?php
$ary = array(0=>1);
?>
724:デフォルトの名無しさん
07/05/22 18:49:30 BE:81522476-2BP(222)
>>722
#include<stdio.h>
int main(void){char tmp[256];int n;
int a[]={2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89,
97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151,
157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223,
227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281,
283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359,
367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433,
439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,
509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593,
599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659,
661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743,
751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827,
829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911,
919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997,};
do{fgets(tmp,256,stdin);n=atoi(tmp);if(n>=0&&n<sizeof(mod)/sizeof(int)){
printf("a[%i]=%i\n",n,a[n]);}}while(n>=0);return 0;}
725:722
07/05/22 19:04:28
>>724
圧巻ですね・・・
どうもありがとうございます
726:デフォルトの名無しさん
07/05/22 20:41:14
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
以下のnについて,1/nをn個加算した結果を求めよ.
n=1000, 4096, 10000
変数の型をfloatとdoubleとした場合のそれぞれについて(合計 2×3=6つの場合)調べよ
float型の値の出力の場合は%f, double型の値の出力には%16.14e(全桁数16, 小数点)以下14桁を示すを用いる
[3] 環境
[3.1] OS: Win XP
[3.2] コンパイラ名とバージョン: Borland
[3.3] 言語: C
[4] 期限: 明日
[5] その他:無し
お願いしますヽ(T_T )ノ
727:デフォルトの名無しさん
07/05/22 21:12:38
>>726
#include <stdio.h>
int main(void)
{
double nd[]={1000.0,4096.0,10000.0},sumd;
float nf[]={1000.0,4096.0,10000.0},sumf;
int i,j;
for(i=0,sumd=0.0; i<sizeof(nd)/sizeof(nd[0]); i++,sumd=0.0) {
for(j=0; j<nd[i]; j++) {
sumd+=1/nd[i];
}
printf("1/%.0lf : %16.14e\n",nd[i],sumd);
}
puts("");
for(i=0,sumf=0.0; i<sizeof(nf)/sizeof(nf[0]); i++,sumf=0.0) {
for(j=0; j<nf[i]; j++) {
sumf+=1/nf[i];
}
printf("1/%.0lf : %f\n",nf[i],sumf);
}
return 0;
}
728:デフォルトの名無しさん
07/05/22 21:16:28
>>727 細かいことを言うと、int型にキャストするべきかも
for(j=0; j<(int)nd[i]; j++)
for(j=0; j<(int)nf[i]; j++)
729:デフォルトの名無しさん
07/05/22 21:17:20
しかし、みなさん問題を解くスピードが速い!
プログラミング歴何年ぐらいなんでしょうか?
730:651
07/05/22 21:18:07
>>651 お願いします。
731:デフォルトの名無しさん
07/05/22 21:34:44
[1] 授業単元:プログラミング2
[2] 問題文(含コード&リンク):
ある文字列を与えられた時に、全体の文字の約m%を別の文字にランダムに置き換える関数
とそれを用いるmain関数を書け。
(1)文字列は次のものを文字配列としてmainに確保する。
"It's not surprising that food dropped onto bacteria would collect some bacteria."
(2)置き換わる文字は英大文字の中のどれかとする。
(3)置き換える操作を行う機能を関数mutateとして実装する。関数プロトタイプを次のようにする:
void mutate(char s[], int len, int m);
引数s[]は文字列、引数lenは文字列長、引数mは置き換える割合(%)である。
(4)置き換える割合(%)mをmainで入力して指定できるようにする。mが1,3,5,10の場合に
ついて置き換えた結果の文字列を出力する。
ヒント:
(1)例えば、確立5%で置き換えるというのは、(例えば)1から10000までの擬似乱数を発生させて、
その値が1から500までの範囲だったら置き換える操作をして、その範囲
外だったら何もしないというようにすればよい。
(2)英小文字をランダムに作るには、例えば1から26までの整数をAからZまでのアルファベット
にこの順で対応させ、1から26までの範囲の整数をランダムに発生させて対応する英字に変換する。
732:731
07/05/22 21:36:26
実行例:
basil$ ./a.out
Initial:
It's not surprising that food dropped onto bacteria would collect some bacteria.
It's notEsurprising that food droppedPonto bacteria would collect some bacteria.
置き換えの割合をで指定せよ: 5
It's noFEsurprisiGg that food droppedPonBo bacteriF would collect some bacteria.
置き換えの割合をで指定せよ: 10
It's noFEsuDprZsiEg that food droppeQPonBE bacteriFZwould collect some bacteOia.
置き換えの割合をで指定せよ: ^D
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語: C
[4] 期限:2007/05/22/23:59
[5] その他の制限: 特になし
全然分からず困っています。よろしく御願いします。
733:デフォルトの名無しさん
07/05/22 21:53:25
>>726です。
>>727
ありがとうございます。
734:デフォルトの名無しさん
07/05/22 22:05:48
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
テストデータを読み込み、その文字の頻度をカウントするプログラムを作成せよ。
(データに含まれてる文字の種類はASCIIコードに限られ
ピリオドや改行コードもひとつの文字として取り扱う)
[3] 環境
[3.1] OS: (Windows/Linux/等々) Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 来週の月曜日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
735:デフォルトの名無しさん
07/05/22 22:12:01
>>730
void MAKENULL(PRQueue *Q){ Q->last = 0; }
void INSERT (ElementType x, PRQueue *Q){
int i, j;
for (i = Q->last++; i > 0; i = j) {
j = (i - 1)/2;
if (Q->elements[j] > x)
Q->elements[i] = Q->elements[j];
else break;
}
Q->elements[i] = x;
}
ElementType DELETEMIN(PRQueue *Q){
int i, j, root, tmp;
root = Q->elements[0];
tmp = Q->elements[--Q->last];
for (i = 0; 2*i + 1 < Q->last; i = j) {
j = 2*i + 1;
if (j + 1 < Q->last && Q->elements[j] > Q->elements[j + 1])
j++;
if (Q->elements[j] < tmp)
Q->elements[i] = Q->elements[j];
else break;
}
Q->elements[i] = tmp;
return root;
}
736:デフォルトの名無しさん
07/05/22 22:27:22
>>731-732
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void mutate(char s[], int len, int m){
while(len--)
if((int)((rand() / (double)RAND_MAX) * 100) < m)
s[len] = (char)((int)((rand() / (double)RAND_MAX) * 26) + 'A');
}
int main(){
char s[] = "It's not surprising that food dropped onto bacteria would collect some bacteria.";
int n;
srand((unsigned int)time(0));
printf("%s", s);
while(1){
printf("置き換えの割合をで指定せよ:");
if(scanf("%d", &n) < 1) break;
mutate(s, sizeof(s), n);
printf("%s", s);
}
return 0;
}
適当に作ったから気に入らなかったら自分で作り替えて
737:デフォルトの名無しさん
07/05/22 22:28:03
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: Cのみ
[4] 期限: 早めでお願いします。無理いってすいません。
[5] その他の制限:習っているのは制御文、関数、配列、ポインタです。初心者なのでよろしくお願いします。
738:デフォルトの名無しさん
07/05/22 22:30:23
>>737
だから早めってなんだよ
期限を書けよ期限を
739:デフォルトの名無しさん
07/05/22 22:32:43
>>738
んなこと聞いているくらいならとっとと早めに答えてやれYO!
早めに済めば期限なんてどぉ〜でも良いで・す・YO!
740:デフォルトの名無しさん
07/05/22 22:34:51
>>739
了解。今の仕事が終わったら大至急解くよ
8月くらいになると思うからよろしく。
741: ◆pIsMrTUaME
07/05/22 22:41:36
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
整数値の入った2つの変数のアドレスを引数として渡すと2変数の値を交換する関数
をつくり、それを利用して昇順に選択ソートを行う関数を作成せよ。
さらにキーボードから入力した10個の整数をソートするプログラムを作成し動作確認せよ。
[3] 環境
[3.1] OS: WinXP
[3.2] コンパイラ名とバージョン: Borland
[3.3] 言語: C
[4] 期限: 5/25まで
[5] その他の制限: 特になしです
742:741 ◆pIsMrTUaME
07/05/22 22:42:19
お願いします。
743:デフォルトの名無しさん
07/05/22 22:43:58
>>734
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
FILE *fp;
int count[0x7f] = {0};
char ch;
if (argc < 2)
{
fprintf(stderr, "usage : %s <filename>\n", argv[0]);
return 1;
}
if ((fp = fopen(argv[1], "r")) == NULL)
{
fprintf(stderr, _strerror(NULL));
return 1;
}
while((ch = fgetc(fp)) != EOF)
{
count[ch]++;
}
return 0;
}
こうですか?
744:デフォルトの名無しさん
07/05/22 22:44:09
740 名前:デフォルトの名無しさん 投稿日:2007/05/22(火) 22:34:51
>>739
了解。今の仕事が終わったら大至急解くよ
8月くらいになると思うからよろしく。
了解。今の仕事が終わったら大至急解くよ
8月くらいになると思うからよろしく。
了解。今の仕事が終わったら大至急解くよ
8月くらいになると思うからよろしく。
了解。今の仕事が終わったら大至急解くよ
8月くらいになると思うからよろしく。
了解。今の仕事が終わったら大至急解くよ
8月くらいになると思うからよろしく。
745:731
07/05/22 22:48:29
>>736さん
有難う御座います。おかげで助かりました。
こんなに短く書けるとは思っても見なかったです。
746:デフォルトの名無しさん
07/05/22 22:54:24
>>739
てめーがやれよ
747:デフォルトの名無しさん
07/05/22 22:55:59
結局期限はいつなんだろう?
せっかく解いたのになんか貼りにくいから出題者はぜひ期限を区切ってくれ
748:デフォルトの名無しさん
07/05/22 22:57:57
納期が近くなったら漏れがやる。
749:デフォルトの名無しさん
07/05/22 23:00:58
746 名前:デフォルトの名無しさん 投稿日:2007/05/22(火) 22:54:24
>>739
てめーがやれよ
てめーがやれよ
てめーがやれよ
てめーがやれよ
てめーがやれよ
てめーがやれよ
てめーがやれよ
てめーがやれよ
てめーがやれよ
こいつ最高に必死だなwwwwww
750:デフォルトの名無しさん
07/05/22 23:02:52
>>746
無理を言うな
751:デフォルトの名無しさん
07/05/22 23:03:22
>>740
今の仕事があるならそっち優先してこんなところで茶化すだけのクソレスしてんなよw
お前の仕事を早めに終わらせろYO! っつーか仕事あんならこんなところで要らんレスしてんなよ
引きこもりニート(プ
752:デフォルトの名無しさん
07/05/22 23:05:34
はいはい、スレ違いスレ違い
753:デフォルトの名無しさん
07/05/22 23:05:45
>>737
#include <stdio.h>
int hexchange(char *str)
{
int c;
if(str[0]>='0' && str[0]<='9') {
c=(int)(str[0]-'0');
return c;
}
else if( str[0]>='a' && str[0]<='f' ) {
str[0]-='a'-'A';
}
if( str[0]>='A' && str[0]<='F' ) {
c=(int)(str[0]-'A'+10);
return c;
}
else if( str[0]=='?' ) return -2;
return -1;
}
// 続く
754:デフォルトの名無しさん
07/05/22 23:06:08
必死だねぇ。
755:デフォルトの名無しさん
07/05/22 23:06:16
>>751
昨日も2時くらいまで解いてたし、特に期限区切ってないなら早めに寝かせてくれYO!
756:デフォルトの名無しさん
07/05/22 23:06:45
>>753のつづ〜き、すず〜き、イチロー!マチュ〜〜イ!マチュジャカー!ジャイロボール!ゴールデンボール!オゥノォー!
int main(void)
{
char buf[32];
int flg;
printf(">>\n");
do{
printf("\nInput character : ");
fgets(buf,sizeof(buf)/sizeof(buf[0]),stdin);
flg=hexchange(buf);
if(flg>=0) printf("Exchanged %c to %d.\n",buf[0],flg);
else if(flg==-1) printf("Sorry. Input'0'〜'9','a'〜'f' or 'A'〜'F'.\n");
}while(flg!=-2);
printf("\n>>\n");
return 0;
}
757:デフォルトの名無しさん
07/05/22 23:08:29
>>754->>755
ちょwwwwwwwwwwwwwおまwwwwwwwwwwwwwいらwwwwwwwwwwwww邪魔すんなYO!
758:デフォルトの名無しさん
07/05/22 23:09:12
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: Cのみ
[4] 期限: 5/23
[5] その他の制限:習っているのは制御文、関数、配列、ポインタです。初心者なのでよろしくお願いします。
759:デフォルトの名無しさん
07/05/22 23:10:57
>>758
っつーかぁ、講師に講義、もとい、抗議してやってくれ。判別するライブラリなどが入っている
ctype.hくらい使わせろと
760:デフォルトの名無しさん
07/05/22 23:15:21
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
大きさが20の配列にフィボナッチの数列を作りなさい。0番目と1番目の要素の値はともに1で初期化すること。
最後に配列のすべての要素の値を配列の末尾から先頭(0番目)に向かって入力された値を格納するようにして表示させなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: djgpp
[3.3] 言語: C++
[4] 期限: 5/24
[5] その他の制限:
わかりにくい文章だと思いますが問題文のそのままです
よろしくお願いします
761:デフォルトの名無しさん
07/05/22 23:17:12
>>760
#include <stdio.h>
#define MAX 20
int main(void) {
int a[MAX],i;
a[0]=1; a[1]=1;
for(i=2; i<MAX; i++)
a[i]=a[i-2]+a[i-1];
for(i=MAX-1; i>=0; i--)
printf("a[%d]=%d \n",i+1,a[i]);
return 0;
}
762:デフォルトの名無しさん
07/05/22 23:20:11
>>760 オウゥイェイ、数日前に似たような問題があって、そっちのをそのまんま出しちゃったんで・す・YO!
だからぁ、C++っぽく書き換えました、あぁ〜いとぅいまてぇ〜ん
#include <iostream>
#define MAX 20
using namespace std;
int main() {
int a[MAX],i;
a[0]=1; a[1]=1;
for(i=2; i<MAX; i++)
a[i]=a[i-2]+a[i-1];
for(i=MAX-1; i>=0; i--)
cout << "a[ "<< i+1 << "]=" << a[i] <<endl;
return 0;
}
763:デフォルトの名無しさん
07/05/22 23:21:12
>>758
つsscanf
764:デフォルトの名無しさん
07/05/22 23:22:18
>756
>Input character : f
>Exchanged F to 15.
にならないぞ
765:デフォルトの名無しさん
07/05/22 23:23:28
>>761-762
わお、こんなに早くありがとうございます
助かりました
766:デフォルトの名無しさん
07/05/22 23:24:58
>>764は使用したコンパイラとOSの詳細の報告をきぼんぬ
767:デフォルトの名無しさん
07/05/22 23:41:41
>>764は疑わしいので他の人からの報告もきぼんぬ。特に質問を出した人、できたんかぁ?
768:デフォルトの名無しさん
07/05/22 23:47:21
普通に正しい件
769:デフォルトの名無しさん
07/05/22 23:51:45
>>764
なったぞ
770:デフォルトの名無しさん
07/05/22 23:52:48
>>740
さぁ、仕事で忙しいかもしれない君も、コンパイルくらいすぐにできるでしょ?やってみてくれたまえ。
そして何がおかしいか、8月以降でも良いから考えた結果をここで報告して下さい、おながいします!
報告しても報酬はないけど。
771:デフォルトの名無しさん
07/05/22 23:54:01
[1] 授業単元:構文解析
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これのふたつの???に付け加えて自然数の足し算を行うプログラムを作成し、引き算、及び掛け算もできるプログラムに拡張せよ。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2007/05/23の24時
[5] その他の制限: スタックまで習いました。
よろしくお願いします。
772:デフォルトの名無しさん
07/05/22 23:57:26
>>770
スマソ もう寝る
ソース見る限り正しいと思うけどね
773:デフォルトの名無しさん
07/05/22 23:59:58
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2007年5月23日中
[5] その他の制限: キューまでを使う。
よろしくお願いします。
774:デフォルトの名無しさん
07/05/23 00:06:46
授業単元 プログラミングU
「*」を並べて下図のような三角形を作るプログラムを作成せよ。
ただし、プログラム中にはprintf("*")とprintf("\n")を各1回のみ使い作成せよ。
*
**
***
****
*****
******
775:デフォルトの名無しさん
07/05/23 00:07:48
>>774
>>1 の質問テンプレ読んで書きなおし
776:デフォルトの名無しさん
07/05/23 00:08:03
>>772
実行していないのにそういことを言う奴は信じられない。むしろ、やってないのにやったとか言いそう。
そう、例えば、童貞なのに童貞じゃない奴からあれって気持ち良いよなぁって言われたら
相手次第で否定も肯定もしてしまうあやふやなタイプ。最後はそのいい加減が仇となって
仕事にも影響して、取引先とのトラブルで損失を作ってしまって解雇されるタイプ。
777:デフォルトの名無しさん
07/05/23 00:11:42
>>776みたいなやつが、人類はまだ月へ行ってないとか言うのかな?
778:デフォルトの名無しさん
07/05/23 00:11:58
>>776
1.OS
2.コンパイラ
3.うまくいかなかったソースコード
をうp!
文字コードがASCII配列じゃないとか?
779:デフォルトの名無しさん
07/05/23 00:12:25
>>777みたいなやつが、人類は神が創造したんであって進化した生物じゃないとか言うのかな?
780:デフォルトの名無しさん
07/05/23 00:13:38
日本語でおk
781:デフォルトの名無しさん
07/05/23 00:15:05
>>780 お前がなw
782:デフォルトの名無しさん
07/05/23 00:17:09
ハハ
783:デフォルトの名無しさん
07/05/23 00:17:57
[1] 授業単元:電子工学実習U
[2] 問題文(含コード&リンク):
「*」を並べて下図のような三角形を作るプログラムを作成せよ。
ただし、プログラム中にはprintf("*")とprintf("\n")を各1回のみ使い作成せよ。
*
**
***
****
*****
******
[3] 環境
[3.1] OS: XP
[3.3] 言語: C
[4] 期限:本日朝8時まで
784:デフォルトの名無しさん
07/05/23 00:19:08
>>783
#include <stdio.h>
#define A printf("*")
#define B printf("\n")
int main(){A;B;A;A;B;A;A;A;B;A;A;A;A;B;A;A;A;A;A;B;return 0;}
785:デフォルトの名無しさん
07/05/23 00:19:25
っつーかさぁ、最近「日本語でおk」って文法とか使い方を間違った言葉じゃなくても
自分が気に食わない意見を、相手のすべてを否定するように言う奴って多いよな。
まぁ、人類の歴史上、正しかったことも弾圧でもみつぶされていることは良くあることだが
最近じゃマスメディアが発達して、国民に真相の真偽ははっきりしなくても、それに関する情報や
いきさつが可能な範囲内で報じられるようになったから、人生経験が浅い人や、自分で考える意思のない
他人任せ、長いものには巻かれろといった考えでない人までは騙せないどころか、公正な条件による
検証もされるようになってきたしな。
んで、人類は神が創造したものではなく、進化したであろうという生物がこの地球上にいるから
そういった点では進化論の方が信憑性が高い。が、月に関しては人類が起こしたことだから
あとは宇宙計画で今後月に行く計画が実行されれば、アポロ11号が本当に月面に証拠を残したか判明するから
それについては俺は行った行ってないについては敢えて言わないよ。第一、そんとき俺まだ生まれてねーしw
786:デフォルトの名無しさん
07/05/23 00:20:12
訂正
#include <stdio.h>
#define A printf("*")
#define B printf("\n")
int main(){A;B;A;A;B;A;A;A;B;A;A;A;A;B;A;A;A;A;A;B;A;A;A;A;A;A;B;return 0;}
787:デフォルトの名無しさん
07/05/23 00:20:58
>>784
アハ
788:デフォルトの名無しさん
07/05/23 00:22:40
>>518
URLリンク(kansai2channeler.hp.infoseek.co.jp)
CUIでスピードはちょっと無謀だったかも。
789:デフォルトの名無しさん
07/05/23 00:23:11
>>785
日本語でおk まで読んだ
790:気まぐれアナスイ
07/05/23 00:23:36
>>785
恐らく、ですが?
『日本語でおk』は「平仮名でスレして」という事でしょう?
791:デフォルトの名無しさん
07/05/23 00:24:07
C言語のソースでおk?
792:デフォルトの名無しさん
07/05/23 00:24:31
×スレして
○スルーして
793:デフォルトの名無しさん
07/05/23 00:26:53
ANSI、ISO準拠ってのがあることだし、方言とかなしでANSI、ISO準拠のソースでおk。
794:デフォルトの名無しさん
07/05/23 00:28:36
>>783
#include <stdio.h>
int main( void )
{
int i, n;
int x, y;
scanf("%d",&x);
for ( n = 0; n < x ; n++ ) {
for ( i = 0; i <= n; i++ ) {
printf( "*" );
}
printf( "\n" );
}
return 0;
}
久々に来てみると荒れてるなー
795:気まぐれアナスイ
07/05/23 00:29:39
『〜でおk』自体その言語で相手が読めるか試してみては?
796:デフォルトの名無しさん
07/05/23 00:30:01
>>771 お願いします。
797:デフォルトの名無しさん
07/05/23 00:30:41
>>795
日本語でおk
798:気まぐれアナスイ
07/05/23 00:32:13
>>797
間抜けてますよ?
799:デフォルトの名無しさん
07/05/23 00:33:14
>>795
Japaneseでおk
800:741 ◆pIsMrTUaME
07/05/23 00:33:30
催促するようで悪いのですが>>741も忘れないでください。
お願いします。
801:デフォルトの名無しさん
07/05/23 00:40:16
この板で軍を抜いて勢いがあるスレでワロタ
無償でクソガキどもの宿題を肩代わりするボランティア精神旺盛なあつまりだなw
802:デフォルトの名無しさん
07/05/23 00:42:02
実際のところ、勢いがあるのは詰まらない議論が泥沼化するところにあるのさw
803:デフォルトの名無しさん
07/05/23 00:44:50
>>800
悪いと思うなら催促するな。
#include<stdio.h>
void swap(int *a, int *b){ int c = *a; *a = *b; *b = c; }
void sort(int *ptr, int n){
int i, j, min;
for(i = 0; i < n-1; ++i){
min = i;
for(j = i+1; j<n; ++j) if(*(ptr+min) > *(ptr+j)) min = j;
swap(ptr+i, ptr+min);
}
}
int main(){
int i, ptr[10], n = 10;
for(i = 0; i < n; ++i) scanf("%d", &ptr[i]);
sort(ptr, n);
for(i = 0; i < n; ++i) printf("%d ", ptr[i]);
return 0;
}
804:デフォルトの名無しさん
07/05/23 00:47:54
>>803 そういうことを言うくらいならレスするな。
805:デフォルトの名無しさん
07/05/23 00:51:56
雰囲気悪いね、ここ。
806:デフォルトの名無しさん
07/05/23 00:54:36
>>800
氏ね。書けるんだったらさっさと教えろクズ
807:デフォルトの名無しさん
07/05/23 01:00:11
>>805
今ものすごく良いよ、このスレのふいんき(なぜか変換されな)
808:741 ◆pIsMrTUaME
07/05/23 01:10:07
>>803
ありがとうございます。
809:気まぐれアナスイ
07/05/23 01:15:09
#include <stdin.h>
int main();
???? {
(
[0,1,2,3,4,5,6,7,8,9] >= [0,1,2,3,4,5,6,7,8,9] &&
[0,1,2,3,4,5,6,7,8,9] <= [0,1,2,3,4,5,6,7,8,9];
if [input= "OS/2"];
?? "10" == ?? "0,1,2,3,4,5,6,7,8,9" == ??? "." == ?? "4");
}
810:デフォルトの名無しさん
07/05/23 01:17:39
>>807
雰囲気は「ふんいき」って読むんです
君は悪くない。ゆとり時代が悪いんだ
811:デフォルトの名無しさん
07/05/23 01:20:12
ふいんきに釣られる奴久々に見たな
812:デフォルトの名無しさん
07/05/23 01:21:05
>>807
×変換されな
○変換されない
ゆとり乙
813:デフォルトの名無しさん
07/05/23 01:23:02
int変数で(2/3)を、またdouble変数で(2.0/3.0)を計算し、結果の相違について考察しなさい。
って課題が出たので教えて下さい。
4月からはじめたのでサッパリわかりません;;
814:デフォルトの名無しさん
07/05/23 01:24:26
>>813
Cで実行して
結果の違いについて考えてみればいいじゃないか
815:デフォルトの名無しさん
07/05/23 01:24:47
>>810>>812
ネタにry
ここまでry
816:813
07/05/23 01:28:11
>>814
自分、ホントに全くC出来ないんですよ。
でも、今日提出しないといけなくってorz
結果だけでも教えてもらえないでしょうか?
お願いします。
817:デフォルトの名無しさん
07/05/23 01:30:50
>>812=>>810=ふんいきに釣られた2ちゃん慣れしていない初心者w
ぷぷっ、その程度でゆとりとか言い出すくらいだからお前は気持ち悪いって言われるんだよw
818:デフォルトの名無しさん
07/05/23 01:32:31
810 名前:デフォルトの名無しさん 投稿日:2007/05/23(水) 01:17:39
>>807
雰囲気は「ふんいき」って読むんです
君は悪くない。ゆとり時代が悪いんだ
↑お前は悪い、2ちゃん慣れしていないのが悪いんだ。
812 名前:デフォルトの名無しさん 投稿日:2007/05/23(水) 01:21:05
>>807
×変換されな
○変換されない
ゆとり乙
↑2ちゃんねるでのゆとりの無さが仇となった香具師乙
819:デフォルトの名無しさん
07/05/23 01:33:14
>>816
出来ない所のレベルじゃないぞ
これからどうすんだ?
テストあるだろ??
釣り・・・?
820:デフォルトの名無しさん
07/05/23 01:35:32
>>813 >>816
Cができないのはいいとしても、次からは>>1くらい読もうな
#include<stdio.h>
int main(){ printf("%d %f\n", 2/3, 2.0/3.0); return 0; }
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4180日前に更新/299 KB
担当:undef