C/C++の宿題片付けま ..
[2ch|▼Menu]
596:デフォルトの名無しさん
09/11/05 19:19:55
[1] 授業単元:
アルゴリズムとプログラミング
[2] 問題文(含コード&リンク):
下のアドレスのプログラムに追加して、ダイクストラ法のプログラムを完成させてください
URLリンク(kansai2channeler.hp.infoseek.co.jp)
プログラムに使用するデータファイル↓
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[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まで] または [無期限] のいずれか)
11月10日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません

よろしくお願いします。

597:デフォルトの名無しさん
09/11/05 19:59:34
>>569
台形公式のことですよね。
URLリンク(codepad.org)

598:初心者 ◆.6Hqkk7dyk
09/11/05 21:06:28
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): 2つの整数値と1つの文字を、例えば「4+2」のように入力し、
                   入力に応じた四則演算を行って結果を出力するプログラムを作成しなさい。
                   ただし、中央の文字に四則演算の記号以外の文字が入力された時のことも考慮しなさい。
[3] 環境
 [3.1] OS: UNIXのemacs
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2009年11月7日17時まで

まだまだ初心者でよくわかりませんorz
よろしくお願いします。

599:デフォルトの名無しさん
09/11/05 21:51:19
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)

[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:11月13日まで
[5]無し

構造体とポインタの問題です、よろしくお願いします。

600:デフォルトの名無しさん
09/11/06 03:11:52
>>507
誰もやらないから最初の問題だけやってみた
提出あさってじゃんね

URLリンク(kansai2channeler.hp.infoseek.co.jp)

601:デフォルトの名無しさん
09/11/06 08:26:53
>>599
1問目
URLリンク(kansai2channeler.hp.infoseek.co.jp)

2問目
URLリンク(kansai2channeler.hp.infoseek.co.jp)


602:デフォルトの名無しさん
09/11/06 13:20:08
>>565
N*2が並び替える配列のサイズであるとしたら、
最初に呼び出したときにSENTINELがb[N]、c[N]の範囲外に代入されてしまう。

再帰関数を呼び出すごとにb[N],c[N]を確保するのは領域の無駄以外の何者でもない。

603:デフォルトの名無しさん
09/11/06 15:43:27
>>602
URLリンク(codepad.org)

604:デフォルトの名無しさん
09/11/06 22:56:50
#include <iostream>
using namespace std;

int main() {

int i,goukei=0;
int kokugo[5];
float heikin;

for(i=0;i<5;i++) {
cout << "出席番号" << i+1 << "番の国語の成績を入力してください\n";
cin >> kokugo[i];
goukei = goukei + kokugo[i];
}

heikin = (float)goukei/5.0;
cout << "平均点は" << heikin << "点です\n";

for(i=0;i<5;i++) {
cout << "出席番号" << i+1 << "番の国語の成績は" << kokugo[i];
cout << "点で、平均との差は" << heikin-(float)kokugo[i] << "です\n";
}

return 0;

}

これを
数学の点数も入力する
数学の平均も出力する
国語と数学の総合的な平均点も出力する
ようにするにはどうすればいいんですか?

605:デフォルトの名無しさん
09/11/06 23:01:32
>>1を読む

606:604
09/11/06 23:21:34
ごめんなさい
C++です

607:デフォルトの名無しさん
09/11/06 23:45:10
じゃなくてちゃんとテンプレに従った形で書けって事
プログラムはろだにうpしろ

608:デフォルトの名無しさん
09/11/07 00:08:45
>>604
小学生でも出来るレベルだぞ・・・それ

609:609
09/11/07 02:02:45
#include <iostream>
using namespace std;
int main() {
  int goukei_k = 0, goukei_s = 0;
  int kokugo[5], suugaku[5];
  float heikin_k, heikin_s, heikin;

  for(int i=0; i<5; i++) {
    cout << "出席番号" << i+1 << "番の国語の成績を入力してください\n";
    cin >> kokugo[i];
    goukei_k += kokugo[i];
    cout << "同じく数学の成績を入力してください\n";
    cin >> suugaku[i];
    goukei_s += suugaku[i];
  }
  heikin_k = (float)goukei_k/5.0;
  cout << "国語の平均点は" << heikin_k << "点です\n";
  heikin_s = (float)goukei_s/5.0;
  cout << "数学の平均点は" << heikin_s << "点です\n";
  heikin = (float)(goukei_k + goukei_s)/5.0;
  cout << "合計の平均点は" << heikin << "点です\n";
  for(int i=0; i<5; i++) {
    cout << "出席番号" << i+1 << "番の国語の成績は" << kokugo[i];
    cout << "点で、平均との差は" << heikin_k - kokugo[i] << "です\n";
    cout << "同じく数学の成績は" << suugaku[i];
    cout << "点で、平均との差は" << heikin_s - suugaku[i] << "です\n";
    cout << "同じく合計の成績は" << kokugo[i] + suugaku[i];
    cout << "点で、平均との差は" << heikin - (kokugo[i]+suugaku[i]) << "です\n";
  }
  return 0;
}

610:デフォルトの名無しさん
09/11/07 10:36:26
[1] 授業単元:オペレーティングシステム実習
[2] 問題文
マルチプロセスを利用したシステムの開発を行い,結果を以下の項目にまとめ報告せよ. fork(),セマフォ,メッセージをすべて使用すること.
・システムの要求仕様
・プログラムのソースファイル
・上記プログラムの簡単な解説,特に fork(),メッセージ,セマフォの周辺について
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: Gcc
 [3.3] 言語: C言語
[4] 期限: 11/9いっぱい
[5] その他の制限:なし

フォーク、セマフォの作り方がよくわからないのでよろしくおねがいします。

611:デフォルトの名無しさん
09/11/07 13:48:39
>>610
>>474-479

612:デフォルトの名無しさん
09/11/07 16:31:27
>>598
なにか異常な状況になると、なにもせずに終わります。
URLリンク(codepad.org)

613:デフォルトの名無しさん
09/11/07 21:44:16
>>609
ありがとうございました

614:デフォルトの名無しさん
09/11/07 22:13:11
>>598
↓空白が入った場合は考慮していない(1 + 2など)。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

615:デフォルトの名無しさん
09/11/07 23:42:13
C++で10進数を2進数に変換するプログラムを配列使って
順番通りに表示できるようにするのってどうするんですか
#include <iostream>
using namespace std;

int main() {
で始まる感じで(もしかしたらcmathとか使うかもしれないですが)
最後は
return 0;
}です

616:デフォルトの名無しさん
09/11/08 00:52:50
>>608
へぇ〜ほぉ〜小学校でC言語やプログラミングって習うんだぁ。どこ?

617:デフォルトの名無しさん
09/11/08 00:56:18
冥途市立地獄小学校

618:デフォルトの名無しさん
09/11/08 01:34:55
>>616
小学校は難しいとしても、勘のいい人なら普通の人でもできる内容かもね。
国語を算数に変えたら算数になることは分かるだろうし。

619:デフォルトの名無しさん
09/11/08 01:39:12
出来ようが出来まいがプログラミング言語を小学生がやるのは愚の骨頂

620:620
09/11/08 01:42:22
#include <iostream>
using namespace std;
int main() {
  int i, n, bin[32];

  cout << "Number:"; cin >> n;
  cout << "Binary:";
  for(i=0; i<32; i++) {
    bin[i] = n & 1;
    n >>= 1;
  }
  for(i=31; i>=0; i--)
    cout << bin[i];
  return 0;
}

621:デフォルトの名無しさん
09/11/08 01:47:24
>>619
小学生がやるのは個人の好き勝手だと思うし、愚かだとは思わない。
よしんば愚かだと思ってもそれが骨頂の愚かな行為とまでは思えない。

622:デフォルトの名無しさん
09/11/08 01:52:07
>>620
19を2進数にすると10011だと思うんですが
その前に0が沢山並ぶのはOKなんでしょうか?

623:デフォルトの名無しさん
09/11/08 02:04:07
>>621
プログラミングというのは本来、プログラミング言語自体を
作りながらやるもの。これは到底小学生に出来る世界じゃない。

出来合のプログラミング言語解釈疑似実行プログラム(=コンパイラ)
を使って遊ぶことは、実はプログラミングとは言うのはかなり
恥ずかしい。

有害無益とまでは言わないが、商業的には兎も角、教育的な意味で
有益にするのはかなり難しい。
相当に優秀な教師でも居ない限りね。

624:デフォルトの名無しさん
09/11/08 02:14:49
>>623
たとえば何の言語作ったの?

625:デフォルトの名無しさん
09/11/08 02:20:48
Cはそれなりに安定した多方面に応用されている信頼できる言語の
ひとつだが万能な言語じゃない。万能な言語など無い。

626:デフォルトの名無しさん
09/11/08 02:22:36
Cが万能じゃないことなどプログラマなら誰でも知ってる。
それはそうと、俺は言語作ったこと無いけどみんなはあるの?

627:デフォルトの名無しさん
09/11/08 02:26:47
>>623
プログラム言語だってコンパイラだって出来合いのをコンパイルしたもんだろ
機械語に直接翻訳するようなのを自分で作るなら話は別だが

628:デフォルトの名無しさん
09/11/08 02:28:20
>>623

>プログラミングというのは本来、プログラミング言語自体を
>作りながらやるもの。

そもそもこの定義はどこから来たのw?

629:デフォルトの名無しさん
09/11/08 02:30:18
比喩が理解出来なくなってる段階で、すっかりプログラム
されちゃってるなw

630:デフォルトの名無しさん
09/11/08 03:01:49
比喩なんてもんじゃない、ただのバカだろw

631:デフォルトの名無しさん
09/11/08 03:03:10
俺にはどれが何の比喩表現なのかが分からない

632:デフォルトの名無しさん
09/11/08 03:05:38
バカなプログラマは、コードにバグが無いと信じ、言語にバグがあると信じ込む。だから言語を作れるんだみたいな傲慢なことを言う。

優秀なプログラマは、天賦な言語にバグなどないと敬虔に信じ
救われる。

633:デフォルトの名無しさん
09/11/08 03:23:30
彼は言語を作れるんだなんて言ってない。
プログラミングとは言語を作ることだと言っている。
つまり、プログラマと名乗る以上、優秀であろうとそうでなかろうと言語を作っているはずなんだよ

だから俺はプログラマじゃないの。

634:デフォルトの名無しさん
09/11/08 03:25:48
プログラムをされている方なんですね...わかります

635:デフォルトの名無しさん
09/11/08 03:27:24
行ってることが意味不明
C言語でおk

636:デフォルトの名無しさん
09/11/08 03:27:26
文法とかの理解も妖しいのに言語なんか作れるのか?

637:デフォルトの名無しさん
09/11/08 04:23:01
文法など理解出来るしろものじゃないからこそ言語を天賦の
ものじゃないと考えるわけだ。

638:デフォルトの名無しさん
09/11/08 05:23:26
[1] 授業単元:
[2] 問題文(含コード&リンク):ソケット通信を用いたチャットの作成
(URLリンク(mikilab.doshisha.ac.jp))
にある2.1、2.2のクライアント、サーバのプログラム(出来れば簡単な解説もお願いします)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限: 2009年11月08日23:00まで
[5] その他の制限: なし


639:620
09/11/08 07:55:58
 >>620
 19を2進数にすると10011だと思うんですが
 その前に0が沢山並ぶのはOKなんでしょうか?
620は○△先生じゃないから、質問されても答えられない。
-9を2進数にすると幾つだと思うか?!

640:デフォルトの名無しさん
09/11/08 09:03:53
>>616
東京にIQ130以上の子供だけを入園させることが出来る幼稚園(だっけな?)とかなかったかな
確かそこでプログラミングしてたはず

それに近頃の、ませた小学生がプログラミングに興味を持ってるのもいるしなぁ。

641:デフォルトの名無しさん
09/11/08 09:34:41
>>596お願いします><

642:デフォルトの名無しさん
09/11/08 12:47:03
俺、小学生の時、パソコン買って、プログラミングしてたよ。
簡単なお絵描きプログラムなんですが、
BASICの本のサンプルみたいなのを、機能拡張しながら使ってた。
そのときはテープも使えず、フロッピーディスクなんてのもないから、
覚えてしまったコードを毎回入力してたけど、毎回すこしずつ違ったコードでした。


643:デフォルトの名無しさん
09/11/08 13:49:24
>>639
負の数を2進数にする時のためにも、最初に全体のビット数は
何ビットなのかはっきりさせておかなければ

2進数では大抵負の数は2の補数という表現を取り、最上位
ビットは1になる

644:デフォルトの名無しさん
09/11/08 20:09:22
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:11/13まで
[5] その他の制限: 特になし

645:デフォルトの名無しさん
09/11/08 20:35:07
[1] 授業単元: 画像情報工学
[2] 問題文:ブレゼンハムのアルゴリズムを用いて、ウィンドウ内に線分を描画するプログラムを
      作成しなさい。(以下の仕様で作成せよ)

      ■仕様(マウスの右と左のボタンを使用する。候補線の表示なし。)
       マウスの左ボタンクリック      線分の始点座標の指定
       マウスの右ボタンクリック      線分の終点座標の指定及び線分の描画

[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: Visual C++ 2008
 [3.3] 言語: C++
[4] 期限:2009年11月17日まで
[5] その他の制限:特になし

646:デフォルトの名無しさん
09/11/08 21:52:25
>>639
○△先生ってなんですか?

647:デフォルトの名無しさん
09/11/08 22:55:28
丸さんかっけー

648:デフォルトの名無しさん
09/11/08 23:32:22
>>647
意味わからないですよね?
普通に読むとそうですが

649:デフォルトの名無しさん
09/11/08 23:45:32
>>639
#include <iostream>
#define TRUE (1==1)
using namespace std;
int main() {
  int i = 0, n, bin[sizeof(int) * 8];
  
  cout << "Number:"; cin >> n;
  cout << "Binary:";
  while(TRUE){
    bin[i] = n & 1;
    if ((n >>= 1) == 0){break;}
    i++;
  }
  while(i >= 0){
    cout << bin[i--];
  }
  cout << '\n';
  return 0;
}

650:デフォルトの名無しさん
09/11/09 00:05:27
つーか直書きやめてcodepad使おうぜ

651:デフォルトの名無しさん
09/11/09 00:27:39
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク):
正の整数nの2乗の数に、2種類の数字しか現れない
4桁の正の整数 n をすべて挙げなさい
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc 
[3.3] 言語: c言語
[4] 期限: 2009年11月13日13:00まで
[5] その他の制限:なるべく簡単にお願いします
よろしくお願いします

652:デフォルトの名無しさん
09/11/09 00:40:56
>>651
#include<stdio.h>
int main(void){
puts("1000 2000 3000 3114");
return 0;
}

653:デフォルトの名無しさん
09/11/09 00:44:06
>>652
求めるプログラムお願いします

654:デフォルトの名無しさん
09/11/09 01:09:50
>>596
ダイクストラ法の部分だけ実装しています。シミュレーション部分は、そもそもなんのシミュレーションなのかわからないので
放っています。
URLリンク(codepad.org)
何をシミュレートしているのか詳しくおしえていただければ、あるいは続きを書けるかもしれません。

655:デフォルトの名無しさん
09/11/09 01:41:35
>>651
()を適当に埋めて整数の桁に現れる数を数え上げる関数
count(int n)を作ってこれを使って完成させな

int count( int n ){
int i,c[10],d;
for(i=0;i<(?);i++) c[i]=( );
while(?){ c[(?)]++;n/=10; }
for(i=d=0;i<10;i++) d+=(c[i]==0)?(?):(?);
return (?);
}

656:656
09/11/09 01:42:47
#include <stdio.h>
int main(void){
  int i, j, ii, count, digit[10];
  for(i=1000; i<10000; i++){ // sqrt(1000) = 31.6227
    for(j=0;j<10;j++) digit[j]=0;
    ii = i*i;
    for(j=0;j<8;j++) { // 10,000*10,000 = 100,000,000
      digit[ii%10] = 1;
      ii /= 10;
      if(ii==0) break;
    }
    count = 0;
    for(j=0;j<10;j++)
      if(digit[j] == 1) count++;
    if(count==2) {//printf("-->");
      printf("%d %d %d\n", i, count, i*i);
    }
  }
}

657:デフォルトの名無しさん
09/11/09 03:47:58
[1] 授業単元: C言語のポインタ、配列、ファイルの問題です
[2] 問題文(含コード&リンク):
n件のデータを配列に入力しその平均値を出力するプログラムをつくり、
実行部において添字演算子は用いず、*(p+i)と*p++それぞれを用いるパターンを作る
ただし、入出力処理をファイル処理に、入出力ファイル名はコマンドラインで指定する
[3] 環境
 [3.1] OS: とくになし
 [3.2] コンパイラ名とバージョン: とくになし
[3.3] 言語: c言語
[4] 期限: 2009/11/09日中
[5] その他の制限:途中まで出来ている部分を使ってください。
#include<stdio.h>
int main(void)
{
int A[100];
int a,b,i,n,*p;

*p=A[0];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",*(p+i));
}
for(i=0;i<n;i++){
b+=*(p+i);
}
a=b/n;
printf("%d",a);
return(0);
}
です。よろしくお願いします。

