トップページ⇒tech
1001コメント387KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/01/18(水) 03:35:45
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
 投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 2.9 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

【前スレ】
C/C++の宿題を片付けます 57代目
http://pc8.2ch.net/test/read.cgi/tech/1136768567/l50#tag993
【過去スレ一覧】
http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
0075デフォルトの名無しさん2006/01/18(水) 20:11:37
よろしくお願いします
0076デフォルトの名無しさん2006/01/18(水) 20:14:46
[1] 授業単元: 情報処理基礎
[2] 問題文:CGIを使ったプログラムを作成せよ
        
        
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: BCC
 [3.3] 言語: C
[4] 期限: 1月23日
[5] その他の制限: CGIを使っていればどういうプログラムでもいいです。

よく分からないので、お願いいたします。
0077デフォルトの名無しさん2006/01/18(水) 20:17:03
>>76
http://www.kumei.ne.jp/c_lang/intro/no_80.htm
0078デフォルトの名無しさん2006/01/18(水) 20:18:38
>>77
ありがとうございます
0079デフォルトの名無しさん2006/01/18(水) 20:21:11
>>77
もう少し複雑なプログラムとかもありますか?
>>76に書き忘れたのですが、あと2つCGIプログラムを作らない
といけないらしいです
0080デフォルトの名無しさん2006/01/18(水) 20:28:14
ちゃんと内容を書け。
0081デフォルトの名無しさん2006/01/18(水) 21:08:16
>>68
C++?
Cじゃないの?
本当にC++?
ウソじゃない?
0082デフォルトの名無しさん2006/01/18(水) 21:14:58
>>43
>>46
ありがとうございました、助かりました
0083デフォルトの名無しさん2006/01/18(水) 21:43:27
>>81
ウソではないですよ??
C++です
0084デフォルトの名無しさん2006/01/18(水) 21:44:25
>>83
C と C++ の区別が出来てますか、ということね。
文字を出力するのに使うのは printf と習ったか、cout と習ったか、どっち?
0085デフォルトの名無しさん2006/01/18(水) 21:51:25
>>84
coutと習いましたよ
0086デフォルトの名無しさん2006/01/18(水) 21:54:02
#include <:iostream.h>
と習いましたか?
#include <iostream>
と習いましたか?
0087デフォルトの名無しさん2006/01/18(水) 21:54:05
>>84
この問題を解くのに、
そんなにCとC++の違いが影響するのか?

0088デフォルトの名無しさん2006/01/18(水) 21:55:12
違ってたらエラーが出ます。直してください。と言われる<影響
0089デフォルトの名無しさん2006/01/18(水) 21:55:49
言語 C++って書いてあるからC++で解答したら、
やっぱりCで書いてって言われたことある。
0090デフォルトの名無しさん2006/01/18(水) 21:57:12
>>86
#include<iostream.h>と習いました
0091デフォルトの名無しさん2006/01/18(水) 22:03:30
標準C++は、普及してないみたいだな。・・・と、いうわけで、C++の人、よろしく。
標準C(C89)はけっこう普及しとるようだが。
0092前スレ9202006/01/18(水) 22:10:10
スレ住人様のご助力のおかげで無事プログラム完成、提出完了致しました

なんのお礼も出来ませんが、とりあえずぬこ置いてきます
ttp://www.uploda.org/uporg289807.jpg
0093デフォルトの名無しさん2006/01/18(水) 22:11:04
>>74
2分探索 真面目に書くのメンドクセ。
#include<stdio.h>
unsigned ulog2(unsigned int n){
    unsigned r=0,i=16;
    do if(n>>i)n>>=i,r+=i;while(i>>=1);
    return r;
}
int main(void){
    int i;
    printf("数列の要素数  最悪の比較回数\n");
    for(i=1;i<=100000;++i)printf("%12d%16d\n",i,ulog2(i)+1);
    return 0;
}
0094デフォルトの名無しさん2006/01/18(水) 22:42:17
[1] 授業単元: 情報処理研究
EUCコードでひらがな「あ」は(164,162)の2バイトです。
文字→EUCコード数値への変換プログラムはできたのですが、
逆(EUCコード数値→文字)ができません・・・
つまり
(164,162) を入力して「あ」に変換するにはどうすればいいのでしょうか?
お願いします。
0095デフォルトの名無しさん2006/01/18(水) 22:45:52
>>93
ありがとうございます
助かりました
0096デフォルトの名無しさん2006/01/18(水) 22:50:47
>>92
いわれのない非難だが、コラっぽい笑顔がムカつく_| ̄|○
名前忘れた関西系の大御所漫才師みたい
0097デフォルトの名無しさん2006/01/18(水) 22:53:19
>>94
これでいいのかな?
int main(void)
{
int a,b;
::printf("code1 code2->");
::scanf("%d%d",&a,&b);
char s[3] = {(char)a,(char)b,0};
::printf("->");
::printf(s);
::system("pause");
return 0;
}
0098デフォルトの名無しさん2006/01/18(水) 22:55:36
>>94
#include <stdio.h>
int main( void )
{
char a = 164, b = 162;
printf("%c%c\n", a, b );
return 0;
}

