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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/01/27(金) 09:08:40
あなたが解けない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++の宿題を片付けます 58代目
http://pc8.2ch.net/test/read.cgi/tech/1137522945/
【過去スレ一覧】
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
0002デフォルトの名無しさん2006/01/27(金) 09:19:11
  ∧__∧
  (`・ω・´) >>1乙
 .ノ^ yヽ、
 ヽ,,ノ==l ノ
  /  l |
~""""""~"""~"""~"
0003デフォルトの名無しさん2006/01/27(金) 09:23:00
:::::::::::.: .:. . ∧_∧ . . . .: ::::::::
:::::::: :.: . . /彡ミ゛ヽ;)ヽ、. ::: : ::
::::::: :.: . . / :::/:: ヽ、ヽ、i . .:: :.: :::
 ̄ ̄ ̄(_,ノ  ̄ ̄ヽ、_ノ ̄
>>1乙
0004りんご2006/01/27(金) 12:59:02
【質問テンプレ】
[1] プログラミング入門
[2] タイピングソフトを考えて作成しなさい。
  というだけです。そこで、英語を5文字1文を表示して、その下に
  タイプした文字を表示していく。1行打ち終わった時に、3文字
  以上間違っていたら、もう一度同じ文が表示され、繰り返す…
  というものを作りたいと考えました。
[3] 環境
 [3.1] OS:Unix
 [3.2] よく分かりません。
 [3.3] 言語:C
[4] 期限:2006年1月28日12:00まで
[5] 先ほど、「Cでタイピングソフトを作りたい」というスレを
  立ててしまったのですが、そこにも書いた通り、Cを初めて
  2週間です。
0005デフォルトの名無しさん2006/01/27(金) 13:02:19
>>4
前スレ使い終わってからこっちを使えボケ
スレ削除依頼出してきたのか?
0006デフォルトの名無しさん2006/01/27(金) 13:06:13
それ宿題か?
0007デフォルトの名無しさん2006/01/27(金) 13:42:07
6、4、3、8、1という数字を昇順に並びかえよ。と言う問題が分かりません。
SWAPという並び替えの関数とバブルソートの関数をつかってプログラミングをつくる
のが条件です。あとwhile文は使わずにfor文だけをつかいたいです。
どなたかこの問題を解いて下さいませんか?宜しくお願いします。
0008デフォルトの名無しさん2006/01/27(金) 13:42:56
#include <stdio.h>
#include <time.h>

static struct { const char* kana; const char* alpha; }
  problems[] = {
    {"水俣", "minamata"},
    {"イタイイタイ", "itaiitai"},
    {"四日市", "yokkaichi"},
    {"新潟", "nigata"}
  };

int main(void) {
  int i;
  time_t t = time(NULL);
  for(i=0; i < sizeof(problems) / sizeof(*problems); i++) {
    printf("問題 %d:\n", i+1);
    while(1) {
      int c = 0;
      printf("\t%s (%s)\n", problems[i].kana, problems[i].alpha);
      while(problems[i].alpha[c] == getchar()) c++;
      fseek(stdin, 0, SEEK_END);
      if(problems[i].alpha[c] == '\0') break;
      puts("やり直せ。");
    }
  }
  t = time(NULL) - t;
  printf("評価: あなたは%s。", (t < 1)? "神レベル": (t < 10)? "凡人": "なめくじ");
  return 0;
}
0009デフォルトの名無しさん2006/01/27(金) 14:18:12
前スレ埋め立て完了しますた (。・x・)ゝ
0010デフォルトの名無しさん2006/01/27(金) 14:37:46
>>7
#include <stdio.h>

void swap(int *a, int *b)
{
    int tmp;
    tmp=*a;
    *a=*b;
    *b=tmp;
}

int main()
{
    int num[]={6,4,3,8,1};
    int i, j, num_size;

    num_size=sizeof(num)/sizeof(int);

    for (i=0 ; i<num_size ; i++)
        for (j=num_size-1 ; j>i ; j--)
            if (num[j-1] > num[j])
                swap(&num[j-1], &num[j]);

    for (i=0 ; i<num_size ; i++)
        printf("%d\n", num[i]);

    return 0;
}
0011デフォルトの名無しさん2006/01/27(金) 14:46:22
前すれ埋めた馬鹿どもはなんだ
厨房板やVIPじゃあるまいし
0012以下、名無しにかわりましてVIPがお送りします2006/01/27(金) 14:50:22
VIPなめるとと酷いお(# ^ω^)
0013デフォルトの名無しさん2006/01/27(金) 14:52:00
V(IPPER)作戦参謀本部
ttp://yy11.kakiko.com/test/read.cgi/news4vip/1122044336/
ワンクリ業者殲滅!
0014デフォルトの名無しさん2006/01/27(金) 14:56:23
>>11
残念ながらプログラム板にもVIPのカス共はいるってことさ
0015デフォルトの名無しさん2006/01/27(金) 15:01:56
VIPから来ました。
0016デフォルトの名無しさん2006/01/27(金) 15:02:28
VIPのほうからきました
0017デフォルトの名無しさん2006/01/27(金) 15:03:13
間違いなくVIPからきました
0018デフォルトの名無しさん2006/01/27(金) 15:03:14
 *     +    巛 ヽ
            〒 !   +    。     +    。     *     。
      +    。  |  |
   *     +   / /   イヤッッホォォォオオォオウ!
       ∧_∧ / /
      (´∀` / / +    。     +    。   *     。
      ,-     f
      / ュヘ    | *     +    。     +   。 +
     〈_} )   |                                それがVIPクオリティ
        /    ! +    。     +    +     *         http://ex7.2ch.net/news4vip/
       ./  ,ヘ  |
 ガタン ||| j  / |  | |||