658:デフォルトの名無しさん
09/11/09 05:50:29
>>655-656
ありがとうございます.コンパイルしてみます

659:デフォルトの名無しさん
09/11/09 09:20:08
>>651
#include <stdio.h>

int check(int n)
{
int i, a[2], temp, c = 0;

while(n) {
temp = n % 10;
for(i=0; i<c; i++) if(a[i]==temp) break;
if(i==2) return 0;
if(i == c) a[c++] = temp;
label:
n /= 10;
}
return 1;
}

int main(void)
{
int i;

for(i=1000; i<10000; i++) if(check(i*i)) printf("%d\n", i);

return 0;
}

660:デフォルトの名無しさん
09/11/09 09:21:02
ゴミが残った
label:は消しといて

661:デフォルトの名無しさん
09/11/09 09:29:06
>>659
バグってるぞ

実行結果

1000
2000
3000
3114


662:デフォルトの名無しさん
09/11/09 09:33:09
お前は何を言ってるんだ?

663:デフォルトの名無しさん
09/11/09 09:36:33
>>652>>656も答えはその4つなんだが、どこがバグってるんだろ
表示するのは4桁の整数の方だし

664:デフォルトの名無しさん
09/11/09 10:34:07
正の整数 nの2乗の数に、「10の倍数でなく、
10進数表記で、3種類以上の数字が現れる、
もしくは1種類の数字しか現れない」という
ことが無いものをすべて挙げなさい