>>96
気になるから是が非でも名前を思い出してくれ。
てゆかこの画像有名だよね。
0099デフォルトの名無しさん2006/01/18(水) 22:56:16
>>97
C++でCを書くなよw
0100デフォルトの名無しさん2006/01/18(水) 22:58:00
system("pause") って何?
0101デフォルトの名無しさん2006/01/18(水) 23:01:09
>>97
って、DOS プロンプトで EUC でるかよ
「これでいい?」とかいって、いいわけない
0102デフォルトの名無しさん2006/01/18(水) 23:06:25
>>96
つるべ?
0103デフォルトの名無しさん2006/01/18(水) 23:08:02
鶴瓶w
0104デフォルトの名無しさん2006/01/18(水) 23:10:02
ツッコミ激しいな。
systemは消して。
0105デフォルトの名無しさん2006/01/18(水) 23:11:51
ttp://www.tsurube.net/
今や鶴瓶も.NETですよw
0106デフォルトの名無しさん2006/01/18(水) 23:23:12
1] 授業単元: 情報処理
[2] 問題文(含コード&リンク):
list<int> 型の要素全ての和を求める関数 int sumlist(list<int>&) を定義して下さい.
#include <iostream>
#include <list>
using namespace std;
int main(){
list<int> lst;
for(int i=0 ; i < 10 ; i++)lst.push_back(i);
cout << "size =" << lst.size() << endl;
for(list<int>::iterator it = lst.begin(); it != lst.end() ; ++it)
cout << *it << ' ';
cout << endl;

for(list<int>::iterator it = lst.begin(); it != lst.end() ;){
if((*it) % 3 == 0){
it = lst.erase(it);
}
else {
++it; } }
for(list<int>::iterator it = lst.begin(); it != lst.end() ; ++it)
cout << *it << ' ';
cout << endl;
return 0;}
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: マイクロソフトビジュアルスタジオ
 [3.3] 言語: C++
[4] 期限: 1月23日
[5] その他の制限:
0107むう2006/01/18(水) 23:26:54
>>73
すいません。スルーされそうなのでどなたか
お願いします。
自分では何やっていいか全くわからずです…。
友達は「幅優先探索」使えばいーんじゃねー?とか言ってたんですが
それも意味不明です・・。
0108デフォルトの名無しさん2006/01/18(水) 23:41:02
>>68
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1496.zip
いや、まず謝っておく。すまない。
2科目をまとめて構造体に突っ込んだのが失敗だった。
おかげで複雑になってしまった。
問題文にポインタ変数を扱い〜って書いてあるけど、直接は扱ってない。
iteratorがポインタだと言い張ればOK。
理解するより自分で書いた方が早そうな予感。
0109デフォルトの名無しさん2006/01/18(水) 23:41:35
>>107
幅優先探索ってのはある地点(A)から1回で移動可能な全ての場所に行ってみて
その中でゴールがあれば終了。この時点でA→どこかってのが全部探索できた
次にゴールにどれも達してなければ、それぞれの地点(Bn)からまた1回で移動できる
全ての地点へ行ってみて同様の判定をする。これでA→Bn→どっかを探索終了

これを繰り返していくのが幅優先探索
対照的なのに深さ優先ってのがあるが、これはとりあえずA→Bと決めたら
後はそれをひたすら終端まで探った上で、ダメなら一段戻ってまた最後まで
ってのをひたすら繰り返す

無期限ならとりあえず自力で思うように作ってみれ
そっちの方が自分のためにもなる