――――――――――――  
0019デフォルトの名無しさん2006/01/27(金) 15:03:38
Vipからきました
0020デフォルトの名無しさん2006/01/27(金) 15:04:43
ぶいあいぴーからきますた
0021デフォルトの名無しさん2006/01/27(金) 15:04:59


                      ''';;';';;'';;;,.,                  ザッ
                       ''';;';'';';''';;'';;;,.,   ザッ
          ザッ            ;;''';;';'';';';;;'';;'';;;
                        ;;'';';';;'';;';'';';';;;'';;'';;;
                        vymyvwymyvymyvy     ザッ
               ザッ     MVvvMvyvMVvvMvyvMVvv、
                   Λ_ヘ^−^Λ_ヘ^−^Λ_ヘ^Λ_ヘ
     ザッ            ヘ__Λ ヘ__Λ ヘ__Λ ヘ__Λ
                __,/ヽ_ /ヽ__,.ヘ /ヽ__,.ヘ _,.ヘ ,.ヘ    ザッ
    /\___/ヽ   /\___ /\___/ヽ _/ヽ /\___/ヽ
   /''''''   '''''':::::::\/''''''   '''/''''''   '''''':::::::\   /''''''   '''''':::::::\
  . |(●),   、(●)、.:|(●),    |(●),   、(●)、.:|、( |(●),   、(●)、.:|
  |   ,,ノ(、_, )ヽ、,, .::::|   ,,ノ(、_, )|   ,,ノ(、_, )ヽ、,, .::::|_, )|   ,,ノ(、_, )ヽ、,, .::::|
.   |   `-=ニ=- ' .:::::::|   `-=ニ= |   `-=ニ=- ' .:::::::|ニ=|   `-=ニ=- ' .:::::::|
   \  `ニニ´  .:::::/\  `ニニ \  `ニニ´  .:::::/ニ´ \  `ニニ´  .:::::/
   /`ー‐--‐‐―´\ /`ー‐-  /`ー‐--‐‐―´\-‐‐ /`ー‐--‐‐―´
「vipから来ますた」「vipから来ますた」「vipから来ますた」「vipから来ますた」
0022デフォルトの名無しさん2006/01/27(金) 15:05:01
荒らすなバカ
0023デフォルトの名無しさん2006/01/27(金) 15:05:59
remove関数でvip掃討キボン
0024デフォルトの名無しさん2006/01/27(金) 15:08:22
                      ''';;';';;'';;;,.,                  ザッ
                       ''';;';'';';''';;'';;;,.,   ザッ
          ザッ            ;;''';;';'';';';;;'';;'';;;
                        ;;'';';';;'';;';'';';';;;'';;'';;;
                        vymyvwymyvymyvy     ザッ
               ザッ     MVvvMvyvMVvvMvyvMVvv、
                   Λ_ヘ^−^Λ_ヘ^−^Λ_ヘ^Λ_ヘ
     ザッ            ヘ__Λ ヘ__Λ ヘ__Λ ヘ__Λ
                __,/ヽ_ /ヽ__,.ヘ /ヽ__,.ヘ _,.ヘ ,.ヘ    ザッ
    /\___/ヽ   /\___ /\___/ヽ _/ヽ /\___/ヽ
   /''''''   '''''':::::::\/''''''   '''/''''''   '''''':::::::\   /''''''   '''''':::::::\
  . |(●),   、(●)、.:|(●),    |(●),   、(●)、.:|、( |(●),   、(●)、.:|
  |   ,,ノ(、_, )ヽ、,, .::::|   ,,ノ(、_, )|   ,,ノ(、_, )ヽ、,, .::::|_, )|   ,,ノ(、_, )ヽ、,, .::::|