665:デフォルトの名無しさん
09/11/09 10:35:27
正の整数 nで、その2乗が10の倍数でなく、
「「10進数表記で、3種類以上の数字が現れる、
もしくは1種類の数字しか現れない」という
ことが無いもの」をすべて挙げなさい

666:656
09/11/09 10:37:30
4桁までの数。
int main(void)
{
  int i;
  for(i=1; i<10000; i++) if(check(i*i)) printf("%04d\n", i);
  return 0;
}

667:デフォルトの名無しさん
09/11/09 10:52:35
で、勝手に問題書き換えてバグがないものをバグって言い張るつもり?

668:デフォルトの名無しさん
09/11/09 10:56:46
>>665>>661とは無関係
>>652への追加課題

669:デフォルトの名無しさん
09/11/09 10:59:29
問題出したきゃ、大学でも専門学校でもどこでもいいから講師になってからにしろよw

670:656
09/11/09 11:01:05
書き換えてないぞ。柿加えた。10の倍数を含まない。
int main(void) {
  int i;
  for(i=1; i<10000; i++) if(i%10) if(check(i*i)) printf("%4d %d\n", i, i*i);
  return 0;
}

671:デフォルトの名無しさん
09/11/09 11:02:37
恥ずかしい突込みをした661が話を逸らそうとして必死にしか見えないんだがw