>>106
前スレで俺が答えた
あれで不満なら氏ね
0110デフォルトの名無しさん2006/01/18(水) 23:44:08
[1] 授業単元:プログラミング1
[2] 問題文(含コード&リンク):
学籍番号と試験の点数のペアーを入力するものとする(「0 0」を入力すると終了し,データ数は100以下である)。
なお,データは,学籍番号順に入力されるわけではない。
このとき,試験の点数の上位11人の学籍番号と試験の点数を,点数が高い順に出力するプログラムを書け。
ただし,同じ点数の学生がいた場合は,最初に入力されたデータを優先するものとする。
結果は,学籍番号と点数を1つ以上のスペースで区切り,1行に一人ずつ出力せよ。

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:VC6.0
 [3.3] 言語:C++
[4] 期限: 一月下旬
[5] その他の制限:特になし。よろしくお願いします。
0111デフォルトの名無しさん2006/01/19(木) 00:02:19
[1] 授業単元:プログラミン
[2] 問題文(含コード&リンク):
文字列(空白含まない)の子音だけを取り出す関数getconsntを作成せよ。
getconsntの引数は2つ。第1引数は対象の文字列、
第2引数は作成される(子音だけの)文字列を入れる配列とせよ。

例
char ans[100];
.....
getconsnt("Doraemon",ans);
printf("%s\n",ans)

↓

Drmnと表示される

[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:borland
 [3.3] 言語:C
[4] 期限:1月23日まで
[5] その他の制限:

初心者にも分かるような簡単なプログラムでお願いします。
出来れば解説コメントがあるととても助かります。_(._.)_
0112デフォルトの名無しさん2006/01/19(木) 00:09:47
>>106
#include <list>
#include <numeric>
int sumlist(std::list<int>& src) {
    return std::accumulate(src.begin(), src.end(), 0);
}

C/C++の宿題を片付けます 57代目
http://pc8.2ch.net/test/read.cgi/tech/1136768567/761
のどこが不満だったのかが書かれない限り君の求める答えは
出ない。
0113デフォルトの名無しさん2006/01/19(木) 00:11:22
>>106
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1497.txt

>>109
ありゃガイシュツだったかスマソ。

>>69
ついに名前50人分のリストは上がらなかったな。もう寝るぞ。プログラムは完成
してて、後は名前を入れるだけだったんだが。
0114デフォルトの名無しさん2006/01/19(木) 00:12:28
>>112
そいつは俺もすぐに思いついたが、一応ループにしたのが>>113。
確かに出題条件を読むと、アルゴリズムを使ってはいけないとは
どこにも書いてないもんな。
0115デフォルトの名無しさん2006/01/19(木) 00:15:59
>>111
できるかぎり分かりやすく書いた

#include <stdio.h>
int isvowel( char c )
{
const char vowels[] = "aeiouAEIOU", *p;
for ( p = vowels; *p; ++p )
if ( *p == c ) return 1;
return 0;
}
void getconsnt( const char *str, char *ret )
{
for ( ; *str; ++str ) {
if ( isvowel( *str ) ) continue;
*ret++ = *str;
}
*ret = 0;
}
int main( void )
{
char ans[100];
getconsnt("Doraemon",ans);
printf("%s\n",ans);
return 0;
}
0116デフォルトの名無しさん2006/01/19(木) 00:23:23
>>111
俺もわかりやすく書いたつもり
#include <stdio.h>
void getconsnt(const char* src, char* dest) {
    /* srcのそれぞれの文字に対して処理を順番に行う。 */
    do {
        switch(*src) {
            case 'a': case 'i': case 'u': case 'e': case 'o':
            case 'A': case 'I': case 'U': case 'E': case 'O':
                /* aiueoのいずれかなら何もしない */
                break;
            default:
                /* aiueo以外ならsrcからdestに文字をコピーし、destを1文字進める */
                *dest = *src; dest++;
                break;
        }
    } while (*src++ != '\0'); /* いずれにせよ、srcを1文字進める */
}
int main(void) {
    char ans[100];
    getconsnt("Doraemon", ans);
    printf("%s\n", ans);
    return 0;
}
0117デフォルトの名無しさん2006/01/19(木) 00:30:09
>>110
(C++がわかっていれば)わかりやすく書いたつもり

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1498.txt
0118デフォルトの名無しさん2006/01/19(木) 00:33:22
ちんちんがおっきくなるプログラムを作成せよ
011927 ◆oHb7yqS7OQ 2006/01/19(木) 00:41:15
すみません、遅ればせながら
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1500.txt

よろしくお願いいたします。
01201102006/01/19(木) 00:52:05
>>117
ありがとうございます。
マヌケな質問とは思いますが出力する数字を左詰めにするにはどうすれば良いでしょうか?
大学に送信すると自動的に適当な数字を入力して正否を確認してくれるのですが
どうやら出力する答えは左詰めで

番号 点数
番号 点数

となっていないとないと間違い扱いになるみたいです。
私には>>117のプログラムは難しくてほとんど手を付けれ無いのでよろしくお願いします。
0121デフォルトの名無しさん2006/01/19(木) 01:01:47
>>117
operator<の動きが直感に反するので、
通常の比較にして、stable_sortにはrbegin(),rend()を渡すほうがよいかと。
0122デフォルトの名無しさん2006/01/19(木) 01:05:01
>>110>>120
単純に出力する方法
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1501.txt

短いコードだけど、これを完璧に理解するのは大変だと思うので、
理解してもらわなくてヨシ。

0123デフォルトの名無しさん2006/01/19(木) 01:07:09
>>121
そういわれれば。気をつけるよ。
0124デフォルトの名無しさん2006/01/19(木) 01:09:53
[1] 授業単元:プログラミング言語�U
[2] 問題文(含コード&リンク):
打ち込んだ式を計算する、* / ( )等の優先順位を含む四則演算のプログラムを作れ。
ただし、イコールキー(=)を押下した時点で答えをイコールの右に表示させること。

[3] 環境
 [3.1] OS: windowsXP
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語: C
[4] 期限: 2006年01月27日09:00まで
[5] その他の制限: 特になし。よろしくお願いします
0125デフォルトの名無しさん2006/01/19(木) 01:13:50
ただし以降がかなり無理な予感。
0126デフォルトの名無しさん2006/01/19(木) 01:19:40
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):