.   |   `-=ニ=- ' .:::::::|   `-=ニ= |   `-=ニ=- ' .:::::::|ニ=|   `-=ニ=- ' .:::::::|
   \  `ニニ´  .:::::/\  `ニニ \  `ニニ´  .:::::/ニ´ \  `ニニ´  .:::::/
   /`ー‐--‐‐―´\ /`ー‐-  /`ー‐--‐‐―´\-‐‐ /`ー‐--‐‐―´
「vipから来ますた」「vipから来ますた」「vipから来ますた」「vipから来ますた」
0025デフォルトの名無しさん2006/01/27(金) 15:08:44
>>23
NGキーワードに指定しろ
0026デフォルトの名無しさん2006/01/27(金) 15:10:07
>>14格好つけんなよ厨房が( ^ω^)ママの乳でも吸ってろ
0027デフォルトの名無しさん2006/01/27(金) 15:10:41
                       ''';;';'';';''';;'';;;,.,   ザッ
          ザッ            ;;''';;';'';';';;;'';;'';;;
                        ;;'';';';;'';;';'';';';;;'';;'';;;
                        vymyvwymyvymyvy     ザッ
               ザッ     MVvvMvyvMVvvMvyvMVvv、
                   Λ_ヘ^−^Λ_ヘ^−^Λ_ヘ^Λ_ヘ
     ザッ            ヘ__Λ ヘ__Λ ヘ__Λ ヘ__Λ
                __,/ヽ_ /ヽ__,.ヘ /ヽ__,.ヘ _,.ヘ ,.ヘ    ザッ
    /\___/ヽ   /\___ /\___/ヽ _/ヽ /\___/ヽ
   /''''''   '''''':::::::\/''''''   '''/''''''   '''''':::::::\   /''''''   '''''':::::::\
  . |(●),   、(●)、.:|(●),    |(●),   、(●)、.:|、( |(●),   、(●)、.:|
  |   ,,ノ(、_, )ヽ、,, .::::|   ,,ノ(、_, )|   ,,ノ(、_, )ヽ、,, .::::|_, )|   ,,ノ(、_, )ヽ、,, .::::|
.   |   `-=ニ=- ' .:::::::|   `-=ニ= |   `-=ニ=- ' .:::::::|ニ=|   `-=ニ=- ' .:::::::|
   \  `ニニ´  .:::::/\  `ニニ \  `ニニ´  .:::::/ニ´ \  `ニニ´  .:::::/
   /`ー‐--‐‐―´\ /`ー‐-  /`ー‐--‐‐―´\-‐‐ /`ー‐--‐‐―´
「VIPからきますた」「VIPからきますた」「VIPからきますた」「VIPからきますた」
0028デフォルトの名無しさん2006/01/27(金) 15:14:23
VIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIP
VIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIP
VIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIP
VIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIP
VIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIPVIP
0029デフォルトの名無しさん2006/01/27(金) 15:15:30
                       ''';;';'';';''';;'';;;,.,   ザッ
          ザッ            ;;''';;';'';';';;;'';;'';;;
                        ;;'';';';;'';;';'';';';;;'';;'';;;
                        vymyvwymyvymyvy     ザッ
               ザッ     MVvvMvyvMVvvMvyvMVvv、
                   Λ_ヘ^−^Λ_ヘ^−^Λ_ヘ^Λ_ヘ
     ザッ            ヘ__Λ ヘ__Λ ヘ__Λ ヘ__Λ
                __,/ヽ_ /ヽ__,.ヘ /ヽ__,.ヘ _,.ヘ ,.ヘ    ザッ
    /\___/ヽ   /\___ /\___/ヽ _/ヽ /\___/ヽ
   /''''''   '''''':::::::\/''''''   '''/''''''   '''''':::::::\   /''''''   '''''':::::::\
  . |(●),   、(●)、.:|(●),    |(●),   、(●)、.:|、( |(●),   、(●)、.:|
  |   ,,ノ(、_, )ヽ、,, .::::|   ,,ノ(、_, )|   ,,ノ(、_, )ヽ、,, .::::|_, )|   ,,ノ(、_, )ヽ、,, .::::|
.   |   `-=ニ=- ' .:::::::|   `-=ニ= |   `-=ニ=- ' .:::::::|ニ=|   `-=ニ=- ' .:::::::|
   \  `ニニ´  .:::::/\  `ニニ \  `ニニ´  .:::::/ニ´ \  `ニニ´  .:::::/
   /`ー‐--‐‐―´\ /`ー‐-  /`ー‐--‐‐―´\-‐‐ /`ー‐--‐‐―´