672:656
09/11/09 11:07:19
1回だけのは除く。
for(i=4; ......


673:デフォルトの名無しさん
09/11/09 11:08:21
講師は問題を解いて説明する
生徒はそれを写す
んだろ?

674:デフォルトの名無しさん
09/11/09 11:12:54
656なら他人の関数使ってないで、自分が書いたやり方でやれよw

675:656
09/11/09 11:34:26
>>670 で、数字が1種類でも動くようにcheck()を改良せよ。

676:デフォルトの名無しさん
09/11/09 11:39:58
>>661
で、どこがバグってるの?

677:デフォルトの名無しさん
09/11/09 11:40:22
>>656
出来ないの?

678:デフォルトの名無しさん
09/11/09 11:50:08
>>675
お前はなんで自分にレスしてんだよw

679:613
09/11/09 14:32:26
関数ポインタをconstで宣言したいんですがー

const int(*func)(void*) = ...
のように宣言すると、funcの挙動としてconstが定義されて(戻り値がconst int型となり)
変数func自体はconst化されず、プログラム中でポインタの書き換えが行えてしまいます。

関数の挙動としては戻り値にconstをつけず、ポインタ自体にconstを当てはめたいのですがー
どなたかいい手法をご存知ないでしょうか?

680:デフォルトの名無しさん
09/11/09 14:35:30
多分 int(* const func)(void*)

681:679
09/11/09 14:42:37
>>680
早レスありがとうございます。が、だめでしたora

682:デフォルトの名無しさん
09/11/09 14:42:39
やってみた

#include <stdio.h>

int func(void)
{
return 1;
}

int main(void)
{
int (* const fun)(void) = func;

printf("%d\n", fun());

return 0;
}

出力結果
1

683:デフォルトの名無しさん
09/11/09 14:44:50
ちなみに

#include <stdio.h>

int func(void)
{
return 1;
}

int func2(void)
{
return 2;
}

int main(void)
{
int (* const fun)(void) = func;

printf("%d\n", fun());

fun = func2;

return 0;
}

const_func2.c: In function 'main':
const_func2.c:19: error: assignment of read-only variable 'fun'

684:デフォルトの名無しさん
09/11/09 14:44:59
そもそも なぜそのようなことをするのか
という疑問のほうが...

685:679
09/11/09 14:47:55
>>680
早レスありがとうございます。が、だめでしたora

686:679
09/11/09 14:49:30
>>680
と思ったら右辺のほうも書き換えないといけないんですね。
両方(*const func)で解決致しました。ありがとうございます。

687:デフォルトの名無しさん
09/11/09 14:49:56
コンパイラ何?ってかそろそろスレ違いなんで

【初心者歓迎】C/C++室 Ver.69【環境依存OK】
スレリンク(tech板)

ここあたりに行こうぜ

688:デフォルトの名無しさん
09/11/09 15:19:21
funcに一度値を設定したら書き換えることが出来ないんだろ?
どういう状況でfuncという変数を使うのか知ってみたい

689:デフォルトの名無しさん
09/11/09 15:27:38
int Stage1( void );
int Stage2( void );
int Stage3( void );

int (* const func[])(void) = { Stage1, Stage2, Stage3 };

{
 while(1) func[now_stage];
}

690:デフォルトの名無しさん
09/11/09 15:45:19
趣味の問題ね()

691:656
09/11/09 16:37:19
>>659 待った?
int check(int n) {
  int i, a[2], temp, c = 0;

  while(n) {
    temp = n % 10;
    for(i = 0; i < c; i++)
      if(a[i] == temp) break;
    if(i == 2) return 0; // check NG
    if(i == c) a[c++] = temp;
    n /= 10;
  }
  if(c == 2) return 1; // check OK
  return 0;
}

692:デフォルトの名無しさん
09/11/09 16:45:16
659は関係ないだろw

693:デフォルトの名無しさん
09/11/09 16:49:14
おいおい、>>675の名前欄は656、つまりお前自身じゃねーかよw
自演で何やってんだよw

694:デフォルトの名無しさん
09/11/09 18:05:46
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク):
  ブレゼンハムのアルゴリズムを用いて、ウインドウ内に線分を描画するプログラムを作成しなさい。
  動作の仕様は2通りの中から選びなさい。(どちらでもよい)

  仕様1(マウスの左ボタンと右ボタンを使用する。候補線を表示はなし。)
  マウスの左ボタンクリック   線分の始点座標の指定
  マウスの右ボタンクリック   線分の終点座標の指定及び線分の描画

  仕様2(マウスの左ボタンだけで操作する。候補線を表示する。)
  マウスの左ボタンクリック   線分の始点座標の指定、及び線分の描画開始
  マウスの移動         始点から線分を絶えず候補として描画。(古い線分は消す)
  マウスの左ボタンクリック   線分の終点座標の確定。線分を描画。