次のintの配列に格納されている整数がある、キーボードから整数値を入力。
入力した整数が配列にあるかをディスプレイに表示するプログラムを作成せよ。

int a[] = {15 10 5 1 8 21 5 18 ];

[3] 環境
 [3.1] OS: Windows
 [3.2] VC
 [3.3] 言語:C
[4] 期限: ([2006年01月19日12:00まで]
[5] その他の制限: サーチにちょっと触れた所までです。


サーチの授業の予習として出されたのですが分かりません。
どうかよろしくお願いいたします。
0127デフォルトの名無しさん2006/01/19(木) 01:24:31
>>126
#include<stdio.h>
int main(void){
int a[] = {15,10,5,1,8,21,5,18};
int x,i;
scanf("%d",&x);
for(i=0;i<8;i++)
if(a[i]==x){
printf("%d番目に%dはある\n",i+1,x);
return 0;
}
puts("無いな");
return 0;
}
01281102006/01/19(木) 01:29:03
>>122
ありがとうございました。
0129デフォルトの名無しさん2006/01/19(木) 01:35:37
>>128
別解。
#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
struct student {
    int student_num, score;
};
std::ostream& operator<<(std::ostream& ost, const student& rhs) {
    ost << rhs.student_num << ' ' << rhs.score;
    return ost;
}
std::istream& operator>>(std::istream& ist, student& rhs) {
    ist >> rhs.student_num >> rhs.score;
    return ist;
}
bool operator<(const student& lhs, const student& rhs) {
    return lhs.score < rhs.score;
}
int main() {
    std::vector<student> container;
    for (int count = 0; count < 100; ++count) {
        student input;
        std::cin >> input;
        if (input.student_num == 0 && input.score == 0) break;
        container.push_back(input);
    }
    std::stable_sort(container.rbegin(), container.rend());
    std::copy(container.begin(), container.begin() + std::min(std::vector<student>::size_type(11), container.size()), std::ostream_iterator<student>(std::cout, "\n"));
    return 0;
}
0130デフォルトの名無しさん2006/01/19(木) 01:39:26
>>124
それは環境依存な内容で、与えられた環境のコンソールを使って
標準Cを使っては実現できない。参考までに以前出した電卓をどぞ。

#include <stdio.h>
int error_code; double expr(FILE *fp); double term(FILE *fp); double fact(FILE *fp);
double expr(FILE *fp) {
    double ret = term(fp); int ope;
    while ((ope = fgetc(fp)) == '+' || ope == '-') if (ope == '+') ret += term(fp); else ret -= term(fp);
    ungetc(ope, fp);
    return ret;
}
double term(FILE *fp) {
    double ret = fact(fp), temp; int ope;
    while ((ope = fgetc(fp)) == '*'|| ope == '/' || ope == '%') if (ope == '*') ret *= term(fp); else if ((temp = term(fp)) != 0.) if (ope == '/') ret /= temp; else ret = (int)ret % (int)temp; else ret = error_code = 1;
    ungetc(ope, fp);
    return ret;
}
double fact(FILE *fp) {
    double d; int parenthesis;
    if (fscanf(fp, "%lf", &d) == 1) return d;
    else if ((parenthesis = fgetc(fp)) =='(') {
        d = expr(fp);
        if ((parenthesis = fgetc(fp)) != ')') return error_code = 2; else return d;
    }
    else return error_code = 3;
}
int main(void) {
    double d; error_code = 0; d = expr(stdin);
    if (!error_code) printf("result:%lf", d);
    else printf("error code:%d", error_code);
}
01311242006/01/19(木) 01:46:34
>>125,130
環境依存と判らずにすみませんでした。

>>130
ありがとうございます。参考にさせてもらいます
0132デフォルトの名無しさん2006/01/19(木) 01:49:21
>>119
横から。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1502.txt

ポインタが理解できないと言われても困るが・・・・・
何とか頑張って理解してくれ。
0133デフォルトの名無しさん2006/01/19(木) 07:40:07
0134デフォルトの名無しさん2006/01/19(木) 08:24:32
>>108
ありがとうございました!!
iteratorがポインタだと言い張り提出しました
0135デフォルトの名無しさん2006/01/19(木) 09:52:09
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
  キーボードからファイル名を読み込み、そのファイル中の数字、文字の個数を
  カウントして画面に表示するプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] borland
 [3.3] C