「VIPからきますた」「VIPからきますた」「VIPからきますた」「VIPからきますた」
0030デフォルトの名無しさん2006/01/27(金) 15:16:41
>>7
なんかすげぇ面倒だな。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1555.c
0031デフォルトの名無しさん2006/01/27(金) 15:17:40
てか
7はCなら俺に聞けすれでも聞いてたマルチ野郎だぞ
テンプレぐらい守れってんだ
0032vipper2006/01/27(金) 15:19:23
呼んだか?
0033デフォルトの名無しさん2006/01/27(金) 15:19:31
というかバブルソートくらいは自分でやってくれないと
何を教えても無駄な気がするのだが。
0034デフォルトの名無しさん2006/01/27(金) 15:20:57
VIPって何だ?
0035302006/01/27(金) 15:28:01
まあバブルソートはともかくワイド文字の扱いは難しいし。
というわけでless_wchar_tとmainを修正

int less_wchar_t(wchar_t lhs, wchar_t rhs)
{
int i, len;
static int is_first = 1;
static char temp[] = "0123456789";
static wchar_t table[100];

if (is_first) {
is_first = 0;
len = mbstowcs(table, temp, sizeof(temp)) + 1;
}

for (i = 0; i < len; i++) {
if (table[i] == lhs)
return table[i] != rhs;

if (table[i] == rhs)
return 0;
}

return 0;
}
0036302006/01/27(金) 15:28:38
int main(void)
{
char table[] = "64381";
wchar_t work[100];
int len;
setlocale(LC_ALL, "");

mbstowcs(work, table, sizeof(work)/sizeof(work[0]) - 1);
printf("before :%ls\n", work);
bubble_sort(work, wcslen(work));
printf("after :%ls\n", work);

return 0;
}
0037デフォルトの名無しさん2006/01/27(金) 15:29:51
プログラミングを作るって何だろう?
0038デフォルトの名無しさん2006/01/27(金) 15:32:44
>>30
>>10じゃ駄目なのか?
0039デフォルトの名無しさん2006/01/27(金) 15:34:08
30は何を必死にそんな答えたがっているのだろうか
0040デフォルトの名無しさん2006/01/27(金) 15:43:17
>>38
駄目だろ。バブルソートの関数を使ってないんだから。
0041デフォルトの名無しさん2006/01/27(金) 15:48:16
VIPから絶対来てません
0042デフォルトの名無しさん2006/01/27(金) 15:52:47
VIPをバカにするやつがいると聞いてやってきましたがここですか?
VIPはおかしなことをする奴は多いけど礼節知らずが多いとは違うんだぞ。
0043デフォルトの名無しさん2006/01/27(金) 15:58:23
>>7
#include <stdio.h>
#include <stdlib.h>

void swap(int* lhs, int* rhs)
{
    int old = *lhs;

    *lhs = *rhs;
    *rhs = old;
}

int bubble_sort(const void* lhs, const void* rhs)
{ return *(int*)lhs - *(int*)rhs; }

int main(void)
{
    int i;
    int n[] = { 6, 4, 3, 8, 1 };

    for (i = 0; i < sizeof(n) / sizeof(n[0]); ++i) {
        swap(&n[i], n + rand() % (sizeof(n) / sizeof(n[0])));
    }

    qsort(n, sizeof(n) / sizeof(n[0]), sizeof(int), &bubble_sort);

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

    return 0;
}
0044デフォルトの名無しさん2006/01/27(金) 15:58:39
あぁ・・・そうですか。
あんたにとっては葬式中に屁をブッブこきながら笑うのも礼儀知らずのうちに入らないんだろうね。
0045デフォルトの名無しさん2006/01/27(金) 16:01:37
葬式会場だったのか。
0046デフォルトの名無しさん2006/01/27(金) 16:22:33
自分自身は何もやってないくせに
「俺たちVIPPERは凄いことやってる」とか息巻いてるカス共ww
0047デフォルトの名無しさん2006/01/27(金) 16:24:05
逮捕される奴ってVIPPER率たかくね?
0048デフォルトの名無しさん2006/01/27(金) 16:25:47
VIPの悪口書くとVIPPERの内お調子者の連中がくるから
や め れ
0049デフォルトの名無しさん2006/01/27(金) 16:28:08
悪口書いてるのもVIPPERですがなにか?
0050デフォルトの名無しさん2006/01/27(金) 16:28:20
VIPの前を通り過ぎてきました
0051デフォルトの名無しさん2006/01/27(金) 16:30:40
>>49