ただし、ライブラリの点を描画するAPI関数を使って線分を引くこと。直線を引くAPI関数を使ってはならない。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ: Microsoft Visual C++ 2008 Express Edition
 [3.3] 言語: C++
[4] 期限: 09年11月11日(水)
[5] その他の制限: 特になし

仕様は1と2どちらでもOKなので、簡単なほうで構いません。
よろしくお願いします。


695:デフォルトの名無しさん
09/11/09 18:36:14
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):不定方程式が解を持つか判断して、持つ場合には解を求めるプログラムを作れ
[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: Visual C++ 2008
 [3.3] 言語:C++
[4] 期限: 明日まで
[5] その他の制限: 特になし

もしどなたかやっていただけるならばお願いしますm(_)m




696:デフォルトの名無しさん
09/11/09 19:30:06
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: VC2003
 [3.3] 言語: C
[4] 期限: 明日中
[5] その他の制限: 特になし

697:デフォルトの名無しさん
09/11/09 19:58:10
>>654
ありがとうございます!
シミュレーション内容について詳しく書いたファイルを↓に上げました。
よければよろしくお願いします。

[1] 授業単元:
アルゴリズムとプログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
プログラムに使用するデータファイル↓
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[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まで] または [無期限] のいずれか)
11月17日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません

