07/07/17 23:45:39
× 資料なし(欠測) 統計値を求める期間内の観測結果が全て求められなかった場合。
は、どうあつかうんだ?
201:デフォルトの名無しさん
07/07/18 02:31:07
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
longが定義されている数の最大値LONGMAXをもとめろ。
例えば、i=1 を2倍していき、LONGMAXの最大値を求める。
別にこの方法でなくてもいい。各自にまかせる。
ちなみに LONGMAXはおよそ2147483647である。
余裕があるものはdouble などもやることが望ましい。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: (gcc2.95-3)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: (2007年07月25日23:59まで)
[5] その他の制限:無制限
さぐりで下のようなところまでは書きました。
#include <stdio.h>
#define LONGMAX 2147483647
int main(void)
{
long int i,i2;
/*これは0 ... の無限ループ
for(i=1;i<LONGMAX;i*=2)
printf("%d ",i);
*/
for(i=1;;i2=i,i*=2){
printf("%d ",i);
if(i<i2){
printf("%d is LONGMAX\n",i);
break;
}}}
までできましたが、値が少し違い微妙です。
それと、コメントカットしたらなぜ無限ループになるのでしょうか?
これにかなり悩みました。
202:デフォルトの名無しさん
07/07/18 03:17:08
>>201
無限ループの最初の方で止めれば分かるけど 1,2,4,8…1073741828 の次から0になってるはず。
で、その理由は出力される数を2進表現してみれば分かるはず。キーは32ビット。
後半での出力は…少しの違いなのか?
---
#include <stdio.h>
int main(void)
{
unsigned long max = -1;
printf("Unsigned MAX:%ud\n", max);
printf("Signed MAX:%d\n", max >> 1);
return 0;
}
----
203:デフォルトの名無しさん
07/07/18 03:37:53
>>201
2倍していき・・・verで書いてみた
#include <stdio.h>
#include <math.h>
int main(void)
{
int i=0;
long n, tmp;
while( (tmp = pow(2, i)-1) >= 0 ){
n = tmp;
i++;
}
printf("LONG MAX : %d\n", n);
return(0);
}
204:デフォルトの名無しさん
07/07/18 03:54:03
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:不明
[3.3] 言語:C
[4] 期限:7/19まで
[5] その他の制限:課題①はwhile文、②は両方とも構造体、③は全てポインタと構造体の単元です
①と②は自分が考えたソースを添えてみたので、どこが悪いのかだけでも教えていただけると幸いです
どうかご教授の程お願いします
205:デフォルトの名無しさん
07/07/18 07:36:23
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:標準関数の利用
問題1:文字列を入力、英文字とそれ以外を収納する配列に振り分けしなさい
使用する標準関数:isalpha()など
実行画面
文字列入力==>A12H&jfTy8uZ3#
英字:AHjfTyuZ
その他:12&83#
問題2:文字列と削除文字列を入力し、文字列中から削除文字列を排除しなさい
使用する標準関数:strncmp(),strcpy(),strlen()など
実行画面
文字列入力(m1)==>ABCDEFAADABC
削除文字列(m2)==>ABC
結果文字列(m1):DEFAD
注意:配列の使用はm1,m2のみとする
206:デフォルトの名無しさん
07/07/18 07:56:14
>>204
よく見てないけど
①
=< じゃなくて <=
isdigit() -> isdigit(moji)
printf("hogehoge %d"); -> printf("hogehoge %d",); (カンマ)
②
× while(buff = getchar()!="0 0 0"){
whileのなかのsscanfのbufferなんてない
× printf("%4s%4f%4s,stu[j].name,stu[j]height,stu.[j]blood");}
207:206
07/07/18 07:57:21
あー
printf("hogehoge %d"fuga); -> printf("hogehoge %d",fuga); (カンマ)
に訂正です
208:デフォルトの名無しさん
07/07/18 08:10:29
>>186
URLリンク(www.sra.co.jp)
たぶんこれと同じなんやろうけど、どうやったら速くできるんだろう。
209:デフォルトの名無しさん
07/07/18 08:34:24
>>177
奮闘中ですが、できませんorz
お願いします!
210:190 ◆Oa0JSQvro2
07/07/18 09:12:44
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):○×ゲーム(3目並べ) をプロンプト上で動かす。com/man対戦、先攻後攻は選択可能
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:
[3.3] 言語:C
[4] 期限: 今週金曜夜
[5] その他の制限: 特になし
211:デフォルトの名無しさん
07/07/18 10:09:46
[1] プログラミング基礎
[2] 検討及び考察」の指示に従って求めた, S/N=3.0 [dB]のときの a. 誤差[%],b. 誤り検出率[%] の数値(有効数字3桁以上)
および実験 2. のために作成したシミュレーションプログラムを使って報告せよ。
詳しいことは次のアドレスに書いてあります。
URLリンク(itohws03.ee.noda.tus.ac.jp)
[3.1] Unix
[3.2] gcc
[3.3] c
[4] 7月27日(金)
[5] 私の学籍番号の下三桁は080です。
212:デフォルトの名無しさん
07/07/18 10:14:23
どうせその学籍番号は他人のものだろ?
213:デフォルトの名無しさん
07/07/18 10:41:19
>>177
VBではなくVSです
214:c言語初心者
07/07/18 10:56:39
講義名:プログラミング1 … プリントを渡されてやってこいとのことでした。よろしくおねがいします
問3、よく切られたトランプから、5枚のカードを選び出すプログラムを作成せよ、ただし、トランプにはジョーカーは含まれないものとする。
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))
int a[ (1)? ];
void RandomPermutation(int n)
215:c言語初心者
07/07/18 10:57:29
『続き』
{
例題2と同じ
}
int main(void)
{
int i;
RandomPermutation( (1)? );
for(i = 0; i < 5; i++){
if( (2)? ){
printf("ハート% 4d \n", n (3)? );
}else if ( (4)? ){
printf("ダイア% 4d \n", n (5)? );
}else if ( (6)? ){
printf("クラブ% 4d \n", n (7)? );
}else{
printf("ハート% 4d \n", n (8)? );
}
return 0;
}
例題2と同じというところは、プリントの横に例題2というのがあったんですが、どこかどこまでが例題2と同じなのかがわかりませんでした。そこが必要であれば例題2を打つんでよろしくお願いします。(1)から(8)までを回答としてよろしくねがいします。
216:デフォルトの名無しさん
07/07/18 11:07:22
>>209
URLリンク(kansai2channeler.hp.infoseek.co.jp)
217:デフォルトの名無しさん
07/07/18 11:19:47
>>215
四の五の言わないで全部書き出しな
218:デフォルトの名無しさん
07/07/18 11:21:57
>>175
ですがどうにもうまく三角形が描けませんorz
ファイル出力までで結構ですので、どなたかなにとぞお願いしますm(__)m
219:c言語初心者
07/07/18 11:39:59
>>215
0,1,2, … 、99をランダムに並べる
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1))
int a[100]
220:c言語初心者
07/07/18 11:40:29
続き
void RandomPermutaion(int n)
{
int i, j, z;
for (i = 0; i < n; i++) {
a[i] = i;
}
for(j = n - 1; j > 0; j--) {
i = (int)(j * uniformrend());
z = a[i]; a[i] = a[j]; a[j] =z;
}
}
int main()
{
int n, i;
n = 100;
RandmPermutation(n);
for (i = 0; i < n; i++){
printf("%4d", a[i]);
}
printf("/n");
return 0;
}
が例題2です。よろしくお願いします
221:デフォルトの名無しさん
07/07/18 11:56:24
>>220
できたぞ
つか
printf("ハート% 4d \n", n (3)? );
とか
printf("ダイア% 4d \n", n (5)? );
って、問題間違ってないか?
222:c言語初心者
07/07/18 12:00:14
間違ってました。申し訳ありません。
printf("ハート% 4d \n", (3)? );
printf("ダイア% 4d \n", (5)? );
です。
よろしくお願いします。
223:デフォルトの名無しさん
07/07/18 12:07:51
[1] 授業単元: C
[2] 問題文(含コード&リンク):単純選択法
大きさ20の配列keyを用意し、キーボードから値を入力する。
この配列keyの要素を、単純選択法でソートするプログラムを作成せよ。
ただし、ソートの途中経過を画面に出力すること。
また、最後に比較回数を画面に出力すること。
【ヒント】
配列の大きさの指定
#define SIZE 20
単純選択法‥最小の要素を選び、未ソートの部分の先頭の要素と交換する
途中経過‥未ソートの部分が1つ減るたびに(外ループ)出力。
比較回数‥初期値0の変数を用意し、比較のたびに(内ループ)インクリメント。
発展
以下の機能を持つ関数を作成し、利用する形にコードを修正しなさい。
配列要素の入力を行う input_array
配列要素の出力を行う output_array
単純選択法によるソート select_sort
[3] 環境
[3.1] OS: WindowXP
[3.2] コンパイラ名とバージョン:VS2005
[3.3] 言語: C
[4] 期限: いつでも
[5] その他の制限:なし
224:デフォルトの名無しさん
07/07/18 12:09:04
>>223
発展までは書いてみました
#include<stdio.h>
#define SIZE 20
void kadai28()
{ int key[SIZE];
int i, j, p, cnt = 0, w;
for(i = 0; i < SIZE; i++)
scanf("%d", &key[i]);
for(j = 0; j < SIZE; j++)
printf("%3d", key[j]);
printf("\n");
for(i = 0; i < SIZE; i++){
p = i;
for(j = i+1;j < SIZE;j++){
if(key[j] < key[p])
p = j;
cnt++;
}
w = key[p];
key[p] = key[i];
key[i] = w;
for(j = 0; j < SIZE; j++)
printf("%3d", key[j]);
printf("\n");
}
printf("cnt = %d\n", cnt);
return;
}
発展の方お願いしますー
225:デフォルトの名無しさん
07/07/18 12:10:49
[1] プログラム基礎復習
[2] charのみを使用し小数点以下100桁まで計算できる計算機を作る(中学程度)
[3] 環境
[3.1] Windows2000プロ
[3.2] gcc
[3.3] C
[4]7/20
[5]main以外の関数を作ってはいけない
お願いします。さっぱりなので・・・
226:デフォルトの名無しさん
07/07/18 12:13:08
>>225
「+」「-」「*」「/」「√」位かな?
227:デフォルトの名無しさん
07/07/18 12:15:15
>>222
じゃ、パーツだけ教えるよ
n
a[i]/13==0
a[i]/13==1
a[i]/13==2
a[i]%13
a[i]%13
a[i]%13
a[i]%13
または
n
a[i]&3==0
a[i]&3==1
a[i]&3==2
a[i]/4
a[i]/4
a[i]/4
a[i]/4
好きなほうを使ってくれ
228:デフォルトの名無しさん
07/07/18 12:15:26
>>226
お願いできますか?
charだと256までしか出来ないので積や商がさっぱりで・・・
229:c言語初心者
07/07/18 12:20:22
>>221さん。
頼んでおいて申し訳ないのですが、>>214の回答をよろしくお願いします。
230:デフォルトの名無しさん
07/07/18 12:20:25
>>225
小数点以下でcharってprintf出力で表示される答えが100桁でいいんだよね?
231:デフォルトの名無しさん
07/07/18 12:24:54
>>229
>>227にヒントを書いたんだけど、不服?
232:225です
07/07/18 12:28:13
>>214さん
問題文の意味がよく分からないんですけど
ジョーカーは1枚ですよね?
それでランダムで5枚引くと・・・・
233:デフォルトの名無しさん
07/07/18 12:29:21
>>225
小数点以上は無限大?
234:225です
07/07/18 12:32:02
>>233
指定されていないので 多分無限だと思います
235:c言語初心者
07/07/18 12:33:46
>>231さん
不服なんてとんでもないです。ただ、ヒントもらっても自分が解けないだけです。申し訳ないです。
>>232さん
たぶんジョーカー2枚を抜いた52枚でのことだとおもいます。よろしくお願いします。
236:225です
07/07/18 12:33:59
足し引きはifで100で固めれば簡単に出来ることはわかったんですけど
237:デフォルトの名無しさん
07/07/18 12:34:33
多倍長の実数計算を実装させて
>[5]main以外の関数を作ってはいけない
か
冗談きつすぎ
238:デフォルトの名無しさん
07/07/18 12:37:24
>>225
100^256 までしかできなくね? 無限じゃネージャン
239:デフォルトの名無しさん
07/07/18 12:38:15
再帰下降も不可、と
240:デフォルトの名無しさん
07/07/18 12:39:19
>>238
勿論char[]で多倍長を実装するんでしょ
そうじゃなきゃそもそも実数すら扱えん
241:256です
07/07/18 12:39:40
ごめんなさい頼る所はココしかないので・・・・orz
242:デフォルトの名無しさん
07/07/18 12:40:08
未来からの使者か?
243:149
07/07/18 12:58:59
>>153さんのテキストをコンパイルしてみたのですが、
/tmp/ccY67IGB.o(.text+0x163): In function `angle':
: undefined reference to `sqrt'
/tmp/ccY67IGB.o(.text+0x177): In function `angle':
: undefined reference to `sqrt'
/tmp/ccY67IGB.o(.text+0x197): In function `angle':
: undefined reference to `acos'
collect2: ld はステータス 1 で終了しました
と表示されて、./a/out のファイルが作成されなかったのですが
これは何でしょうか・・
244:デフォルトの名無しさん
07/07/18 13:00:17
何方か205お願いします
245:デフォルトの名無しさん
07/07/18 13:01:49
エラーメッセージじゃないかな??
246:デフォルトの名無しさん
07/07/18 13:05:23
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
特定の単語にgoogle 検索のリンクをはるプログラムをつくれ。
例えば、下は「テスト」という単語をgoogle検索したリンク である。
q= 以降は「テスト」という単語がURLエンコード(unicode)された文字列となっている。
URLリンク(www.google.co.jp)
1. htmlファイルを受け取る
2. 検索リンクにしたいいくつかの指定した単語を受け取る
3. すでにリンク済みの単語に注意しながら、指定した単語をgoogle 検索のリンクにする。
(例)「宿題」をgoogle 検索されたリンクにする。
この宿題ができなかったら単位はあげません。
->
この<a href="URLリンク(www.google.co.jp)
宿題</a>ができなかったら単位はあげません。
なお、目的を果たせるプログラムだったらこの形式でなくてもかまわない。
余裕がないものは
・検索ワードはURLエンコードの必要のない半角英数等だけでいい。
・受け取った検索ワードはすでにリンクされていないと仮定してもいい。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc2.95-3
[3.3] 言語: C
[4] 期限: (2007年07月31日17:00まで)
[5] その他の制限: 何を使っても構わない
247:デフォルトの名無しさん
07/07/18 13:07:40
>>243
-lmつけると幸せになれる
248:デフォルトの名無しさん
07/07/18 13:08:14
>>225
組むのめんどいからヒントだけあげるよ
現在のCPU能力では「+」と「-」しか演算が出来ない。
「*」「/」はただの演算方法でしかない
例 a*bの場合 int i; for(i=0;i=b;i){a++}
249:デフォルトの名無しさん
07/07/18 13:09:34
>>248
ちょw
250:デフォルトの名無しさん
07/07/18 13:12:39
>>205
何が分からないか分からないんだが・・・・・・・
まんまじゃん
251:デフォルトの名無しさん
07/07/18 13:15:31
>>250
それを言うなwそれ言っちゃこのスレの存在価値がw
252:149
07/07/18 13:37:55
>>247さん
幸せになれましたが、どういう原理なのでしょう?
質問ばっかですいません
書き忘れましたが、153さん・247さんありがとうです
253:デフォルトの名無しさん
07/07/18 13:41:52
>>252
mという数学ライブラリをリンクしたのです。
254:デフォルトの名無しさん
07/07/18 13:42:09
>>248
兄さんそれ掛け算になってません。
forの条件式もアレです。意図は伝わるけど。
255:デフォルトの名無しさん
07/07/18 13:46:27
a*bの場合 int i,n; for(i=0;i<b;i++){n+=a;}
暇ですね。
256:デフォルトの名無しさん
07/07/18 13:47:11
a*bの場合 int i,n=0; for(i=0;i<b;i++){n+=a;}
257:デフォルトの名無しさん
07/07/18 13:48:03
>>252
243のエラーメッセージはソースの中に存在しない関数(sqrtとacos)があって
プログラムを作れないというリンカのエラー。
>>253の言うとおり数学ライブラリをリンク指定すれば
その中に関数sqrtとacosという関数があるからリンクが通る。
258:デフォルトの名無しさん
07/07/18 13:52:06
>>248
259:デフォルトの名無しさん
07/07/18 14:02:41
馬鹿は彫っとけ
260:デフォルトの名無しさん
07/07/18 14:04:45
やらないか
261:デフォルトの名無しさん
07/07/18 14:16:34
>>175
URLリンク(kansai2channeler.hp.infoseek.co.jp)
入力は各行に(別に各行でなくてもいいけど)
x1 y1 Z1 x2 y2 Z2 x3 y3 Z3 r g b
の順で数値を並べたファイル.
(例)
0 10 10 100 30 10 50 50 100 255 0 0
0 100 20 100 100 20 50 0 20 0 255 0
0 200 30 100 200 30 80 20 15 0 0 255
出力先もコンソールにしてるが,変更したければmain冒頭の
FILE *out = stdout;
を書き換えればいい.
画像はLinuxのxvで確認した.ppm形式はいくつか種類があるようなので問題あるかも.
(注:CGは昔かじった程度なのでzバッファについて根本的な勘違いをしてるかもしれない)
262:デフォルトの名無しさん
07/07/18 14:30:47
>>205
URLリンク(kansai2channeler.hp.infoseek.co.jp)
問題2でstrcpy()(文字列のコピー)の替わりにstrcat(文字列の連結)を使った。
strcpy()を使えと言われても俺の能力じゃムリポ
263:デフォルトの名無しさん
07/07/18 14:33:09
>>262
strccat(a, b) ≡ strcpy(a + strlen(a), b) ≡ strcpy(strchr(a, '\0'), b)
264:262
07/07/18 14:37:06
262の駄文は忘れてくれ
問題2の修正版
URLリンク(kansai2channeler.hp.infoseek.co.jp)
265:デフォルトの名無しさん
07/07/18 15:08:56
>>246
色々穴だらけだが
URLリンク(kansai2channeler.hp.infoseek.co.jp)
266:デフォルトの名無しさん
07/07/18 15:18:43
>>262
最後のナル文字にさえ気をつければ便利だし安全だよ。
267:デフォルトの名無しさん
07/07/18 15:19:45
サイズの方が重要かも。
268:265
07/07/18 15:24:25
あ、コメントの処理入れるの忘れた
まあいいや
どうせもともと穴だらけだ
269:ヒープ
07/07/18 15:36:58
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):
ヒープソートを用いて、配列に格納された10個の数値データを
大きい順に並び替える。変化がわかるようにソート前と後を出力させる。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 早いとありがたいです
[5] その他の制限: 特にありません
よろしくおねがいします。
270:デフォルトの名無しさん
07/07/18 17:26:12
>>177
#include <stdio.h>
int main(void) {
int i,j,k,sn,flg[3]={0},suka;
int n[3][5]={
{157788,457190,-1},
{5161,7093,7485,9614,-1},
{64,79,-1}
};
printf("Input number > ");
scanf("%d",&sn);
for(i=0,k=1000000; i<3; i++,k/=100) {
for(j=0; n[i][j]>0; j++) {
if(n[i][j]==sn%k) {
flg[i]++;
break;
}
}
}
for(i=0,suka=1; i<3; i++) {
if(flg[i]) {
printf("%d等 \n",i+1);
suka=0;
}
}
if(suka) printf("はずれ\n");
return 0;
}
271:デフォルトの名無しさん
07/07/18 18:07:53
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
2次元配列の中にデータの入ったファイルを読み込んで代入する方法を
main関数ともう1つ関数をつくって作成せよ。
例. box[5][5];の2次元配列にファイルのデータ(ここではdata.txt)を代入
data.txt
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 今日中です
[5] その他の制限: 特にありません
よろしくおねがいします。
272:175
07/07/18 19:53:23
>>261
ありがとうございました!m(__)m
自分でも色々いじってみましたが、思っていた通りの完璧な出来でした。
本当に助かりました!
273:デフォルトの名無しさん
07/07/18 20:09:44
[1] 授業単元:情報活用
[2] 問題文:キーボードから順次入力された正の整数を0が入力されるまで、
配列に順番に格納し、入力された(0を除く)値の平均値(実数として扱うこと)
にもっとも近い値(平均との差が最小となる値)が何番目に入力された
どういう値であるかを表示するプログラムを作成せよ。
例)
数字(1)を入力してください。 2
数字(2)を入力してください。 5
数字(3)を入力してください。 3
数字(4)を入力してください。 1
数字(5)を入力してください。 0
入力された数字の平均は2.75です。
これは、3番目に入力された3に最も近いです。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: [7月19日20:00]
[5] その他の制限:特になし
ギリギリまで頑張ったのですができませんでした。わかる方お願いします
274:デフォルトの名無しさん
07/07/18 20:12:21
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):○×ゲーム(3目並べ) をプロンプト上で動かす。com/man対戦、先攻後攻は選択可能
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:
[3.3] 言語:C
[4] 期限: 今週金曜
[5] その他の制限: 特になし
275:デフォルトの名無しさん
07/07/18 20:13:01
>>273
なんか前々スレくらいで全く同じ問題に回答した気がする。
276:スモーク
07/07/18 20:17:27
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 問題009
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。
実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。
演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。
[3] 環境
3.1] OS: (Windows XP)
[3.2] コンパイラ名とバージョン: (VS 2005)
[3.3] 言語:C
[4] 期限: ([2007年07月20日hh:金曜まで]
[5] その他の制限:
課題の数は残り20くらいありますが、半分は片付けました。
しかし、追加されてくるものを回答する時間がもうありません。
どうかよろしくおねがいします。
あなたの能力が便りです。
277:デフォルトの名無しさん
07/07/18 20:20:53
釣りか?
278:デフォルトの名無しさん
07/07/18 20:21:21
除算の結果の小数点以下は?
279:デフォルトの名無しさん
07/07/18 20:25:19
>>271
URLリンク(kansai2channeler.hp.infoseek.co.jp)
280:デフォルトの名無しさん
07/07/18 20:27:06
[1] 授業単元:情報
[2] 問題文:2次方程式a*x*x + b*x + c = 0の解を求めるプログラムを作成せよ。
係数a,b,cはdouble型で、キーボードから入力するものとする。
虚数解の出力も行うこと。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: あしたまで
[5] その他の制限:ありません
よろしくおねがいします
281:22
07/07/18 20:37:28
名前:デフォルトの名無しさん[sage] 投稿日:2007/07/15(日) 09:55:51
[1] 授業単元: C言語 基礎&応用
[2] 問題文(含コード&リンク): 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
ソース:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:windowsXP
[3.2] コンパイラ名とバージョン:Visual studio.2005
[3.3] 言語:C言語
[4] 期限:2007/07/19の12:00まで。
[5] その他の制限:特になし
どうにか講師が作らせたかった内容になったらしく問題1と2はOKでました。
最後の問題3です。よろしくお願いいたします。
282:スモーク
07/07/18 20:41:23
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 問題009
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。
実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。
演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。
[3] 環境
3.1] OS: (Windows XP)
[3.2] コンパイラ名とバージョン: (VS 2005)
[3.3] 言語:C
[4] 期限: ([2007年07月20日hh:金曜まで]
[5] その他の制限:
課題の数は残り20くらいありますが、半分は片付けました。
しかし、追加されてくるものを回答する時間がもうありません。
どうかよろしくおねがいします。
あなたの能力が便りです。
小数点以下は切り捨てでいいですよ。
とにかく0による除算の回避とあるだけなのでそのとおりで済むはずです。
多少のミスはかまいません。それ以外がうまく機能すればよいです。
また、ほかの問題も載せますのでよろしくお願いします。
283:デフォルトの名無しさん
07/07/18 20:42:52
ここまでくると、嫌がらせとしか思えないな
284:デフォルトの名無しさん
07/07/18 20:43:30
なんか追記の書き方がムカツクのは俺の心が狭いからかな
285:デフォルトの名無しさん
07/07/18 21:07:30
>>280
汚くて&間違ってたらスマソ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
286:285
07/07/18 21:11:36
あー、a=0の時の処理書いてないわ
適当に追加してね
287:デフォルトの名無しさん
07/07/18 21:26:20
>>284
俺も。>>285はキリストかあるいはMだと思う。
288:デフォルトの名無しさん
07/07/18 21:39:00
>>282
#include <stdio.h>
#include <stdlib.h>
int main(void){int a,b,c;char e;if(scanf("%d %d %c",&a,&b,&e)!= 3){
fprintf(stderr, "input error\n");return EXIT_FAILURE;}switch (e) {
case '+': c = a + b; break;case '-': c = a - b; break;
case '*': c = a * b; break;case '/':
case '%':if (b == 0) {fprintf(stderr, "zero divide\n");
return EXIT_FAILURE;}if (e == '/') {c = a / b;} else {c = a % b;}
break;default:fprintf(stderr, "illegal operator\n");return EXIT_FAILURE;}
printf("result = %d", c);
return EXIT_SUCCESS;}
289:alsk
07/07/18 21:56:33
健康についての英語のエッセイを500~600字程度でお願いしたいのですが…
可能でしょうか?
タバコとか、肥満についてならなんでもいいんで!
290:デフォルトの名無しさん
07/07/18 21:57:11
>>289
スレ違いすぎ。
291:デフォルトの名無しさん
07/07/18 22:00:17
(´-`).。oO(英語で500~600"字"ってかなり少なくないか?)
292:デフォルトの名無しさん
07/07/18 22:03:32
(´-`).。oO("語"の間違いだろ・・・常考)
293:デフォルトの名無しさん
07/07/18 22:04:01
釣りか単なるマルチだろ…
294:デフォルトの名無しさん
07/07/18 22:40:52
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
次のようにプログラムを作成せよ。前回のプログラムのmainとnumber大域変数は変更しない。
intのスタックを2つ作る(大域変数)。1つのスタックは数値をいれる。もう1つには演算子を表す数をいれる
例
+→0 弱低
-→1 ↓
*→2 ↓
/→3 強高
#include<stdio.h>
#include<ctype.h>
char *p;char c[100];
int expression(void);
int term(void);
int number(void);
main(){
int ans;
while(1){
printf("Enter expression : ");
fgets(c,90,stdin);
p=&c;
if(*p == '\n')
{break;}
ans=expression();
printf("Answer:%d\n" , ans);
}
}
295:デフォルトの名無しさん
07/07/18 22:42:19
int expression(){
int ans;
ans = term();
while(1){
if(*p == '+'){
*p++;
ans = ans + term();
}
else if(*p == '-'){
*p++;
ans = ans - term();
}
else
break;
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2007年07月19日
[5] その他の制限:特になし
296:デフォルトの名無しさん
07/07/18 23:13:01
>>223
お願いします
297:デフォルトの名無しさん
07/07/18 23:16:30
>>279
回答ありがとうございます。
とてもみやすかったです^^
298:デフォルトの名無しさん
07/07/18 23:24:06
>>297
readfile関数内の int j はいらないから消しといて><
299:デフォルトの名無しさん
07/07/19 00:12:58
>>273
#include <stdio.h>
#include <math.h>
#define N 128
int main(void)
{
int i=0, j, n=0, x[N];
float avg=0.0, tmp;
while(1){
printf("数字(%d)を入力してください。: ", i+1);
scanf("%d", &x[i]);
if(x[i] == 0) break;
avg += x[i];
i++;
if(i == N) break;
}
avg = avg / i;
printf("\n入力された数字の平均は%fです。\n", avg);
tmp = fabs(avg - x[0]);
for(j=1 ; j<i ; j++){
if(tmp > fabs(avg - x[j])){
tmp = fabs(avg - x[j]);
n = j;
}
}
printf("これは、%d番目に入力された%dに最も近いです。\n", n+1, x[n]);
return(0);
}
300:デフォルトの名無しさん
07/07/19 00:33:57
[1] 授業単元:計算機
[2] 問題文(含コード&リンク):
スタックを利用し、入力された文字を逆順に出力するプログラム。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
ここまで作ったのですが、ポップアップがうまく出来ません
[3] 環境
[3.1] OS: (Windows/Linux/等々) windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) bcc32
[3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限:7/26
どなたかご教授お願いしますorz
301:273
07/07/19 00:47:41
>>299
ありがとうございますmm
明日やってみます。
本当にありがとうございます。
302:デフォルトの名無しさん
07/07/19 00:51:41
>>296
URLリンク(kansai2channeler.hp.infoseek.co.jp)
303:デフォルトの名無しさん
07/07/19 00:58:09
>>300
よく分からないのだが、
対話的に1文字ずつ文字入力を行い、1文字ずつ取り出したいのか?
それとも、
文字列を入力し、結果の反転文字列を一気に出力したいのか?
304:デフォルトの名無しさん
07/07/19 00:58:15
>300
char x;
scanf("%s", &x);
ってなんだ?
305:デフォルトの名無しさん
07/07/19 01:02:05
>>303
入力は1文字ずつで、出力は1文字ずつ出したり全部出したり出きる様にしたいんです。
306:デフォルトの名無しさん
07/07/19 01:11:28
[1] 授業単元:Cぷろぐらみんぐ
[2] 問題文:複素数a+bi(iは複素数)のn乗を求めて出力するプログラムを作れ。
a,bはdouble型とし、nはint型で、キーボードから入力するものとする。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: はやめでおねがいします
[5] その他の制限:特にないです
307:デフォルトの名無しさん
07/07/19 01:16:07
「はやめ」っていつまでだよ
明日の朝とかもうちょっと具体的に書け
308:デフォルトの名無しさん
07/07/19 01:19:00
[1] 授業単元:プログラミング論
[2] 問題文(含コード&リンク):URLリンク(sakuratan.ddo.jp)
return ????部分が分かりません。
[3] 環境
[3.1] OS: (Windows/Linux/等々)WinXP
[3.2] コンパイラ名とバージョン:VC6
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: 今日
[5] その他の制限:なし
よろしくおねがいしますorz
309:デフォルトの名無しさん
07/07/19 01:24:12
なんでいちいち外部に上げるかね
310:デフォルトの名無しさん
07/07/19 01:24:47
>>308
問題文じゃねええええええええええええええええええええええええええええええええええええええええええ
311:デフォルトの名無しさん
07/07/19 01:27:19
>>308
double 型の値を返すんだから、
FXかFX1じゃねえの?
問題文がないしわけがわからんよ
312:308
07/07/19 01:28:11
>>310
問題文がついてないんです・・・
一次正弦関数の補完値を求めたいみたいなんですけど
グーグル先生に聞いてもよく分かりませんでした。
313:デフォルトの名無しさん
07/07/19 01:29:36
は?
問題文がないなら宿題じゃねえじゃん
314:デフォルトの名無しさん
07/07/19 01:30:00
>>306
int main(){
double a,b,t; int n;
scanf("%lf,%lf,%d",&a,&b,&n);
while(--n>0)
t=b,b=2*a*b,a=a*a-t*t;
printf("%g+%gi\n",a,b);
}
315:デフォルトの名無しさん
07/07/19 01:31:47
[1] 授業単元: c言語
[2] 問題文(含コード&リンク):
整数nを入力し、1~nまでの整数を使い、n桁の組み合わせを出力する。
同じ整数は2回以上使ってはいけない。
例えば3を入力した場合
012 021 102 120 201 210
を出力したい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 7/23
[5] その他の制限: 特に無し
もうさっぱりです。お願いします。
316:308
07/07/19 01:32:04
>>313
「ここ埋めてきて」と…
317:デフォルトの名無しさん
07/07/19 01:33:24
>>316
俺たちはその「ここ埋めてきて」とか一時正弦関数の補完とか言われてな・・・
もしかして文章で伝えられずに口頭だったから何も書かなかったのか・・・
もうだめぽ
318:デフォルトの名無しさん
07/07/19 01:46:04
>>315
> 整数nを入力し、1~nまでの整数を使い、n桁の組み合わせを出力する。
...
>例えば3を入力した場合
>012 021 102 120 201 210
この例だったら、1 ~ n じゃなくて 0 ~ n-1 じゃないのか?
319:300
07/07/19 01:46:55
とりあえず1文字ずつ入力して1文字ずつ出力しようとしてみたけど
どうしても最後の文字(1番最初に入力した物)が出力されません。。
配列には入ってるみたいなんだが・・・
320:デフォルトの名無しさん
07/07/19 01:47:47
>>315
n桁ってのは上限はないのか?
321:デフォルトの名無しさん
07/07/19 01:48:52
1違いは良く見直せというのはプログラミングをやる人間にとっての常套句
322: ◆Kt53Ir50Qk
07/07/19 01:50:39
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
線形リストを用いて過去に素数とわかった数を保存し、指定された数(N)以下の素数を求めるプログラムを作成する。
Nはプログラム実行中に外部から入力できるようにする。
・素数かどうかを判定する際には線形リストに保存されている素数のみ利用する。
・引数として与えた数が、引数として与えられた素数を保存する線形リスト中の素数で割り切れるかどうかを判定する関数を作る。
・順番に小さい数から線形リストに保存してある素数で割り切れるかどうかを判断し、割り切れない場合(素数)は線形リストに加えていく。 [3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C/C++の違いがわからない
[4] 期限: はやめ
[5] その他の制限: 特になし
わ か り ま せ ん
323:デフォルトの名無しさん
07/07/19 01:53:41
>>318
うっかりしてました。
123 132 213 231 312 321
の間違いです。
>>320
基本的に上限はありませんが、あんまり数が大きいと
馬鹿になりませんので…。
大体5か6くらいまでを想定してます。
324:デフォルトの名無しさん
07/07/19 01:58:48
>>300
変な所は色々あるんだが、とりあえず、
case 3:
while(sp>0){
sp--;
printf("%c", Stack[sp]);
}
printf("\n");
break;
325:デフォルトの名無しさん
07/07/19 02:01:00
>>322
最初は線形リストになにも保存されていないと思われるが、どうする?
326: ◆Kt53Ir50Qk
07/07/19 02:05:05
たぶん、いくつかの素数を入れた素数テーブルを作っておくんだと思いますが、、、
よくわからないです。
↓授業で使った線形プログラム
URLリンク(sakuratan.ddo.jp)
327:デフォルトの名無しさん
07/07/19 02:07:59
何?
さくらアップローダーが流行ってるの?
328:300
07/07/19 02:10:22
きったないプログラムだけどなんとか動くようになりました。。。
あとは修正頑張ってみます。
ありがとうございました。
329:デフォルトの名無しさん
07/07/19 02:12:17
>>323
#include <stdio.h>
#define N 6
int nextperm(int p[], int n){
int i, j, t;
i = n - 1;
p[0] = 0;
while (p[i] >= p[i + 1]) i--;
if (i == 0) return 0;
j = n;
while (p[i] >= p[j]) j--;
t = p[i]; p[i] = p[j]; p[j] = t;
i++; j = n;
while (i < j){ t = p[i]; p[i] = p[j]; p[j] = t; i++; j--; }
return 1;
}
int main(){
int i, n, p[N + 1];
do{ scanf("%d", &n); }while(n < 1 || N < n);
for (i = 1; i <= n; i++) p[i] = i;
do{ for (i = 1; i <= n; i++) printf("%d", p[i]); putchar(' '); }while(nextperm(p,n));
return 0;
}
ぐぐって出てきたのほぼそのまんまだから動作原理はシラネ
330:デフォルトの名無しさん
07/07/19 02:23:00
>>300
がんばれ
331:デフォルトの名無しさん
07/07/19 03:01:10
自分で書いたソースを晒して質問するのって、それなりに大変だよな。
宿題丸投げして、回答があっても放置される事が多いけど。
332: ◆Kt53Ir50Qk
07/07/19 03:13:35
>326 まちがってました。授業でやったのは
URLリンク(sakuratan.ddo.jp)
でした。さっきのは自分でぐちゃぐちゃにしたやつでした。
333:306
07/07/19 07:44:56
今日、19日のうちにおねがいします
334:デフォルトの名無しさん
07/07/19 08:53:07
>>329
まさにそのまんまがあったんですね…。
ありがとうがざいます。
335:デフォルトの名無しさん
07/07/19 08:57:12
>>333
もうで照るだろ
336:デフォルトの名無しさん
07/07/19 09:57:38
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
a,b,c,d,eに1~5の整数を一つずつ入れて
a + b - c * d / e
の結果の最大になる値、最小となる値、そのときのa,b,c,d,eを求めよ。
(算数的に計算するのではなく全パターンをためすこと。)
また、結果は何通りあるかも求めよ。
[3] 環境
[3.1] OS: (/Linux/)
[3.2] コンパイラ名とバージョン: (gcc 2.95-2)
[3.3] 言語: C
[4] 期限: 2007年07月20日17:40
[5] その他の制限: 無し
337:デフォルトの名無しさん
07/07/19 11:08:25
[1] プログラミング
[2] 問題 配列 int a[12]を用意し、a[i] = I ( i=0,1,2,…,10),a[11] = a[0]+a[1]+a[2]+…[10]とせよ
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:VS2005
[3.3] 言語: C ++
[4]本日まで
問題の意味がよく分からないかもしれませんがよろしくお願いします。
338:デフォルトの名無しさん
07/07/19 11:56:02
>>336
URLリンク(kansai2channeler.hp.infoseek.co.jp)
339:デフォルトの名無しさん
07/07/19 12:12:46
>>338
ありがとうございます。
ところで、count が120になったのですが、
a + b - c * d / e
のaとbまたはcとdを入れ替えると同じになると思うので
値は5*4*3*2*1通り未満になりませんか?
よくわからないので、もうすこしがんばってみます。
340:デフォルトの名無しさん
07/07/19 12:17:01
>>339
同値になる入れ換えは考慮してない。
必要かな?
341:デフォルトの名無しさん
07/07/19 12:23:35
>>340
どちらかといえばあったほうがいいです。
342:デフォルトの名無しさん
07/07/19 12:25:21
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:ポインタの利用
英文字の単語の出題をカウントしなさい
英文字に含まれる単語数は10以下とする
ポインタ配列を使用する
char english[] = "My name is Taro.Your name is Hanako.";
実行画面
My:1
name:2
is:2
Taro:1
Your:1
Hanako:1
343:デフォルトの名無しさん
07/07/19 12:28:13
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:ユーザ関数の作成
問題1:2値の最大を求めるユーザ関数を作成しなさい
プロトタイプ宣言:int Max(int dt1,int dt2);
実行画面
数値1を入力==>10
数値2を入力==>15
大きい値:15
344:デフォルトの名無しさん
07/07/19 12:50:24
>>343
#include <stdio.h>
int Max(int dt1,int dt2);
int main(void) {
int a,b,c;
printf("数値1を入力==>");
scanf("%d",&a);
printf("数値2を入力==>");
scanf("%d",&b);
printf("大きい値:%d",Max(a,b));
return 0;
}
int Max(int dt1,int dt2) {
return dt1>dt2 ? dt1 : dt2;
}
345:デフォルトの名無しさん
07/07/19 13:04:30
>>341
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これでどうかな
346:デフォルトの名無しさん
07/07/19 13:25:20
>>345
たとえば
1 +2 -3 *4/ 5
1と2の入れ換えで結果が重複して120の半分の60通りになり
3と4の入れ換えで結果が重複して60の半分の30通りになりそうなので
あっていると思います。
ありがとうございました。
ちなみにこれは算数オリンピックの第一問です。
347:デフォルトの名無しさん
07/07/19 13:31:01
>>346
aとb、cとdの値に順序性を持たせた。
宿題ではないのか?
348:デフォルトの名無しさん
07/07/19 13:42:23
>>347
それをC言語でとかせる宿題です。
349:デフォルトの名無しさん
07/07/19 13:42:49
>>337です。
聞いてみたところどうもfor文を使うらしいのですがどこに使えばいいのか分かりません
よろしくお願いします。
350:デフォルトの名無しさん
07/07/19 13:47:18
>>337>>349
int a[12];
int i;
for(i = 0; i < 11; i++) a[i] = i;
a[11] = 0;
for(i = 0; i < 11; i++) a[11] += a[i];
351:デフォルトの名無しさん
07/07/19 13:48:00
>>337です。
たびたびすみません。
先ほどの問題でデバックの結果がa[11] = a[0]+a[1]+a[2]+…+a[10]と表示できればいいそうです。
よろしくお願いします
352:デフォルトの名無しさん
07/07/19 13:51:54
printf("a[11] = %d\n", a[11]);
353:デフォルトの名無しさん
07/07/19 13:54:06
何方か342お願いします
354:デフォルトの名無しさん
07/07/19 13:55:43
[1]単元:プログラミング
[2]問題:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
OS:リナックス
コンパイラ:cc
言語:C
[4]期限:来週の水曜日までに
よろしくお願いします.
355:デフォルトの名無しさん
07/07/19 14:06:47
[1]単元:プログラミング
[2]問題:複数人の、名前と不定個の得点を入力し、平均点が50点を超える場合のみ、
名前と平均点を出力するプログラムをつくれ。得点の最大個数は10個である。
平均点は、小数点以下2桁までとせよ。入力は3人のデータとし、得点の入力終了は負数(-1)とする
一応ココまでやりました
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
OS:windows
コンパイラ:bcc32
言語:C
[4]期限:7/20
356:デフォルトの名無しさん
07/07/19 14:06:55
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク)
演算子のオーバーロードにより、複素数a,bの絶対値の大小を与える
演算子 < を作成せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: CC
[3.3] 言語:C++
[4] 期限: 7月20日
どなたかよろしくお願いします。
357:デフォルトの名無しさん
07/07/19 14:21:04
>>356
#include <complex>
template <typename T>
bool operator<(const std::complex<T>& left, const std::complex<T>& right) {
return std::abs(left) < std::abs(right);
}
358:デフォルトの名無しさん
07/07/19 14:32:44
誰か >>306 お願いします。
359:デフォルトの名無しさん
07/07/19 14:53:49
>>385
複素数をn乗するってことでおk?
360:デフォルトの名無しさん
07/07/19 14:58:11
予言者か!
361:デフォルトの名無しさん
07/07/19 15:24:32
>>360
書いた自分でワロタ
362:デフォルトの名無しさん
07/07/19 15:39:45
>>359 おkです。
363:デフォルトの名無しさん
07/07/19 15:43:07
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:標準関数の利用
問題1:文字列を入力、英文字とそれ以外を収納する配列に振り分けしなさい
使用する標準関数:isalpha()など
実行画面
文字列入力==>A12H&jfTy8uZ3#
英字:AHjfTyuZ
その他:12&83#
問題2:文字列と削除文字列を入力し、文字列中から削除文字列を排除しなさい
使用する標準関数:strncmp(),strcpy(),strlen()など
実行画面
文字列入力(m1)==>ABCDEFAADABC
364:デフォルトの名無しさん
07/07/19 15:55:56
syntax errorってなんですか?
cygwin上でemacsを使ってCのソースの入力してコンパイルしたのですが、
syntax errorとでまして、コンパイルできません^^;
↓
syntax error before '{' token
とでます^^;
基本中の基本かもしれませんが^^;
誰かわかりますか?
365:364
07/07/19 15:59:12
失礼・・・カテ違いでした^^;
366:デフォルトの名無しさん
07/07/19 16:01:42
>>306
#include <stdio.h>
int main(void){
double a, b, prev_a, prev_b, const_a, const_b;
int i, n;
printf("a b n : "); scanf("%lf%lf%d", &a, &b, &n);
const_a = a, const_b = b;
for(i = 1, prev_a = a, prev_b = b; i < n; i++, prev_a = a, prev_b = b){
a = prev_a*const_a - prev_b*const_b;
b = prev_a*const_b + const_a*prev_b;
}
printf("%g + %gi\n", a, b);
return 0;
}
367:デフォルトの名無しさん
07/07/19 16:27:16
>>363
>>205と同じやね。>>262>>264
368:デフォルトの名無しさん
07/07/19 17:12:56
>>342
URLリンク(kansai2channeler.hp.infoseek.co.jp)
バグっているかも試練
369:368
07/07/19 17:23:40
後、ボーランドで確認してない。よろ
370:デフォルトの名無しさん
07/07/19 17:58:40
[1] 授業単元:プロA
[2] 問題文
構造体
struct coord{
float x;
float y;
}
を用い、また、coord.data(内容は以下のようなもの)を作成して、
1.2 3.4
2.1 4.5
3.2 2.1
2.0 4.9
5.3 2.8
1.5 3.2
これらの値をメンバx,yに読み込み、(例えばa.x,a.y,b.x,b.y
又はa[0].x,a[0].yなど好きな変数名を作成すればよい。
構造体はa[0],a[1]のように配列でもよい。
この場合、メンバとはa[0].xなどとして結びつく)
xとyの平均をoutput2.dataに出力するプログラムを作れ。
[3] 環境
Windows ,CC ,C++
[4] 期限: 7/19 21:00
よろしくお願いします。
371:デフォルトの名無しさん
07/07/19 18:36:25
>>355
URLリンク(kansai2channeler.hp.infoseek.co.jp)
372:デフォルトの名無しさん
07/07/19 18:46:15
どなたか>>354お願いします
373:デフォルトの名無しさん
07/07/19 19:08:19
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: BCC 5.5.1
[3.3] 言語: C
[4] 期限: できればお早めに
お手数ですが宜しくお願いいたします
374:デフォルトの名無しさん
07/07/19 19:25:43
>>354 (>>372)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
375:デフォルトの名無しさん
07/07/19 19:30:20
>>354
URLリンク(kansai2channeler.hp.infoseek.co.jp)
376:デフォルトの名無しさん
07/07/19 19:32:59
>>373
下の二つの関数を追加して
int gcd(int a, int b){ // 最大公約数を求める関数
int c;
while((c=a%b)!=0){a=b;b=c;}
return b;
}
int gcd3(int a, int b, int c){
return gcd(gcd(a, b), c);
}
if(gcd3(a, b, c)!=1) // これが成り立つ時はなにかの倍数
377:デフォルトの名無しさん
07/07/19 20:28:26
>>373
問1は、ループをxyz共に1000回ずつ回すのは無駄だから
for(x=1; x<=MAX-2; x++) {
for (y=x+1; y<=MAX-1; y++) {
for (z=y+1; z<=MAX; z++) {
みたいにすれば速くなるよ
問2はできてるんじゃないの?
378:デフォルトの名無しさん
07/07/19 20:48:32
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):実行結果と同じ内容を表示するプログラムの作成
実行結果
+
++
+++
++++
+++++
[3] 環境
[3.1] OS:Windows Vista Business
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
[3.3] 言語:C言語
[4] 期限:2007年9月3日
[5] その他の制限:①文字の出力にはprintfを使用し、プログラム中に2回のみ使用できるものとする
②アルゴリズムはwhile文の2重ループで行うこと
379:デフォルトの名無しさん
07/07/19 20:49:04
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):月(1~12)と日(1~31)をキーボードから入力し、入力された日付を表示する
プログラムの作成
実行結果 (「」内の部分はキーボードからの入力)
月を入力:「15」
月の入力は1以上12以下にしてください
月を入力:「8」
日を入力:「46」
日の入力は1以上31以下にしてください
日を入力:「25」
入力された日付は8月25日です
[3] 環境
[3.1] OS:Windows Vista Business
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
[3.3] 言語:C言語
[4] 期限:2007年9月3日
[5] その他の制限:①月の入力については1~12で範囲チェックを行い、範囲外の入力だった
場合は、エラーメッセージを表示して再入力させること
②日の入力については1~31で範囲チェックを行い、範囲外の入力だった
場合は、エラーメッセージを表示して再入力させること
380:デフォルトの名無しさん
07/07/19 20:54:54
>>378
#include <stdio.h>
int main(void)
{
int i=0, j;
while(i < 5){
j = 0;
while(j <= i){
printf("+");
j++;
}
printf("\n");
i++;
}
return(0);
}
381:デフォルトの名無しさん
07/07/19 20:57:13
>>379
終了の条件は?
382:デフォルトの名無しさん
07/07/19 21:04:44
>>377
問2はいきなり7309から始まるんですよ…
383:デフォルトの名無しさん
07/07/19 21:06:37
>>382
いや、それはそれ以前に処理されたものが画面に表示しきれていないだけでは・・・
実際には処理されているよ。
384:デフォルトの名無しさん
07/07/19 21:07:54
>>382
っ a.exe > result.txt
プロンプトのバッファを超えただけと思う
385:デフォルトの名無しさん
07/07/19 21:21:19
294です。おねがいします
386:デフォルトの名無しさん
07/07/19 21:23:49
>>381
何の終了条件ですか?
387:デフォルトの名無しさん
07/07/19 21:32:44
ああ、1周でいいのか
388:デフォルトの名無しさん
07/07/19 21:38:22
>>379
#include <stdio.h>
int main(void){
int m, d, tmp;
while(1){
printf("月を入力:");
scanf("%d", &m);
if(m<1 || m>12) fprintf(stderr, "月の入力は1以上12以下にしてください\n");
else break;
}
switch(m){
case 2:
tmp = 2;
break;
case 4:
case 6:
case 9:
case 11:
tmp = 1;
default:
tmp = 0;
}
while(1){
printf("日を入力:");
scanf("%d", &d);
if(d < 1 || d > 31-tmp) fprintf(stderr, "日の入力は1以上%d以下にしてください\n", 31-tmp);
else break;
}
printf("入力された日付は%d月%d日です\n\n", m, d);
return(0);
}
389:デフォルトの名無しさん
07/07/19 21:44:17
うわあ、switch文でbreak;書き忘れた><
390:デフォルトの名無しさん
07/07/19 22:00:18
>>375
サンクスです☆
391:デフォルトの名無しさん
07/07/19 22:09:26
>>379
#include <stdio.h>
int main(void) {
int month = 0, day = 0;
while (month<1 || 12<month) {
printf("月を入力:");
scanf("%d", &month);
if (month<1 || 12<month) printf("月の入力は1以上12以下にしてください\n");
}
while (day<1 || 31<day) {
printf("日を入力:");
scanf("%d", &day);
if (day<1 || 31<day) printf("日の入力は1以上31以下にしてください\n");
}
printf("入力された日付は%d月%d日です", month, day);
return 0;
}
392:デフォルトの名無しさん
07/07/19 22:22:33
>>294>>295
お願いします
393:デフォルトの名無しさん
07/07/19 23:01:43
>>376 >>377 >>383
ありがとうございました~!
394:体験版ありw
07/07/19 23:15:53
株式会社リアルクソエイト
URLリンク(www.realcreate.net)
WILLTY(ウィルティ)はネットワーク上や
外部媒体からウィルスやハッカーが侵入する際の
異常な電子の動きをキャッチし、コンピュータの入り口で
確実にブロックしてしまうという世界初の画期的な方法が
とられています。
たとえ、ウィルス感染したCD,FD,USBなどをインストールしても、
コンピューターがウィルス感染することはありません。
正常なデーターのみがコンピューター内に取り込まれます。
■ 電源コンセントからの情報漏洩をブロック
WILLTYは電源LANシステムを応用したデーター漏洩やハッキングをブロックします。
コンピュータ電源をコンセントに差し込んだ瞬間から機密情報は丸裸になっています。
LAN上のセキュリティーをどれだけ強固にしても、電源コンセントから
あなたの情報は筒抜けになっています
395:デフォルトの名無しさん
07/07/19 23:16:32
>>393
if ( dvsr >= trg ){
このtrgって、sqrtを取得して比較すれば
素数判定が早くできないかな。
dvsr++;
これも奇数を見るだけで良いのじゃないかな。
チェック対象件数が半減すると覆うよ。
396:デフォルトの名無しさん
07/07/19 23:17:16
↑のソフト使った人感想ちょうだいw
397:デフォルトの名無しさん
07/07/19 23:22:24
ウィルスに感染した電子ってスピンか何かが違うのか?
398:デフォルトの名無しさん
07/07/19 23:24:02
URLリンク(kansai2channeler.hp.infoseek.co.jp)
で>>261を参考にしながらPPMファイルを出力したいのですが、できません。
環境はWindows xp + cygwinです。
0 10 10 100 30 10 50 50 100 255 0 0
0 100 20 100 100 20 50 0 20 0 255 0
0 200 30 100 200 30 80 20 15 0 0 255
をCygwin上で入力しています。
何がいけないのでしょうか・・
399:デフォルトの名無しさん
07/07/19 23:24:10
>>397
違わないだろw
壮大な釣りソフトw
400:デフォルトの名無しさん
07/07/19 23:53:45
こんなソフト通用すると思ってんのかw
401:デフォルトの名無しさん
07/07/20 00:04:20
>>394
あぶねえ。
俺、“そういう試みをチャレンジしている会社がある”と信じるところだった。
402:デフォルトの名無しさん
07/07/20 00:14:35
そういうウィルスを作れたら、
量子コンピュータどころじゃない、
21世紀最大の発明となる鴨。
遺伝情報の媒体って超ひもあたりでやるのか?
エンコードやデコードどうするのかなw
403:デフォルトの名無しさん
07/07/20 00:45:57
>>294
とりあえずは問題の意味が分からないんだけど、それは置いておいて
>>294>>295に出ているソースをベースにして作らないといけないの?
コンパイルさえできないんだけど。
404:デフォルトの名無しさん
07/07/20 01:58:29
>>294>>295です
書いてあるプログラムのmainとnumber大域変数は変更しないで
intのスタックを2つ作る(大域変数)。
1つのスタックは数値をいれる。もう1つには演算子を表す数をいれます。
405:デフォルトの名無しさん
07/07/20 02:01:27
コンパイルは出来なくてもいいんです。確か1つ引っかかりますよね。
406:デフォルトの名無しさん
07/07/20 06:45:10
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 問題010
多分岐型(2)
次の説明は冬季オリンピックの開催年についての説明である。
キーボードから変数year に入力された年号について、
開催された年に第何回大会が開催されたか
画面に表示するプログラムを作成しなさい。
また開催年でない場合は、画面にその旨メッセージを出力すること。
【説明】
1924 年の第1 回大会以来、4 年に1 度開催されている。
1992 年の第16 回大会までは夏季大会と同じ年に開催されたが、
1994 年の第17 回大会からは、夏季大会の2 年後に開催されるようになった。
1940 年、1944 年は第二次世界大戦の影響で中止。
次回は2010 年、第21 回大会、カナダのバンクーバーで開催予定。
[3] 環境
[3.1] OS: Windows;
[3.2] コンパイラ名とバージョン: (VS)
[3.3] 言語: C
[4] 期限: ([2007年07月21日まで]
[5] その他の制限:
よろしく。
407:デフォルトの名無しさん
07/07/20 07:02:51
>>406
やだ
408:デフォルトの名無しさん
07/07/20 07:26:01
>>406
ほらよ、とっときな
#include <stdio.h>
int main(void){
int year;
while(1){
printf("年号は?");scanf("%d",&year);
switch(year){
case 1924:puts("第①回");break;
case 1928:puts("第②回");break;
case 1932:puts("第③回");break;
case 1936:puts("第④回");break;
case 1948:puts("第⑤回");break;
case 1952:puts("第⑥回");break;
case 1956:puts("第⑦回");break;
case 1960:puts("第⑧回");break;
case 1964:puts("第⑨回");break;
case 1968:puts("第⑩回");break;
case 1972:puts("第⑪回");break;
case 1976:puts("第⑫回");break;
case 1980:puts("第⑬回");break;
case 1984:puts("第⑭回");break;
case 1988:puts("第⑮回");break;
case 1992:puts("第⑯回");break;
case 1994:puts("第⑰回");break;
case 1998:puts("第⑱回");break;
case 2002:puts("第⑲回");break;
case 2006:puts("第⑳回");break;
default:puts("開催されなかった、あるいはどうなるか分かりません。");break;
}}return 0;
}
409:デフォルトの名無しさん
07/07/20 07:27:22
>>405
コンパイル出来ないのは、
「大域変数を変更する」以前の
「書いてあるプログラム」の問題。
410:デフォルトの名無しさん
07/07/20 11:06:04
>>354
URLリンク(kansai2channeler.hp.infoseek.co.jp)
411:タウリン2000mg配合
07/07/20 11:13:28
[1] 授業単元:計算機プログラミング
[2] 問題文:input7.txtから4×4の行列の要素を読み込み、その逆行列を出力するプログラムを作成せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:よくわかりません。
[3.3] 言語: C言語
[4] 期限: 2007/8/3 まで
URLリンク(www.fluid.cse.nagoya-u.ac.jp)
を改造して作ればいいという課題です。
抜けてる部分だけ作ればいいんですが、それでもいまいちわかりません。
どなたか親切な方がいたら教えてもらえないでしょうか。
412:デフォルトの名無しさん
07/07/20 11:42:11
>>406
URLリンク(kansai2channeler.hp.infoseek.co.jp)
413:デフォルトの名無しさん
07/07/20 11:48:58
>>412
どんなソースかと思いきやww
414:デフォルトの名無しさん
07/07/20 13:02:20
アマリニモカワイソスギル
415:デフォルトの名無しさん
07/07/20 13:05:47
>>411
nagoya-u.ac.jpって書いてあるけど、ブラクラ?
416:デフォルトの名無しさん
07/07/20 13:15:02
>>363
#include <stdio.h> #include <string.h> #include <ctype.h>
#define SIZE 500
int main()
{ char English[SIZE] = {'\0'}; char Other[SIZE] = {'\0'};
char buff[SIZE]= {'\0'}; char *temp; int i,j=0,k=0; int len;
fgets(buff,sizeof(buff),stdin); if(temp = strchr(buff, '\n'))
*temp = '\0';
for(i = 0; buff[i] != '\0'; i++){
if(isalpha(buff[i]))
English[j++] = buff[i];
else
Other[k++] = buff[i];
}
printf("English %s Other %s \n",English,Other);
printf("英文字入力\n");
fgets(buff,sizeof(buff),stdin);
if(temp = strchr(buff, '\n'))
*temp = '\0';
printf("削除文字入力\n");
fgets(Other,sizeof(Other),stdin);
if(temp = strchr(Other, '\n'))
*temp = '\0';
len = strlen(Other);
while(temp = strstr(buff,Other)){
memcpy(temp,temp+len,sizeof(buff));
}
printf("削除後 %s \n", buff);
return 0;
}
417:デフォルトの名無しさん
07/07/20 13:17:10
>>415
サンプルソースだ。問題ないと思うが。
418:デフォルトの名無しさん
07/07/20 13:36:14
[1] 授業単元:演習
[2] 問題文:自然数nを入力すると、任意のディレクトリに任意の名前でn個のフォルダを作成するプログラムを作りなさい。
なお、危険防止のためnの上限は5とする事。
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (vs)
[3.3] 言語: (C言語)
[4] 期限:今日中
419:デフォルトの名無しさん
07/07/20 13:38:38
C++の認定試験てあるの?
420:デフォルトの名無しさん
07/07/20 13:52:41
[1] 授業単元: 演習
[2] 問題文(含コード&リンク):
探索パターンと置換パターン、入力ファイル名を引数にとり、
入力ファイルの探索パターンに合致する部分をすべて置換パターンに置き換えるプログラムを作成せよ
パターンにはsedで扱える正規表現のうち、下の部分が使えるように実装せよ
. 改行をのぞく任意の1文字にマッチ
[abc…] aまたはbまたはc…のうちいずれか1文字にマッチ
d* 0個以上のd(dは文字または正規表現)にマッチ
\(str\) 文字列str(strは正規表現を含んでよい)二マッチ
\n n番目に表れた\(...\)の中の文字列にマッチ (nは1から9の整数)
\c cに^,$,.,*,[,\をおくことによりそれ自身にマッチ
.* 0個以上の改行を除く任意の文字にマッチ
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 07年7月22日
[5] その他の制限: system()等使わずに正規表現を実装すること
421:お願いします!
07/07/20 13:54:03
「2個のサイコロ振りをシミュレートするCプログラムを書け。1個目のサイコロ振りにも2個目サイコロ振りにも関数randを使い、2つの出目の和を計算する。」
この問題です!よろしくぅお願いします!
422:デフォルトの名無しさん
07/07/20 13:55:20
>>421
#include <stdlib.h>
#include <stdio.h>
int main() {
int a,b;
a = rand() % 6 + 1;
b = rand() % 6 + 1;
printf("%d", a + b);
return 0;
}
423:デフォルトの名無しさん
07/07/20 14:02:04
>>422
ありがとうございますぅ!ただ、何と何が出たか分からないから個別に表示もおながいもうしあげます
424:デフォルトの名無しさん
07/07/20 14:03:22
printf("%d + %d = %d\n", a, b, a + b);
425:デフォルトの名無しさん
07/07/20 14:04:14
>>423
ほれ
#include <stdlib.h>
#include <stdio.h>
int main() {
int a,b;
a = rand() % 6 + 1
printf("a = %d\n", a);
b = rand() % 6 + 1;
printf("b = %d\n", b);
printf("%d", a + b);
return 0;
}
426:デフォルトの名無しさん
07/07/20 14:05:19
おー!すばらしい!!!あと、半か丁か表示できますか??
427:デフォルトの名無しさん
07/07/20 14:10:53
if(a % 2 == 0) printf("aは丁"); else printf("aは半");
if(b % 2 == 0) printf("bは丁"); else printf("bは半");
428:デフォルトの名無しさん
07/07/20 14:11:47
ちがうよ、2個の合計で丁か半か判断するんだってばwww
429:デフォルトの名無しさん
07/07/20 14:12:12
>>426
そろそろ自分でやったらどうだい?
430:デフォルトの名無しさん
07/07/20 14:13:10
if((a + b) % 2 == 0) printf("丁"); else printf("半");
431:デフォルトの名無しさん
07/07/20 14:15:04
あと、掛け金もおながいします
その辺はきでんのセンスで
432:デフォルトの名無しさん
07/07/20 14:20:09
>>431
なんでいっぺにいわないんだい?
自分でやりなさい。
433:デフォルトの名無しさん
07/07/20 14:22:53
>>431
指定の口座に3本ほど振り込んでくれないか
434:デフォルトの名無しさん
07/07/20 14:23:55
お金はないので他のお礼で。。。
435:デフォルトの名無しさん
07/07/20 14:25:16
釣りだろ
436:デフォルトの名無しさん
07/07/20 14:25:25
6カ月分のガス料金を求めましょう
使用料金=基本料金+(1㎥当たりの単価×使用量)
使用量 基本料金 1㎥当たりの単価
25㎥以下 690円 127円
25㎥から500㎥以下 1170円 108円
500㎥より多い 6980円 96円
月の使用量を順番にキーボードから入力する。
使用料金は基本料金+(1㎥当たりの単価×使用量)で計算する。
各月の使用料金を算出して以下のように表示させる。
例)
1gatu 2gatu 3gatu 4gatu 5gatu 6gatu Goukei heikin
Charge 12500 25600 35410 19860 13250 2980s0 1278540 21906
437:デフォルトの名無しさん
07/07/20 14:26:15
>>434
体?でどう?
438:デフォルトの名無しさん
07/07/20 14:27:04
㎥が文字化けしているぞ?
439:デフォルトの名無しさん
07/07/20 14:31:26
int ryokin(int siyou)
{
int kihon, tanka;
if(siyou <= 25) { kihon = 690; tanka = 127; }
else if(siyou <= 500) { kihon = 1170; tanka = 108; }
else { kihon = 6980; tanka = 96; }
return kihon + siyou * tanka;
}
440:デフォルトの名無しさん
07/07/20 14:36:55
>>438 してないお(^ω^)
441:デフォルトの名無しさん
07/07/20 14:38:41
>>437
女でよければ。。
442:デフォルトの名無しさん
07/07/20 14:39:41
int i, siyou[6], charge[6];
int gokei,heikin;
gokei = 0;
for(i = 0; i < 6; i++) {
printf("%d月の使用量:", i);
scanf("%d", &siyou[i]);
charge[i] = ryokin(siyou[i]);
gokei += charge[i];
}
heikin = gokei / 6;
printf("1gatu 2gatu 3gatu 4gatu 5gatu 6gatu Goukei heikin \n");
printf("Charge");
for(i = 0; i < 6; i++) printf("%6d", charge[i]);
printf("%6d", gokei);
printf("%6d\n", heikin);
443:デフォルトの名無しさん
07/07/20 14:41:16
>>441はやっぱなし!高校生だし
444:デフォルトの名無しさん
07/07/20 14:47:10
>>443
えええええええええええええええええええええええええええええええ
ええええええええええええええええええええええええええええええ
えええええええええええええええええええええええええええええ
ええええええええええええええええええええええええええええ
えええええええええええええええええええええええええええ
ええええええええええええええええええええええええええ
えええええええええええええええええええええええええ
ええええええええええええええええええええええええ
えええええええええええええええええええええええ
ええええええええええええええええええええええ
えええええええええええええええええええええ
ええええええええええええええええええええ
えええええええええええええええええええ
ええええええええええええええええええ
えええええええええええええええええ
ええええええええええええええええ
えええええええええええええええ
ええええええええええええええ
えええええええええええええ
ええええええええええええ
えええええええええええ
ええええええええええ
えええええええええ
ええええええええ
えええええええ
ええええええ
えええええ
ええええ
えええ
ええ
え
445:デフォルトの名無しさん
07/07/20 14:50:05
>>444
for(int i = 0; i < 31; i++) {
for(int j = 0; j < 31 - i; j++) printf("え");
puts("");
}
446:デフォルトの名無しさん
07/07/20 14:50:29
>>445
実はもう書いてあったw
447:デフォルトの名無しさん
07/07/20 14:57:14
なにこの流れ
448:デフォルトの名無しさん
07/07/20 15:13:49
あと、>>418も私です
お礼はできませんが、ほんとお願いします
449:デフォルトの名無しさん
07/07/20 15:16:18
名前は指定なしで勝手にきめていいの?
450:デフォルトの名無しさん
07/07/20 15:16:57
指定しないほうがありがたいです☆
451: ◆DpMW3bRjps
07/07/20 15:26:22
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):任意の文字列を入力し、その文字列の中に任意の文字が何個入っているかを出力する
プログラムのソースコードを提出しなさい。
実行例)
文字列を入力してください
yamamotoyama
さがす文字を入力してください
y
入力された文字列の中に指定された文字は2個あります
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 2007年07月23日17時まで
[5] その他の制限:今回初めて文字配列というものを習いました!春から初めた初心者です
よろしくお願いします!!
452:デフォルトの名無しさん
07/07/20 15:41:33
>>451
#include <stdio.h>
#define N 128
int main(void)
{
char target, str[N];
int i, count=0;
printf("文字列を入力してください\n> ");
gets(str);
printf("さがす文字を入力してください\n> ");
gets(&target);
for(i=0 ; i<N ; i++){
if( str[i] == target ) count++;
}
printf("\n入力された文字列の中に指定された文字は%d個あります\n", count);
return(0);
}
453:デフォルトの名無しさん
07/07/20 16:02:07
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: (Windows/Linux/等々) 自宅はWindows、学内はLinux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) 自宅:Microsoft Framework SDK 学内:gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7月21日まで(おそらく日付変わるまでなら大丈夫)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
基本的に情報系の高校生でも組めるようなプログラムにしていただけると助かります。
多少複雑になってもいいので、できるだけ基本的な命令(ifとかfor)でお願いします
454: ◆DpMW3bRjps
07/07/20 16:25:21
>>451さんへ
ありがとうございます!!
455: ◆UoNQqijD4I
07/07/20 17:08:04
>452ですが。今コンパイルしたら下のようにエラーがでました(><)
/tmp/cc2eSWqP.o(.text+0x38): In function `main':
: warning: the `gets' function is dangerous and should not be used.
456:デフォルトの名無しさん
07/07/20 17:13:46
内容:
[1] 授業単元:C++
[2] 問題文 文字列の長さを計算する関数を作成せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C++
[4] 期限: (20日18:00まで]
[5] その他の制限: 以下の内容に手を加えて欲しいのですが・・・
#include <stdio.h>
#define MAX 100
string_length(char str[MAX]);
int main(void){
int i,string_len;
char string[MAX];
printf("入力:");
scanf("%s",string);
printf("文字列の大きさは%dです。",string_length(string));
return(0);
}
int string_legth(char str[MAX]){
int i;
int str_len;
for(i=0;str[i]!='\0';i++);{
}
str_len=i;
return(str_len);
}
Error: 外部シンボル '_string_length' が未解決
と、出て四苦八苦してるのでよろしくお願いします
457:デフォルトの名無しさん
07/07/20 17:15:06
>>455
ワーニングだ
fgetsに帰ればおk
458:デフォルトの名無しさん
07/07/20 17:16:07
> char target, str[N];
> gets(&target);
コレは幾らなんでもマズい
459:デフォルトの名無しさん
07/07/20 17:19:11
>>456
- string_length(char str[MAX]);
+ int string_length(char str[MAX]);
- int string_legth(char str[MAX]){
+ int string_length(char str[MAX]){
460:456
07/07/20 17:22:01
>>459さん
ありがとうございます。俺が間抜けでした!!
レポート出してきます!!
461:デフォルトの名無しさん
07/07/20 18:32:36
>>418
URLリンク(kansai2channeler.hp.infoseek.co.jp)
チェックは甘いが。
462:電通女 ◆v1Uy5WkQ7k
07/07/20 19:41:06
試験勉強中です…付き合ってくださる師匠様募集中…
[1] 授業単元:関数を自作する
[2] 問題文:n!を計算するプログラムを作る
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:???
[3.3] 言語:C++ …なんですけど、先生はいつもC言語と混ざっている気がする。
#include <stdio.h>
int kaijo(int n)
{
int ans,i;
ans=i;
for(i=1;i<=n;i++) ans*=i;
return ans;
}
int main(void)
{
int n,k;
printf("n="); scanf("&d",&n);
k=kaijo(n);
printf("%d!=%d\n",n,k);
return 1;
}
とやってみたら、
n=5
10494432!=0
となってしまって…。
463:デフォルトの名無しさん
07/07/20 19:44:44
scanf("&d",&n);をscanf("%d",&n);に変えると幸せになれる
464:デフォルトの名無しさん
07/07/20 19:47:59
kaijo()もおかしいから、それだけじゃ幸せにはなれない
465:デフォルトの名無しさん
07/07/20 19:52:57
順を追って考えろ
int ans, i;
このときのansの値とiの値は特に決められていない
だからans = i;
としたところで何も意味がない
ans = 定数にしてやれ
466:電通女 ◆v1Uy5WkQ7k
07/07/20 19:53:09
>>463
それだけで幸せになれました。ありがとうございます。
またわからないとこが出てきたら来ます。
467:デフォルトの名無しさん
07/07/20 19:55:12
これで電通かよ・・・
大阪電気通信大学の間違いじゃないのか・・・
468:デフォルトの名無しさん
07/07/20 19:58:03
>>462
一緒に幸せになろう
469:電通女 ◆v1Uy5WkQ7k
07/07/20 19:59:05
いや、私は電気通信大学じゃないですよw
電気通信大学意以外でも電通って訳すところ、以外とたくさんあるようで。
470:デフォルトの名無しさん
07/07/20 20:03:29
[1] 授業単元: 情報演習基礎
[2] 問題文(含コード&リンク):
・ 区間[ a, b ]において連続なる関数f ( x) について,定積分の計算を行う。
・適用する式は,シンプソンの公式f ( x)=1/(1+x2)とする。
・a=0, b=100, e=0.0000001の場合の積分値とnの値を表示する
・各変数(nを除く)の型はdoubleとする
[3] 環境
[3.1] OS: WinXP
[3.2] コンパイラ名とバージョン: visualstudio2005
[3.3] 言語:C++
[4] 期限: 2007 7/22
[5] その他の制限:標準ライブラリは禁止
よろしくおねがいします。
471:デフォルトの名無しさん
07/07/20 20:05:12
>>470
printfも使っちゃだめなのか?w
472:電通女 ◆v1Uy5WkQ7k
07/07/20 20:08:25
#include <stdio.h>
int add(int a,int b)
{
int c=a+b;
a=100;b=200;
return c;
}
int main(void)
{
int a,b,c;
a=1;b=2;c=add(a,b);
printf("%d+%d=%d\n",a,b,c);
return 1;
}
これの実行結果が1+2=3になるんですけど、最初の方の100も200も消えちゃってるってことですか?
473:デフォルトの名無しさん
07/07/20 20:12:04
>>472
関数の中で宣言した変数は関数を抜けると消えてなくなるよ?
474:デフォルトの名無しさん
07/07/20 20:17:42
ここは宿題スレであって質問スレではないから
質問をしたいなら質問スレに行け。
475:電通女 ◆v1Uy5WkQ7k
07/07/20 20:23:41
おっと、すみません。
初心者歓迎スレに移行しまする。
476:デフォルトの名無しさん
07/07/20 20:23:42
>>453
URLリンク(kansai2channeler.hp.infoseek.co.jp)
477: ◆UoNQqijD4I
07/07/20 20:27:13
>>457さん、fgetsに変えたのにまだエラーがでます泣
478: ◆UoNQqijD4I
07/07/20 20:30:25
>477ですが、ちなみに今度はこんなエラーです
tin.c: 関数 `main' 内:
tin.c:12: error: too few arguments to function `fgets'
tin.c:14: error: too few arguments to function `fgets'
tin.c:16: error: `gcc' undeclared (first use in this function)
tin.c:16: error: (Each undeclared identifier is reported only once
tin.c:16: error: for each function it appears in.)
tin.c:16: error: 文法エラー before "for"
tin.c:16: error: 文法エラー before ')' token
tin.c: トップレベル:
tin.c:20: error: 文法エラー before string constant
tin.c:20: 警告: conflicting types for built-in function `printf'
tin.c:20: 警告: data definition has no type or storage class
479:デフォルトの名無しさん
07/07/20 20:33:22
>>471
URLリンク(www.geocities.jp)
こういうやつのつもりで言ったんですが、違うんですか?
課題が出るときに標準ライブラリ禁止といわれただけなので、よくわからないです
480:デフォルトの名無しさん
07/07/20 20:35:13
>>478
いやゴメン、使い方はオンラインマニュアルなりで確認しようね
とりあえず
fgets(buf, sizeof(buf), stdin);
にすればおk
あと>>458
481:480
07/07/20 20:35:50
bufじゃなかった、strだった
482:デフォルトの名無しさん
07/07/20 20:49:02
finを思い出した。
483:電通女 ◆v1Uy5WkQ7k
07/07/20 20:57:35
スイマセンこれは宿題なんでこっちで教えてください。
1+2+3+…+nをつくるんですが、
#include <stdio.h>
int sum(int n)
{
int ans,i;
ans=i;
for(i=0;i<=n;i++) ans+=i;
return ans;
}
int main(void)
{
int n,s;
printf("n="); scanf("%d",&n);
s=sum(n);
printf("1から%dまでの和は%dです。\n",n,s);
return 1;
}
こうしたら実行結果が
n=5
1から5までの和は16です。
となってしまったんですが、どこで1増えてしまってるんでしょうか?
484:デフォルトの名無しさん
07/07/20 20:59:16
>>483
よく見てないけど、sum()の中の
ans=i;
485:デフォルトの名無しさん
07/07/20 20:59:42
ans=i;をans=0;に変えると幸せになれる
486:デフォルトの名無しさん
07/07/20 20:59:44
>>483
>ans=i;
何を代入してるんだ。
487:電通女 ◆v1Uy5WkQ7k
07/07/20 21:00:39
ああ!
ans=0;
ですね!ありがとうございました!
488:デフォルトの名無しさん
07/07/20 21:11:04
上に書いてあったのに読んでないんだな
489:デフォルトの名無しさん
07/07/20 21:19:48
宿題を人に投げる人間なんてそんなもん。
490:デフォルトの名無しさん
07/07/20 21:20:35
ans=iはans=1の写し間違いだとesp
491:電通女 ◆v1Uy5WkQ7k
07/07/20 21:38:53
おお、なるほど。
492:デフォルトの名無しさん
07/07/20 21:44:31
コピペに移し間違いなんt
493:デフォルトの名無しさん
07/07/20 22:48:16
>>479
C言語にprintf関数やputs関数など、多数の関数群(標準ライブラリ関数)があるように
よく読んだか?
494:デフォルトの名無しさん
07/07/20 22:49:58
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
次のようにプログラムを作成せよ。以下のプログラムのmainとnumber大域変数は変更しないで、
intのスタックを2つ作る(大域変数)。1つのスタックは数値をいれる。もう1つには演算子を表す数をいれる
#include<stdio.h>
#include<ctype.h>
char *p;char c[100];
int expression(void);
int term(void);
int number(void);
main(){
int ans;
while(1){
printf("Enter expression : ");
fgets(c,90,stdin);
p=&c;
if(*p == '\n')
{break;}
ans=expression();
printf("Answer:%d\n" , ans);
}
}
495:デフォルトの名無しさん
07/07/20 22:50:48
int expression(){
int ans;
ans = term();
while(1){
if(*p == '+'){
*p++;
ans = ans + term();
}
else if(*p == '-'){
*p++;
ans = ans - term();
}
else
break;
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2007年07月21日
[5] その他の制限:特になし
496:デフォルトの名無しさん
07/07/20 22:55:05
>>494
翻訳ソフトにかけた日本語みたいだな。さっぱりわからん。
497:デフォルトの名無しさん
07/07/20 22:56:27
>>494
こんな問題出す糞教官は死んだ方がいいな
498:デフォルトの名無しさん
07/07/20 22:58:10
>>493
読み飛ばして勘違いしていました
すみません
>>470は標準ライブラリではなく
C++標準ライブラリです
499:デフォルトの名無しさん
07/07/20 23:01:05
>>494
問題文は?
500:デフォルトの名無しさん
07/07/20 23:02:02
>>498
std::coutとかも標準ライブラリじゃねぇの?
501:デフォルトの名無しさん
07/07/20 23:23:13
必要なものはアセンブラで組めと
502:デフォルトの名無しさん
07/07/20 23:24:09
>>494です
書いたプログラムのmainとnumber大域変数は変更しないで、
intが2つのに変えます。1つにはスタックは数値をいれて、もう1つには演算子を表す数をいれます。
それで、+-*/を出来るようにします。
例えば
+の時は0
-の時は1
*の時は2
/の時は3 を入れるそうです。
503:デフォルトの名無しさん
07/07/20 23:24:54
日本語でおk
504:デフォルトの名無しさん
07/07/20 23:29:52
>>1に
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ってあるから標準ライブラリ使うなって言うトチ狂った事が多発するんじゃね?
ここで
[5] その他の制限: (どこまで習っているか、ある特定の標準ライブラリ関数は使ってはいけない等々)
って書いとけばちょっとはマシになるのでは?
505:デフォルトの名無しさん
07/07/20 23:30:58
別にどうでも良い。
スルーするなり、非標準の関数を用いるなり、好きにすれば良いじゃん。
506:デフォルトの名無しさん
07/07/20 23:31:08
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 7/23
[5] その他の制限: 特になし
よろしくお願いします
507:デフォルトの名無しさん
07/07/20 23:34:06
[5] その他の制限:(#include<stdio.h>は使ってはいけない等々)
[6] どこまで習っているか (for文を習いました等々)
もっと具体的に、そして分けたほうがいいんじゃないか?
508:デフォルトの名無しさん
07/07/20 23:39:25
>>494
括弧は使うの?
509:デフォルトの名無しさん
07/07/20 23:41:46
>>507
んなコマいこと言ってたらキリが無い
510:デフォルトの名無しさん
07/07/20 23:44:49
>>508
括弧はどこの括弧ですか?大域変数なら、その大域変数を用いて
プログラムを作成するみたいです
511:デフォルトの名無しさん
07/07/20 23:45:05
>>506
再帰
int fib(int n) {
if (n == 0) return 0;
else if (n == 1) return 1;
else return fib(n-1) + fib(n-2);
}
非再帰
int fib(int n) {
int a = 0;
int b = 1;
while (n > 0) {
int t = a+b;
a = b;
b = t;
n = n-1;
}
return a;
}
512:508
07/07/20 23:48:54
>>494, 510
入力する式で括弧を使うかってこと
513:デフォルトの名無しさん
07/07/20 23:52:35
>>506
そのフィボナッチ数列あってる?
初項と第2項は共に1じゃなかったっけ?
514:デフォルトの名無しさん
07/07/20 23:55:37
>>513
fib(1)とfib(2)を1にしたいんじゃないかな
そうすっと、fib(0)を0にしてfib(1)を1にするとちょうどよくなる
515:デフォルトの名無しさん
07/07/21 00:03:37
>>512
括弧は使っても使わなくても大丈夫です。
とにかく、問題文の内容を使い動けばいいみたいです
516:デフォルトの名無しさん
07/07/21 00:04:58
>>506
#include <stdio.h>
int fib1(int n) { //再帰
if (n == 0) return 0;
else if (n == 1) return 1;
else return fib1(n-1) + fib1(n-2);
}
int fib2(int n) { //非再帰
int a = 0;
int b = 1;
while (n > 0) {
int t = a+b;
a = b;
b = t;
n = n-1;
}
return a;
}
int main(void) {
int n[] = {10, 20, 30, 40, 45};
int i;
for (i=0;i<5;i++) printf("%d ", fib1(n[i]));
putchar('\n');
for (i=0;i<5;i++) printf("%d ", fib2(n[i]));
putchar('\n');
return 0;
}
517:デフォルトの名無しさん
07/07/21 00:20:07
>>515
>以下のプログラムのmainとnumber大域変数
mainとnumberは大域変数なのか?
>とにかく、問題文の内容を使い動けばいいみたいです
前スレで回答があったんだがな。気がつかなかった?
518:デフォルトの名無しさん
07/07/21 00:51:20
>>511 >>516
ありがとうございました
参考にさせてもらいます
519:デフォルトの名無しさん
07/07/21 02:36:41
3目並べのプログラムです。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
何度も対戦できるようにするために列の判定の配列を初期化するようにしたらコンパイルエラーが出るようになってしまいました。
頭の中がぐちゃぐちゃになってきたので、アドバイス等いただければと思います。
正常にプログラムを実行したとき、先攻or後攻を決めることになりますが
また実装はしていませんのでお飾り状態です。
520:デフォルトの名無しさん
07/07/21 02:39:33
>>517
以下のプログラムのmainとnumber大域変数は変更しないで、
1つのスタックは数値ともう1つには演算子を表す数を大域変数にすればいいと
思います
521:デフォルトの名無しさん
07/07/21 02:50:35
>>520
mainは大域変数なのか?
522:デフォルトの名無しさん
07/07/21 02:58:09
>>519
酔っぱらっているので、ロジックはチェックできないがw
まず、変数と関数に同じcheckを割り当てることを止めろ。
配列={0}とできるのは、配列変数の宣言をする時。
それ以外の箇所で初期化したいなら、
ループで各要素に0を代入するか、
>memset(area,sizeof(area),0);
とかするといいぞ。
523:デフォルトの名無しさん
07/07/21 03:18:49
>>520
宿題の回答を依頼したいなら、
使う用語は理解してからにしてくれ。
大域をpublicと言う意味で使うにしても、
mainやnumberは変数ではないよ。
スタックと言う言葉の意味は分かっているのか?
依頼したい内容が、そもそも通じてないから、
回答が無いのじゃないかな?