ぼるじょあがC/C++の宿題を片づけますYO! 47代目
レス数が1000を超えています。これ以上書き込みはできません。
0001ぼるじょあ ◆yBEncckFOU
2005/07/05(火) 09:19:12わからない宿題を片づけますYO!
――【注意点】―――――――――――――――――――――――――
・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
・複雑なAAはスレが荒れたり問題が埋もれる原因になりますので使用を控えてください。
―――――――――――――――――――――――――――――――
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS:Windows/Linux/等々
[3.2] コンパイラ(バージョン):
[3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで または 無期限 のいずれか
[5] その他の制限:どこまで習っているか、等々
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【前スレ】
C/C++の宿題を片付けます 46代目
http://pc8.2ch.net/test/read.cgi/tech/1119514274/
【歴代スレは>>2-13】
0951ミキミキ
2005/07/16(土) 08:25:14スレッド立てたので来て下さいな。
0952デフォルトの名無しさん
2005/07/16(土) 08:30:530953デフォルトの名無しさん
2005/07/16(土) 08:49:41素数は無限に存在するので制約条件がないと無理
0954デフォルトの名無しさん
2005/07/16(土) 08:53:22ぼるじょあがC/C++の宿題を片づけますYO! 48代目
http://pc8.2ch.net/test/read.cgi/tech/1121471445/
0955ミキミキ
2005/07/16(土) 08:54:44いちばん簡単のやつで…
0956デフォルトの名無しさん
2005/07/16(土) 09:06:53#include <stdio.h>
int main(void) {puts("2"); return 0;}
0957デフォルトの名無しさん
2005/07/16(土) 09:07:49どうがんばっても現代のコンピュータは無限を扱えない。
0958ミキミキ
2005/07/16(土) 09:15:23はい。
0959デフォルトの名無しさん
2005/07/16(土) 09:21:50// 素数を求めるプログラム
#include <stdio.h>
#include <windows.h>
#include <process.h>
// 検索する数字+2
#defineMAX 1000
// プロトタイプ
int IsPrime(int number);
unsigned __stdcall Prime(void *number);
// メイン
int main(int argc, char *argv[])
{
intiLoop;
intiThreadNumber = 0;
unsignedthreadaddr;
HANDLEhThread[MAX] = {0};
HANDLEtemp;
for(iLoop = 0; iLoop < MAX; iLoop++)
{
// スレッドを立てる
temp = (HANDLE)_beginthreadex(NULL, 0, Prime, (void *)(iLoop+2), 0, &threadaddr);
if(temp != 0){
hThread[iThreadNumber] = temp;
iThreadNumber++;
}
}
0960デフォルトの名無しさん
2005/07/16(土) 09:24:58WaitForSingleObject(hThread[iLoop], INFINITE);
if(hThread[iLoop] != NULL){
CloseHandle(hThread[iLoop]);
hThread[iLoop] = NULL;
}
}
return 0;
}
unsigned __stdcall Prime(void *number)
{
if(IsPrime((int)number) == 1)
{
printf("%d is prime number\n", (int)number);
}
_endthread((int)number);
return (int)number;
}
int IsPrime(int number)
{
int iLoop;
for(iLoop = 2; iLoop < number; iLoop++){
if(number % iLoop == 0){ return 0; }
}
return 1;
}
0961デフォルトの名無しさん
2005/07/16(土) 09:30:45WaitForSingleObjectやらハンガリアン記法やらWindows向けだね。
0962デフォルトの名無しさん
2005/07/16(土) 10:07:530963デフォルトの名無しさん
2005/07/16(土) 12:07:10プリントアウトするプログラムを作成しなさい。
[1] 授業単元: プログラミング
[2] 問題文整数は約数(1は含むが、その整数自身は含まない)の和がその整数に等しい とき、
完全数と呼ばれる。
引数numberが完全数である かどうかを判定する関数int IsPerfect(int number)と
約数判定関数int IsDivisor(int dividend, int divisor)を作成しなさい。
次にこれらの関数を使って、2 から 10000 までの間にあるすべての完全数を プリントアウトするプログラムを作成しなさい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:7/17まで
[5] その他の制限:最初に、main関数がきて、後から、
int IsPerfect(int number)、IsDivisor(int dividend, int divisor)が
くるのをおねがいします。 あと、main関数内に、ループが着ます。
よろしくお願いします
0964デフォルトの名無しさん
2005/07/16(土) 12:28:34>あと、main関数内に、ループが着ます。
何を?
0965デフォルトの名無しさん
2005/07/16(土) 12:32:16#include <stdio.h>
#include <stdlib.h>
int IsPerfect(int number);
int IsDivisor(int dividend, int divisor);
int main(int argc, char **argv) {
int i;
for (i = 2; i <= 10000; i++) {
if (IsPerfect(i)) {
printf("%d\n", i);
}
}
return 0;
}
int IsDivisor(int dividend, int divisor) { return dividend % divisor ? 0 : 1; }
int IsPerfect(int number) {
int i, sum = 1;
for (i = 2; i <= number / 2; i++) {
if (IsDivisor(number, i)) { sum += i; }
}
return number == sum;
}
0966デフォルトの名無しさん
2005/07/16(土) 13:14:46逆ボーランド www
0967デフォルトの名無しさん
2005/07/16(土) 13:16:390968デフォルトの名無しさん
2005/07/16(土) 18:10:090969デフォルトの名無しさん
2005/07/16(土) 18:51:37[2] 問題文:文字列と整数を入力し、以下の結果になるようなプログラムを作れ
例)文字列:satou 整数8
s
sa
sat
sato
satou
satous
satousa
satousat
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ:.net2003
[3.3] 言語:C
[4] 期限:7/19
[5] その他の制限:for文でおながいします。
おねがいしますorz
0970デフォルトの名無しさん
2005/07/16(土) 18:58:15#include <stdlib.h>
#include <stdring.h>
int main(int argc, char *argv[])
{
char s[] = "satou";
int len = strlen(s);
int n = atoi(argv[1]);
int i, j;
for (i = 1; i <= n; i++) {
for (j = 0; j < i; j++) {
putchar(s[i%n]);
}
putchar('\n');
}
return 0;
}
0971デフォルトの名無しさん
2005/07/16(土) 19:13:08putchar(s[i%n]);
のところ
putchar(s[j%len]);
じゃないの?
0972デフォルトの名無しさん
2005/07/16(土) 19:15:180973デフォルトの名無しさん
2005/07/16(土) 19:15:40いや、テストすんのめんどーだったんです・・・
0974デフォルトの名無しさん
2005/07/16(土) 19:17:39{
char s[] = argv[1];
int len = strlen(s);
int n = atoi(argv[2]);
int i, j;
for (i = 1; i <= n; i++) {
for (j = 0; j < i; j++) {
putchar(s[i%len]);
}
putchar('\n');
}
return 0;
}
やはりテストしてないわし。
0975デフォルトの名無しさん
2005/07/16(土) 19:19:29[2] 問題文(含コード&リンク): 双方向リストにおける、リストの最後の次の位置を返すendl
リストの先頭の位置を返す(ただしリストが空ならendl)first、空リストを返すinitlistという各
関数を作成するもの
[3] 環境
[3.1] OS:
[3.2] コンパイラ(バージョン): 分かりません
[3.3] 言語:C
[4] 期限:なるたけ早く
[5] その他の制限:以下に俺が作成したセグメントエラーを起こしたものを貼ります。
/*双方向リストのヘッダファイルの読み込み*/
typedef int elementtype;
struct node{
elementtype element;
struct node * next;
struct node * previous;};
typedef struct node *link;
typedef link list;
typedef link position;
0976デフォルトの名無しさん
2005/07/16(土) 19:20:13#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int i, n;
if (argc < 3) {
fprintf(stderr, "文字列と整数を指定せよ\n");
return 1;
}
n = atoi(argv[2]);
for (i = 0; i < n; ++i)
printf("%*s\n", i, argv[1]);
return 0;
}
0977デフォルトの名無しさん
2005/07/16(土) 19:20:57position i;
while(L->next!=0){
L=L->next;
}
i=L->previous->next;
return i->next;
}
list initlist(){
list n;
n=(list)malloc(sizeof(*n));
n->next=0;
n->previous=0;
return n;
}
position first(list L){
position p;
if(L!=initlist()){
p=L;
return p;}
else return endl(L);
}
間違いを指摘してください。
0978デフォルトの名無しさん
2005/07/16(土) 19:22:020979デフォルトの名無しさん
2005/07/16(土) 19:25:38オ�hル
0980デフォルトの名無しさん
2005/07/16(土) 19:29:40リストとノードの構造を分けて、
リストが先頭と末尾を保持するのが簡単だわな
typedef struct list {
struct node *first;
struct node *last;
} list;
position endl(list l) { return l->last; }
position start(list l) { return l->first; }
list initlist() {
list *l = malloc(sizeof(list));
l->first = l->last = (struct node*)list;
}
0981デフォルトの名無しさん
2005/07/16(土) 19:30:17⊂⌒( ・ω・) はいはいわろすわろす
`ヽ_っ⌒/⌒c
⌒ ⌒
(´〜`;)ああ、イヤダイヤダ。
夏厨が湧き出しちゃったよ。
これから9月まで2ch全体が
つまらなくなるだよな。さっさと
夏終われ。ガキは学校でクセエ
汁垂らして部活でもやってろ。
あーあー、ウザイウザイw
0982デフォルトの名無しさん
2005/07/16(土) 20:16:24int main(int argc, char **argv) {
int printf(const char *, ...), IsDivisor(int, int), IsPerfect(int), i;
for (i = 2; i <= 10000; i = i++)
if (IsPerfect(i)) printf("%d\n", i);
return 0;
}
int IsDivisor(int dividend, int divisor) { return !(dividend % divisor);}
int IsPerfect(int number) {
int i, sum = 1;
for (i = 2;; i++) {
if (i * i >= number)
return number == (i * i == number ? sum + i : sum);
if (IsDivisor(number, i)) sum += i + number / i;
}
}
0983982
2005/07/16(土) 20:29:09何だこりゃ
i++だけでいい
0984デフォルトの名無しさん
2005/07/16(土) 22:31:58[2] 問題文:
入力データは正の整数であり、入力順とは逆に線形リストに格納していき、
負の数の入力で入力終了とする。しかし、そこから再び入力を受け付け、
入力されたデータと一致するデータをリストから取り除くプログラムを作成せよ。
ただし毎回リスト全体を印字すること。
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ(バージョン):Borland C++ Compiler 5.5
[3.3] 言語:C
[4] 期限:2005年7月19日 12時まで
[5] その他の制限:できるだけ単純にお願いします。
0985デフォルトの名無しさん
2005/07/16(土) 23:16:56ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/735.txt
俺も勉強中なんで良くないソースだと思うが参考にでもしてくれ
0986デフォルトの名無しさん
2005/07/16(土) 23:37:25http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/736.c
もう回答出てるけどせっかく書いたから載せよっと。
0987デフォルトの名無しさん
2005/07/16(土) 23:44:32http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/738.c
0988デフォルトの名無しさん
2005/07/16(土) 23:46:400989デフォルトの名無しさん
2005/07/17(日) 00:05:47ありがとうございます。
とりあえず今、自分でやってるんですけど、
最後まで完成しなければ使わせてもらいます。
今のままじゃ無理な予感が充満してますけどw
0990デフォルトの名無しさん
2005/07/17(日) 00:14:38だとしたら
L->nextとかの表記ができなくなりません?
0991デフォルトの名無しさん
2005/07/17(日) 00:22:35簡単にしか見てないが980のは問題ないぞ
0992デフォルトの名無しさん
2005/07/17(日) 00:49:020993デフォルトの名無しさん
2005/07/17(日) 01:45:09[1] 授業名:Cプログラミング基礎
[2] 問題:
クイックソートによる整列のプログラムで、
正の整数の入力を受け付け、負の数の入力により、
これまで入力されたデータのソート結果を表示するプログラムを作成する。
入力は最大10万個まで受け付けるものとする
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ(バージョン):Borland C++ Compiler 5.5.1
[3.3] 言語:C/C++どちらでも
[4] 期限:2005年7月18日中で。
[5] その他の制限: 馬鹿でもわかるように簡単(易しく)にお願いします。
0994デフォルトの名無しさん
2005/07/17(日) 01:47:12ただのクイックソートなんて死ぬほどサンプルコードあるんだから自分で探せ
0995デフォルトの名無しさん
2005/07/17(日) 02:03:17は?
クイックソート作れなんて問題にないし
qsort()使えばいいんじゃねの?
0996デフォルトの名無しさん
2005/07/17(日) 02:04:09それなら尚のこと困る点皆無じゃねーか
0997デフォルトの名無しさん
2005/07/17(日) 02:29:34http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/739.txt
バカにもわかったふりができるようにqsortの中身は隠してます。
0998デフォルトの名無しさん
2005/07/17(日) 02:31:32お前みたいな馬鹿にも答えられる問題だ。さっさと答えてやれ。
0999デフォルトの名無しさん
2005/07/17(日) 02:33:34バカバカうるせーよバカwww
1000デフォルトの名無しさん
2005/07/17(日) 02:34:4110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。