698:デフォルトの名無しさん
09/11/09 19:59:12
>>696
buf[4] = '\0';

699:デフォルトの名無しさん
09/11/09 20:37:11
#include <iostream>
using namespace std;

int main() {
int a[100],b=-9999;
int i=0,j;

do {
cout << "整数値を入力してください\n";
cin >> a[i];
b += a[i];
i++;
}while( a[i-1] != 9999);

cout << b << '\n';

for(j=0;j<i-1;j=j+1)
cout << a[j] * 3 << '\n';

return 0;
}

このプログラムってループを抜ける条件は9999と入れた時だけですか?

700:デフォルトの名無しさん
09/11/09 21:02:19
>>699
いえ、他にも、100回を超えても何度も何度も操作を続けて
書き込み禁止のメモリに到達したときにも抜けます(異常終了という形で)。

701:デフォルトの名無しさん
09/11/09 21:27:03
>>694
仕様2で
URLリンク(codepad.org)

702:デフォルトの名無しさん
09/11/09 21:29:26
>>700
ありがとうございます

703:604
09/11/09 21:37:51
国語と数学の総合的な平均点も出力する
っていう言葉の意味が分からないんですが、これは、合計を5で割ればいいんですかね?
10で割ればいいんですかね?

704:デフォルトの名無しさん
09/11/09 21:41:36
国語の合計と数学の合計の合計を10で割るのが一番正確だが
国語の平均と数学の平均の合計を2で割ってもまぁ良い