[4] 期限: 2006年1月20日16:00まで
[5] その他の制限: 特になし

これ出さないと単位がやばいのに、さっぱり分かりません。
お願いします。
0136デフォルトの名無しさん2006/01/19(木) 09:54:28
文字というのは全角も含むのかね?文字コードは?
0137デフォルトの名無しさん2006/01/19(木) 10:07:01
半角のみ
文字コードはアスキーコードです。
0138デフォルトの名無しさん2006/01/19(木) 10:57:18
>>135
#include <stdio.h>
#include <ctype.h>
int main()
{
long ch[256] = {0};
char fn[256];
int in;
FILE *fp;
printf("INPUT FILENAME>>");scanf("%s",fn);
if ((fp = fopen(fn, "r")) != NULL) {
while ((in = getc(fp)) != EOF) ch[in]++;
for (in = 0; in <= 255; in++) if(isalnum(in) && ch[in] != 0) printf("%c %ld\n",in,ch[in]);
fclose(fp);
}
return 0;
}
こんなもんかな?あまりチェックしてないからバグあったら自分でなんとかしてくれ。
0139デフォルトの名無しさん2006/01/19(木) 11:15:33
>>138
ありがとうございます。ちゃんと動きました。
ただ、文字数の合計を表示するには、どうすればいいのでしょうか?
0140デフォルトの名無しさん2006/01/19(木) 11:17:11
>>1
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
0141デフォルトの名無しさん2006/01/19(木) 11:19:23
文字と数字の個数のカウントだから138のソースは見当違いだな。
0142デフォルトの名無しさん2006/01/19(木) 11:23:47
じゃあ、こうか。
long ch = 0;
char fn[256];
int in;
FILE *fp;
printf("INPUT FILENAME>>");scanf("%s",fn);
if ((fp = fopen(fn, "r")) != NULL) {
while ((in = getc(fp)) != EOF) if(isalnum(in)) ch++;
printf("数字、文字の個数=%ld\n",ch);
fclose(fp);
}
return 0;
0143デフォルトの名無しさん2006/01/19(木) 11:29:45
>>118
#include <stdio.h>