>>44
や
>>11
みたいなのをヤメレってことだ
0052デフォルトの名無しさん2006/01/27(金) 16:32:08
>>48
× VIPの悪口書くとVIPPERの内お調子者の連中がくるから
○ VIPの悪口書くと屑VIPPER共の最底辺の連中がくるから
0053デフォルトの名無しさん2006/01/27(金) 16:32:55
>>51
お前が一番煽ってるという事を自覚してないようだな
0054デフォルトの名無しさん2006/01/27(金) 16:39:24
>>53
熱くなるな バグ作り込むぞ
0055デフォルトの名無しさん2006/01/27(金) 16:57:22
ドウモ〜〜〜ッ!!お〜o( ^ω^ )oは〜♪ハジメマシテ〜〜〜ッ☆☆(*^ω^*)ブーン
私は27歳のOLしてるのぉ〜〜〜っ♪(#^ω^#)ブーン
うーんとー、私メル友がすっごくすっごく欲しくってー、\( ^ω^ )/ブーン
探してたら( ^ω^ )なんσ( ^ω^ )とっ!☆彡(ノ^ω^)ノ☆彡ヘ(^ω^ヘ)☆彡(ノ^ω^)ノ☆彡
素敵(^ω^;ブーン!な掲示板♪を発見!!!!( ^ω^)//""" パチパチパチブーン
あやしい所(^ω^;ブーン!とか…{{ (^ω^;) }} ブルブルブーンすごい数の掲示板がありますけど、
これ全部1人の方が管理して   ∩
てなわけで、ついついσ( ^ω^ )  | | /⌒',ノ ̄ ̄`ヽ、―ニ        メキメキメキメキッ!!!!
メル友に、なってσ( ^ω^ )くれる ヽ(^ω/ ´`ヽ _  三,:三ー三,:
え?くれないのぉ〜?(;^ω^ )そんノ .ノヽ--/ ̄ ,    `   ` ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
なってくれなかったら、( ^ω^)乂(^(  }.  ...|  /!
☆○(^ω^)o ぱ〜んちブーン、☆(\ }、ー‐し'ゝL _
( ^ω^ ) いてっ!ダメ!! ゛o(^ω^*)o\_jr--‐‐'´}    ;ーー------------------------------
素敵(^ω^;ブーン!な掲示板♪ブ━`ヾ---‐'ーr‐'"==!!!( ^ω^)//""" パチパチパチブーン
( ^ω^ )きゃ〜〜(^ω^;)やられた〜〜(o^ω^)o ドテッブーン ブ━━(^ω^;)━━ン!
( ^ω^ )←気絶中。。。。・゜゜・o( ^ω^ )o・゜゜・。うぇぇん <( ^ω^;)>ノォオオオオオ!!ブーン 
なあんて(#^ω^#)こんな♪(#^ω^#)キャハブーン 私っ!σ( ^ω^ )だけど、(///^ω^///)
お友達σ( ^ω^ )になってm( ^ω^ )mくださいませませブーン♪(^ω^'*)フフブーン
ということで。(^ω^)vじゃあね〜〜〜ブーン♪( ^ω^ )/~~ ほんじゃo(^ω^ヽ)(/^ω^)o レッツブーン♪
それでは、今から他の掲示(^ω^;ブーン!板も色々見てきまーすC= C= C= C=┌(^ω^)┘ブーン
(*^ω^*)ノ~~マタネー☆'.・*.・:★'.・*.・:☆'.・*.・:★
0056デフォルトの名無しさん2006/01/27(金) 16:58:40
>>7
#include <stdio.h>
void swap(int *a, int *b)
{
    int tmp;
    tmp=*a;
    *a=*b;
    *b=tmp;
}
void bubble_sort(int *num, int num_size)
{
    int i,j;
    for (i=0 ; i<num_size ; i++)
        for (j=num_size-1 ; j>i ; j--)
            if (num[j-1] > num[j])
                swap(&num[j-1], &num[j]);
}

int main()
{
    int num[]={6,4,3,8,1};
    int i, num_size;

    num_size=sizeof(num)/sizeof(int);
    bubble_sort(num, num_size);

    for (i=0 ; i<num_size ; i++)
        printf("%d\n", num[i]);

    return 0;
}
0057デフォルトの名無しさん2006/01/27(金) 17:57:20
1. キーボードから10個の実数を配列 double a[10] に読み込み、合計、平均、
及び最大値、最小値を求めて表示するプログラムを作れ。

ヒント: for(i=0;i<10;i++){ printf("a[%d]=??";i); scanf("%lf",&a[i]);}
でa[0],a[1],...,a[9] を入力!!
(次に) saidai=a[0];
そのあと、計算の為にforループを作るが、
(ループの中で) if (a[i]>saidai) saidai=a[i];
は何を表わすか?きっと最大値を求めるプログラム関連だろう。
しくみがわかれば最小値も同様にわかる。

[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: Windows Me
 [3.2] すいません、わかりません
 [3.3] 言語: C
[4] 期限: [2006年01月30日まで]
[5] その他の制限:特にありません。

これがわかりません、教えてください
0058デフォルトの名無しさん2006/01/27(金) 18:07:37
>>57
#include<stdio.h>
int main(void){
double a[10],sum=0.0,saidai,saisyo,c;
int i;
for(i=0;i<10;i++){
scanf("%lf",&a[i]);
sum += a[i];
}
saidai = a[0];
for(i=1;i<10;i++)
if(a[i]>saidai)
saidai = a[i];
saisyo = a[0];
for(i=1;i<10;i++)
if(a[i]<saisyo)
saisyo = a[i];
printf("合計:%f\n平均:%f\n最大:%f\n最小:%f\n",sum,sum/10.0,saidai,saisyo);
return 0;
}
0059デフォルトの名無しさん2006/01/27(金) 18:10:10
>>57

void main(void)
{
int i;
double a[10];
double saidai, saishou, goukei=0, heikin;
for(i=0;i<10;i++) {
printf("a[%d]=??";i);
scanf("%lf",&a[i]);
}
saidai= saishou = a[0];
for(i=0;i<10;i++) {
goukei += a[i];
if(a[i]>saidai) saidai=a[i];
if(a[i]<saishou) saishou=a[i];
}
heikin = goukei / 10;
printf("%lf, %lf, %lf, %lf\n", saidai, saishou, goukei, heikin);
return;
}

出題者の意向にできるだけ忠実にしたつもり。
変数はダサく、初心者っぽくw
0060デフォルトの名無しさん2006/01/27(金) 18:11:21
>>57
#define NUM    10
#include <stdio.h>

int main()
{
    float num[NUM],max,min,avg,sum=0;
    int i;

    for (i=0 ; i<NUM ; i++)
        scanf("%f", &num[i]);

    for (i=0 ; i<NUM ; i++)
        sum+=num[i];

    avg=sum/NUM;

    max=num[0];
    for (i=1 ; i<NUM ; i++)
        if (num[i]>max)
            max=num[i];
    
    min=num[0];
    for (i=1 ; i<NUM ; i++)
        if (num[i]<min)
            min=num[i];

    for (i=0 ; i<NUM ; i++)
        printf("%fd\n", num[i]);
    printf("\nmax:%f\nmin:%f\navg%f\nsum:%f\n", max, min, avg, sum);
    return 0;
}
0061デフォルトの名無しさん2006/01/27(金) 18:13:18
>>59
goukei = saidai= saishou = a[0];
for(i=1;i<10;i++) {
goukei += a[i];
if(a[i]>saidai) saidai=a[i];
if(a[i]<saishou) saishou=a[i];
}

<二修正ダ>
0062デフォルトの名無しさん2006/01/27(金) 18:13:59
averageを求めるのにオーバーフローを恐れて

double average = 0;

for(int i=0;i<10;i++) average += lpArr[i]/10;
ってのはだめかな
0063デフォルトの名無しさん2006/01/27(金) 18:14:30
>>59
saidai= saishou = a[0];
これは何か初心者っぽくないw
0064デフォルトの名無しさん2006/01/27(金) 18:30:48
>>62
そんな小手先の修正でなんとかなるようなオーバーフローならどんなやり方でやっても構わんよ。
実際に現れるオーバーフローを気にしなきゃいかん場合ってのは、そんなのが全然通用しないくらいにヤバくなる。
0065デフォルトの名無しさん2006/01/27(金) 18:33:43
>>63
+=もだめだなw
0066デフォルトの名無しさん2006/01/27(金) 18:33:57
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1556.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1557.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1558.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2006/01/30
[5] その他の制限:
1558.txtは自分で一応やってみたものですが、3+4みたいな簡単なモノならできますが
3+4*5みたいになると結果がおかしくなってしまいます。
正しく動くように修正してもらえないでしょうか
0067デフォルトの名無しさん2006/01/27(金) 18:36:46
電卓とか再起ばりばりのプログラム(´・ω・`)
0068デフォルトの名無しさん2006/01/27(金) 18:36:52
>>66
長すぎて読む気が起きん.一から作ったほうが早そう.
0069デフォルトの名無しさん2006/01/27(金) 18:39:08
「ここを書こう」ってとこだけを書くって制約なので・・・
0070デフォルトの名無しさん2006/01/27(金) 19:00:29
マジで読みたくねぇw
0071デフォルトの名無しさん2006/01/27(金) 19:03:57
>>69
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1559.c

結局読む気が起きなかったので,読まずに書いた.いくらかやって動作確認はしたけど合ってる自信は無いよ.
0072デフォルトの名無しさん2006/01/27(金) 19:09:15
宿題の趣旨と異なるじゃん
回答したくなかったら黙殺でいいじゃないか
0073712006/01/27(金) 19:12:06
>>72
え?趣旨は捕らえてるつもりなんだけど,なんかまずかった?
0074デフォルトの名無しさん2006/01/27(金) 19:16:17
ごめ、リンク先見てなかった
読まずに書いたってあるから1から書いたかと思ってしまったよ。すまない
0075デフォルトの名無しさん2006/01/27(金) 19:38:22
>>71
ありがとうございます
感謝します
0076デフォルトの名無しさん2006/01/27(金) 19:40:53
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク): 10人の名前、年齢、電話番号の入ったファイルを作り、それを読み出すプログラムを作れ。
そのとき、ファイル名は画面上で自由に設定でき、ファイルの拡張子はdatとなるようにせよ。
また、ファイル名が8文字を越えると、入力したファイル名は無効となり、再度ファイル名の入力を要請できるようにせよ。
問題上のファイルに新たに1人のデータを追加するためのプログラムを作れ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: すいませんわかりません
 [3.3] 言語:C
[4] 期限:2006年1月30日まで
[5] その他の制限: 初心者なので、あまり難しくないものでお願いします。

前スレで質問の意味がわからないと言われてしまい、答えがもらえませんでした・・・
すみませんがお願いします。
0077デフォルトの名無しさん2006/01/27(金) 19:42:28
意味がわからんもんはわからん
問題文が抽象的過ぎる
そんな抽象的な奴はBasicでもやってろ
0078デフォルトの名無しさん2006/01/27(金) 19:42:41
だから読み込んだデータどうするんだっつの
追記でいいのか上書きなのか
0079デフォルトの名無しさん2006/01/27(金) 19:48:11
そのとき、ファイル名は画面上で自由に設定でき、ファイルの拡張子はdatとなるようにせよ。
また、ファイル名が8文字を越えると、入力したファイル名は無効となり、再度ファイル名の入力を要請できるようにせよ。

はしょってるが、
scanf("%s", filename);
fp = fopen(filename, "r");
while ((c = fgetc(fp)) != EOF) putchar(c);

問題上のファイルに新たに1人のデータを追加するためのプログラムを作れ。
scanf("%s", filename);
getchar();
fgets(buf, sizeof(buf), stdin);
fp = fopen(filename, "a");
fputs(buf, fp);
0080デフォルトの名無しさん2006/01/27(金) 19:49:27
>>76
適当つか文句言っても直さん
#include<stdio.h>
#include<string.h>
int main(void){
FILE *fp;
char str[256],filename[256];
while(1){
printf("ファイル名>");
gets(str);
if(strlen(str)<9)break;
puts("ファイル名は8文字までです");
}
sprintf(filename,"%s.dat",str);
if((fp=fopen(filename,"r"))==NULL){
puts("ファイル読み込みエラー");
return 1;
}
while(fgets(str,256,fp)!=NULL)
printf("%s",str);
fp = fopen(filename,"a");
printf("\n( ´ー`)y−~~で、用件は?>");
gets(str);
fprintf(fp,"\n%s",str);
return 0;
}
0081デフォルトの名無しさん2006/01/27(金) 19:52:57
[1]C言語実習
[2]
文字列の○文字目から○文字目までを抜き出して返す関数を作成しなさい

例

対象 □□□□△△△△□□□□
    ↓
   5文字目から8文字目まで
    ↓
結果 △△△△

文字列の○文字目から○文字目までを削除して返す関数を作成しなさい

例

対象 □□□□△△△△□□□□
        ↓
   5文字目から8文字目まで
        ↓
結果 □□□□□□□□

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] VC.net
 [3.3] 言語:C言語
[4] 期限:2006年01月30日13:00まで
[5] その他の制限:制限等は全くありません。お願いします。
0082デフォルトの名無しさん2006/01/27(金) 19:56:53
>>81
文字とは全角半角混合か?
0083デフォルトの名無しさん2006/01/27(金) 20:00:10
>>81
基本的に半角で1文字扱い
全角で2文字扱いだそうです
0084デフォルトの名無しさん2006/01/27(金) 20:00:32
アンカー間違えた…orz

>>82でした
0085デフォルトの名無しさん2006/01/27(金) 20:02:05
[1] 授業単元: プログラム演習
[2] 問題文(含コード&リンク):x軸とy軸からなる平面状の座標(x,y)を表す構造体point()
を定義せよ。次に、xとyを引数にとり、座標を示す関数define_point()、および
座標を示す構造体を引数にとり、これを座標出力に"(x,y)"の形式で出力する関数put_point()を
定義せよ。また、これらの関数を用いて、座標p1=(1,2),p2=(5,4),p3=(-2,3)を定義し、標準出力に以下のように
出力するプログラムを作成せよ。
$./test01
p1=(1,2)
p2=(5,4)
p3=(-2,3)
[3] 環境
 [3.1] OS: (Windows/Linux/等々):Unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 1月28日PM5:00
[5] その他の制限: 特別なライブラリなどは使わず、#includeは<stdio.h>のみ
でプログラムしていただけると幸いです。よろしくお願いします。
0086デフォルトの名無しさん2006/01/27(金) 20:02:22
全角の半分が切れる場合は?
0087デフォルトの名無しさん2006/01/27(金) 20:04:05
>>81
char* fanc(char *str,int a,int b){
char *c;
int i;
c = malloc(b-a+2);
for(i=0;i<b-a+1;i++)
c[i] = str[i+a-1];
c[b-a+1] = '\0';
return c;
}
0088デフォルトの名無しさん2006/01/27(金) 20:04:12
>>81 全角とか半角とか全然気にしないで書いた
void f(int i, int j, char *s, char *t) {
  int k;
  for (k = 1; *t = *s; ++k, ++s) 
    if (i <= k && k <= j) ++t;
  *t = '\0';
}
void g(int i, int j, char *s, char *t) {
  int k;
  for (k = 1; *t = *s; ++k, ++s) 
    if (!(i <= k && k <= j)) ++t;
  *t = '\0';
}
main() {
  char s[] = "ooooxxxxoooo";
  char t[100], u[100];
  f(5,8,s,t);
  g(5,8,s,u);
  printf("%s %s %s\n", s, t, u);
}
0089デフォルトの名無しさん2006/01/27(金) 20:05:40
//>>81
>>81
マルチバイト文字シラネ。文字列の範囲外の数字を指定されたときもシラネ

#include<string.h>
char*slice_string(const char*string,int begin,int end,char*dst){
    memcpy(dst,string+begin,end-begin);
    dst[end-begin]='\0';
    return dst;
}
char*remove_string(const char*string,int begin,int end,char*dst){
    memcpy(dst,string,begin);
    strcpy(dst+begin,string+end);
    return dst;
}
int main(){
    char buf[80];/*加工した文字列を入れる*/
    puts(slice_string("Hello World",2,5,buf));/* 2 .. 5 を抜き出す*/
    puts(remove_string("Hello World",2,5,buf));/* 2 .. 5 を削除*/
}
0090デフォルトの名無しさん2006/01/27(金) 20:07:49
>>86
全角については、getchを用いて入力する時に判定しています。
全半角関係無しの文字数を持つ文字列を個人的に用意して、
○文字目が△であれば全角、□であれば半角といった具合です。
判定した時に全角であれば二文字分消すことになります。
0091デフォルトの名無しさん2006/01/27(金) 20:09:49
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
0092デフォルトの名無しさん2006/01/27(金) 20:10:11
>>90
じゃあ全角半角判定の関数頂戴
0093デフォルトの名無しさん2006/01/27(金) 20:17:13
>>85

/* 残念ながら構造体名の期待に添えなかった */
struct point { int x, y; };
struct point define_point(int x, int y) {
  struct point p; p.x = x; p.y = y; return p;
}
void put_point(struct point p) { 
  printf("(%d,%d)", p.x, p.y); 
}
main() {
  struct point p1, p2, p3;
  p1 = define_point(1,2);
  p2 = define_point(5,4);
  p3 = define_point(-2,3);
  put_point(p1); printf("\n");
  put_point(p2); printf("\n");
  put_point(p3); printf("\n");
}
0094デフォルトの名無しさん2006/01/27(金) 20:21:12
>>92
default://通常の文字の扱い
if (i > 128){
vx[b] = 'f';//全角一文字追加
b++;//全角区別無しに1文字加えた扱い
s[z] = putch(i);
z++;
}else {
vx[b] = 'h';
b++;

s[z] = putch(i);
z++;//一文字分打ち込んだことにする
}

iはgetchを入れている整数型で
zは全角を二文字扱いした時の文字数を数える整数型
bは全角を一文字扱いした時の文字数を数える整数型
sが一番基本となる文字列で、vxが前半角判定用の文字列

if (strcmp("vx[b]", "f") == 0) {
putch(i);
}
putch(i);
b--;
z--;
0095デフォルトの名無しさん2006/01/27(金) 20:24:42
なんか説明する気が感じられないので俺パスな
009681 ◆s6s7GdUxgI 2006/01/27(金) 20:34:32
>>91
申し訳ありません。ご迷惑おかけしました
>>89様の関数で問題は解決しました
ちなみに>>90と>>94は自分ではありません
getchは動作に難があるので使用しておりません(鳥つけておくべきでした)

>>87様、>>88様、>>89様をはじめとしたスレ住人の皆様方のご尽力、本当に感謝いたします
有難う御座いました
0097852006/01/27(金) 21:28:20
>>93
ありがとうございました。
自分なりに少し改良などしてみたいと思います。
0098デフォルトの名無しさん2006/01/27(金) 22:40:57
三河やさんひどいです><;
0099デフォルトの名無しさん2006/01/27(金) 22:41:51
誤爆・・・
0100デフォルトの名無しさん2006/01/27(金) 23:51:55
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1561.txt

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1562.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 1/30
お願いします!
0101デフォルトの名無しさん2006/01/27(金) 23:55:11
眠いめんどくさい
きっと他の人がやってくれる
■ このスレッドは過去ログ倉庫に格納されています