705:デフォルトの名無しさん
09/11/09 21:44:31
[1] 授業単元:データ構造とアルゴリズム設計
[2] 問題文(含コード&リンク):
入力された小文字のアルファベットを,リストを用いて順次格納する.
’−’が入力された時に文字の入力を終了し,それまでに格納された全ての文字を表示するプログラムを作成
せよ.
ただし,リストに格納する際,リストの最後に追加するようにせよ.
例(a, b, c, - と順に入力したときa,b,cと出力される)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:特に無し
[5] その他の制限:双方向リストは使わない。
ヘッダは#include <stdio.h>以外は使わない

706:604
09/11/09 21:45:16
>>704
つまり、これは総合的平均っていうのは100を越すことはないという事ですか?


707:デフォルトの名無しさん
09/11/09 23:07:35
>705
制限付きで面白そうなのでやってみようかな

708:デフォルトの名無しさん
09/11/09 23:22:25
>>706
そういうことになるな。

709:デフォルトの名無しさん
09/11/09 23:24:36
>>708
ありがとうございました

710:デフォルトの名無しさん
09/11/09 23:35:40
10進数を2進数に変換するプログラムを 順番通りに表示できるようにするプログラムを配列を使って作るんですが

#include <iostream>
using namespace std;
int main() {
int i,n,bin[32];

cout << "10進数:";
cin >> n;
cout << "2進数:";
for(i=0; i<32; i++) {
bin[i] = n & 1;
n >>= 1;
}
for(i=31; i>=0; i--)
cout << bin[i];
return 0;
}
結局これは、0がいっぱい出てくるから、ダメですかね?
それとも負の数も考慮に入れたから、こういう事になったんですか?


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4796日前に更新/214 KB
担当:undef