int main(void)
{
int i;
char name[256];
printf("名前を入力 < ");
gets(name);
printf("回数を入力 < ");
scanf("%d",&i);
for (;i>0;i--){
printf("%s君、大好き\n",name);
}
return 0;
}
これでどうだ?
後は自分の想像力でw
0144デフォルトの名無しさん2006/01/19(木) 11:50:35
>>142
ありがとうございます。
何とか進級できそうです。
0145デフォルトの名無しさん2006/01/19(木) 14:25:01
このスレはある程度簡単なものだったら初心者には勉強にはなるが、
難しいと退屈だな。
誰か初心者向けの問題だしてくれ。
スレ違いだったらスマン
0146デフォルトの名無しさん2006/01/19(木) 14:28:43
>>145
過去スレにいくらでもあるだろ
かってに探してやれよ
0147デフォルトの名無しさん2006/01/19(木) 14:36:48
[1] 授業単元:プログラミング言語�U
[2] 問題文(含コード&リンク): http://omegaterritory.fc2web.com/
[3] 環境
 [3.1] OS: windowsXP
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語: C
[4] 期限: 早ければ早いほど嬉しいです。遅くて1月22日まで
[5] その他の制限: できるだけ分かりやすいプログラムでお願いしますm(__)m
プログラムはメールにてお願いします。[email protected] へ


0148デフォルトの名無しさん2006/01/19(木) 14:34:43
c++なんですけど
ダイアログベースで別ウインドウを開いてグラフを表示させたいんですけど
ウインドウを開くコマンドってなんですか?
0149デフォルトの名無しさん2006/01/19(木) 14:47:57
#include <gtkmm.h>

int main( int argc, char **argv )
{
Gtk::Main kit( argc, argv );
Gtk::Window window;
Gtk::Main::run( window );
return 0;
}
0150デフォルトの名無しさん2006/01/19(木) 14:51:56
>>147
きしゅつ
0151デフォルトの名無しさん2006/01/19(木) 15:33:29
>>143
想像力使っていいならこれで十分だな.
#include <stdio.h>
void main(){puts("んっ…ぅ…ぁん…");}
0152デフォルトの名無しさん2006/01/19(木) 15:39:35
たしかに、それで十分だ。
>>118の宿題は片付いたw
015327 ◆bgdlxVqI.o 2006/01/19(木) 16:04:36
>>132
ありがとうございます、助かりました
0154デフォルトの名無しさん2006/01/19(木) 16:19:19
[1] 授業単元: C言語入門
[2] 問題文(含コード&リンク):
九九を
1×1=1
1×2=2
1×3=3
 ・
 ・
 ・

と言うように9の段まで、1〜9の間で入力された数字の九九を表示させたいです。

始めて1週間も経っていない超初心者なので、
お手柔らかにお願いします。
for文を使って九九は出来ましたが、うまく

6×5=30

と言う形にできません。
よろしくお願いします。

[3] 環境
 [3.1] OS: Windows
 [3.2] VisualC++ 6.0
 [3.3] 言語: C++
[4] 期限: 今日中
[5] その他の制限: 関数をちょっとかじった辺りまでです。
0155デフォルトの名無しさん2006/01/19(木) 16:29:06
int main(void)
{
int i, j;
for(i=1;i<=9;i++){
for(j=1;j<=9;j++){
printf("%d*%d=%d\r\n", i, j, i * j);
}
}
return 0;
}

だれか、未解決の宿題まとめて。
0156ヘタレ ◆bNzmQqyF1I 2006/01/19(木) 16:30:09
やっててもわかりませんでした。助けてください

[1] 授業単元:プログラミングおよび演習

[2] 問題文(含コード&リンク): 培風館の「VisualC++で学ぶプログラミング」よりP93問題18
配列のデータを昇順(小さい順)に並び替える関数を作りなさい。
ただし、次の誕生日をデータとし、月と日を2つの配列に入力してから、関数を呼び出して並べ替えなさい
なお、入力形式は月/日とし、/をデータの区切りとして、以下の5件の誕生日データを入力しなさい
誕生日データ:09/15 03/21 12/31 05/05 04/29

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Microsoft Visual C++と言うソフト使ってますがよくわからないです
 [3.3] 言語: C++?

[4] 期限: 2006年01月20日 明日提出です。前日にやればいいとかなめてました…orz

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1504.txt
行先頭がQの行以外はヒントとして先に提示され
Qの部分が課題で、一応自分なりに入れてみたけれども動かないです
0157デフォルトの名無しさん2006/01/19(木) 16:30:11
>>154です。

自己解決しました。
お騒がせしましたm(_ _)m
0158デフォルトの名無しさん2006/01/19(木) 16:33:36
作ったけど自己解決されたorz
0159デフォルトの名無しさん2006/01/19(木) 16:34:25
>>158
どんまい
>>157
ちゃんと謝れよ。非常識なヤツだ。
0160デフォルトの名無しさん2006/01/19(木) 16:42:18
>>156

関数そのものを作れって?
ソートのアルゴリズムは?
何でも良いならバブルソートなら超簡単だからぐぐって自分でやってみ
マージソートやクイックソートはちと複雑だがな
01611562006/01/19(木) 16:57:59
前に授業内で習ったのも多分そのバブルソートなので
今回もそれでいいと思います。

今自分でもどこがダメなのか考えてるので、とりあえずソートの部分調べて作ってきます
0162デフォルトの名無しさん2006/01/19(木) 16:59:28
なんかどれでもいいっていうならクイックソートでも作っていけば点数うpって感じだな
0163デフォルトの名無しさん2006/01/19(木) 17:00:12
つ156
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1505.c
コンパイルしていないけど大丈夫だと思う。
0164デフォルトの名無しさん2006/01/19(木) 17:13:26
>>158サソ せっかく作って頂いたのにすいませんでした。
0165デフォルトの名無しさん2006/01/19(木) 17:18:06
とってつけた謝罪なんて醜いからしなくても良いよ
01661562006/01/19(木) 17:18:11
>>163
ありがとうございます
やってみたところ
順番は並び変わっていたのですが、結果が
3/-858993460
4/-858993460
5/-858993460
9/-858993460
12/-858993460

と、全部の日付が-858993460とかなっちゃって…ショボン(´・ω・`)
問題で出されたQの部分で書き換えていただいた所は自分で理解できたと思うのですが…日付の表示の原因がわからないです
もしかして、どこか先にヒントとして提示されていた部分のコピペが間違っていたのでしょうか…?
0167デフォルトの名無しさん2006/01/19(木) 17:19:45
>>165 とってつけた謝罪なら最初からしませんから。
0168デフォルトの名無しさん2006/01/19(木) 17:20:24
おやおや
0169デフォルトの名無しさん2006/01/19(木) 17:22:23
教授に文句言っといてくれ。
×for(i=0;i<5;++i) printf("%02d/%02d\n",mm[i],dd[j]);
                              ~~
○for(i=0;i<5;++i) printf("%02d/%02d\n",mm[i],dd[i]);
[j]と[i]の違いです。
01701562006/01/19(木) 17:28:59
>>169
!! ありがとうございます 明日文句言ってきます
てかなんで自分で気づかなかったんだろう…
ともかくこれで完成のはず(`・ω・´)


結果
3/15
4/21
5/31
9/ 5
12/29
日付の方だけが何故か入力した順番そのまま出てきてるようです…ナズェダ(´・ω;;:;,.
0171デフォルトの名無しさん2006/01/19(木) 17:33:01
というかプログラムを全て壊してしまうかもしれないけど

scanf("%s",str);
として日付を文字列として受け取って
sscanf(str,"%d%c%d",&month,&temp,&date);
みたいな使い方をすればコードが簡単になると思う

いやごめんね
0172デフォルトの名無しさん2006/01/19(木) 17:35:01
このまま教授に提出してくれ
私にもわけ和漢ね。教授にも間違いはあったんだし文句はいわんだろ。
0173デフォルトの名無しさん2006/01/19(木) 17:43:41
間に合うかな?
Q部分以外は変えてないはず
最後を除いてw

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

原因は多分sort()の同じ月のとこ
01741562006/01/19(木) 17:44:23
>>171
えと…スイマセン、sscanfとか多分習ってないです。持ってるテキストにも載ってなかったですorz
もっと勉強してやり方がわかってから使わせていただきます。ありがとうございます

>>172
了解です。このまま出して、あとは質問してきます
自分ひとりでは、どこが間違っているかわからなかったのでとても助かりました。本当にありがとうございます


また演習でどうしてもわからなかったときは質問に来るかもしれないので
そのときはよろしくお願いします
■ このスレッドは過去ログ倉庫に格納されています