ぼるじょあがC/C++の ..
273:デフォルトの名無しさん
07/07/03 03:25:14
[1] 授業単元:オペレーティングシステム
[2] 問題文(含コード&リンク):
宿題11.プログラム
step1: a = x + y;
step2: b = z + 1;
step3: c = a ? b;
step4: w = c + 1;
に関し、parallel.c(parallel.txt をダウンロード&参照)を完
成させて、step1とstep2を並列実行させるプログラムを作成せよ。
但し、x,y,zはプロンプトにしたがって入力するとする。
正しく動作したか?結果を考察せよ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: できれば早くお願いします
[5] その他の制限:丸投げですがよろしくお願いします
授業中に教授が
「これは正しく動作しないんだけど、その理由を考察してね」
とか言っていました
できればその理由もお願いします
274:デフォルトの名無しさん
07/07/03 04:27:25
>>268
URLリンク(kansai2channeler.hp.infoseek.co.jp)
275:268
07/07/03 08:26:37
>>274
素早い解答、ありがとうございました。
有難く、活用させて頂きます。
276:デフォルトの名無しさん
07/07/03 08:35:27
>>265
丸写しはよくないよ。帳尻あわせぐらいは自分でしよう。
277:デフォルトの名無しさん
07/07/03 08:46:47
そうだ、丸出しは良くない。尻くらい隠して前は丸出しで良いぞ
278:273
07/07/03 08:58:34
問題が少し間違っていました
【誤】step3: c = a ? b;
【正】step3: c = a - b;
よろしくお願いします
279:デフォルトの名無しさん
07/07/03 11:20:01
>>273
それは本当に「並列実行」だと教授が言ったのか?
いやはや……
やること自体はあまり難しくないだろ。
/* create 2nd child... */
のコメントの後にstep2に相当するコードを書いて、
/* on the parent... */
のコメントの後に(授業で教わっているであろう)子プロセスの終了待ちコードを書けばいい。
その後でstep3とstep4を書くことになるわけだが、子プロセスからはstep1, step2の結果を受け取ってないので
正しい計算結果は得られない。それはこの書き方なら当然なのだが、「正しく動作しない」と言いたいのだろう。
280:デフォルトの名無しさん
07/07/03 15:13:52
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
5 名の体重をキーボードから読み込んで,5 名の平均値以上の
値を持つ人の番号と体重を表示するプログラムを作成しなさ
い.
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 7月5日
実行結果
1 番目の体重= 60.5
2 番目の体重= 57.3
3 番目の体重= 68.1
4 番目の体重= 52.4
5 番目の体重= 65.2
----------------
平均値: 60.7kg
3 番目: 68.1kg
5 番目: 65.2kg
よろしくお願いします
281:デフォルトの名無しさん
07/07/03 15:15:31
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
5 名の体重をキーボードから読み込んで,それらの値を小さい
順に表示するプログラムを作成しなさい.
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 7月5日
(実行結果例)
1 番目の体重= 60.5
2 番目の体重= 57.3
3 番目の体重= 68.1
4 番目の体重= 52.4
5 番目の体重= 65.2
----------------
(1): 52.4kg
(2): 57.3kg
(3): 60.5kg
(4): 65.2kg
(5): 68.1kg
よろしくお願いします
282:デフォルトの名無しさん
07/07/03 15:16:56
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
5 名の体重をキーボードから読み込んで,値の小さい順に,何
番目の人かと,その体重を表示するプログラムを作成しなさ
い.なお,同じ値があれば,番号の小さい方を先に表示する.
(ヒント:番号を保存する配列を別途用意して,体重データを入れ替え
る時に番号も入れ替える)
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 7月5日
(実行結果例)
1 番目の体重= 60.5
2 番目の体重= 57.3
3 番目の体重= 68.1
4 番目の体重= 52.4
5 番目の体重= 65.2
----------------
(1) 3 番目: 52.4kg
(2) 1 番目: 57.3kg
(3) 0 番目: 60.5kg
(4) 4 番目: 65.2kg
(5) 2 番目: 68.1kg
よろしくお願いします
283:デフォルトの名無しさん
07/07/03 15:17:46
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
三角形の「底辺の長さ」と「高さ」を仮引数として,三角形
の面積(底辺の長さ×高さ÷2)を返却値とする関数triangle
を定義しなさい.この関数triangle を用いてキーボートから
読み込んだ底辺の長さ,高さの三角形の面積を表示するプロ
グラムを作成しなさい.
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 7月5日
(実行結果例)
三角形の面積計算
底辺の長さ:10.8
高さ:8.6
----------------
面積: 46.44
よろしくお願いします
284:デフォルトの名無しさん
07/07/03 15:18:30
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
3つの整数tanka,kosu,pay を仮引数として,
pay − tanka×kosu
の値を返す関数otsuri を定義しなさい.この関数otsuri を用
いて,キーボートから読み込んだ単価,購入個数,支払金額
に対して,おつり(=支払金額 − 単価×個数)を表示するプ
ログラムを作成しなさい.
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 7月5日
(実行結果例)
単価:129
購入個数:17
支払金額:5000
-----------------
おつり:2807 円
よろしくお願いします
285:デフォルトの名無しさん
07/07/03 15:24:29
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
2次方程式 ax*x+bx+c=0
の係数a,b,cを与え、方程式の解を求めて出力せよ(関数は使わなくてよい)
係数の値によって3つの場合分けをする
zの平方根yの計算はy=sqrt(z)で計算する。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:visual studio2005
[3.3] 言語: C++
[4] 期限: 無期限
[5] その他の制限:特になし。
ネットで2次方程式を探しましたが、よくわからないので上の問題の条件で回答いただけると幸いです。
お願いいたします。
286:デフォルトの名無しさん
07/07/03 15:40:18
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
要素数がno であるint 型配列data の値の合計を返す関数
CalcSum を定義しなさい.この関数CalcSum を用いて,キ
ーボードから読込まれた5つの得点の合計得点を表示するプ
ログラムを作成しなさい.
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 7月5日
(実行結果例)
1 番目の得点= 59
2 番目の得点= 68
3 番目の得点= 75
4 番目の得点= 51
5 番目の得点= 64
----------------
合計は317 点
よろしくお願いします
287:デフォルトの名無しさん
07/07/03 15:41:26
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
要素数がnum であるdouble 型の配列xv の全要素に,値c
を代入する関数SetValue を定義しなさい(関数SetValue は
値を返さないvoid 型).この関数SetValue を用いて,要素数
10 のdouble 型配列buf_A とbuf_B の全要素を,それぞれキ
ーボードから読込んだ値に設定するプログラムを作成しなさ
い.(設定後のbufA とbufB の全要素を画面に表示する)
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 7月5日
(実行結果例)
bufA に設定する値= 1.23
bufB に設定する値= 3.45
-------------------
bufA[0]=1.23 bufB[0]=3.45
bufA[1]=1.23 bufB[1]=3.45
:
bufA[9]=1.23 bufB[9]=3.45
よろしくお願いします
288:デフォルトの名無しさん
07/07/03 17:30:40
[1] 授業単元: C言語入門
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.3] 言語: C言語
[4] 期限:7月4日
[5] その他の制限: 多次元配列について習ってます
よろしくお願いします
289:デフォルトの名無しさん
07/07/03 17:58:19
何この質問ラッシュ。
290:デフォルトの名無しさん
07/07/03 18:36:47
教授「あー!俺の考えた課題をこいつらに解かれてたまるか!
ダミーで釣って、隠してやる!!!お前らはこっちでも解いておけ!
わっははは!」
に一票
291: ◆QQoa7tAmuU
07/07/03 18:42:07
整数nを入力し、2からnの範囲にある素数およびその個数を求めるプログラム
なんですが
#include <stdio.h>
int main(void) {
int i , j, n, cnt, flg;
printf("2以上の整数を入力してください>");
scanf("%d",&n);
if(n<2) return 1;
printf("2");
for(i=3,cnt=1; i<=n; i+=2){
for(j=3,flg=1; j*j<=i; j+=2){
if(i%j==0) {flg=0; break;}
}
if(flg) {
printf("%d",i);
cnt++;
if(cnt%10==9) printf("\n");
}
}
printf("\n2から%dまでには%d個の素数が含まれている\n",n,cnt);
return 0;
}
これだと実行結果が
「2以上の整数を入力してください>5
235
2から5までには3個の素数が含まれている」
と235が余計にでてしまうのですが、どうしたらいいでしょうか?
教えてください!お願いしますm()m
292: ◆DpMW3bRjps
07/07/03 20:13:30
>>291です
できました!!
293:デフォルトの名無しさん
07/07/04 00:32:23
みんながC言語やろうとしたきっかけを話してほしいなぁ。
294:デフォルトの名無しさん
07/07/04 05:04:06
病気療養で求職中に、少しでも再就職に向けて何か技術を習得したいと思った。
今となっては、プログラマ以外の何か資格の勉強してれば良かった。
295:デフォルトの名無しさん
07/07/04 10:08:08
[1] 授業単元:C言語実習課題
[2] 問題文(含コード&リンク):横棒グラフ
・10人分の氏名と売上台数を入力して、順位をつけて、
順位の昇順(売上1番から)売上台数を横棒グラフにして表示する。
・星印は、5台で1個とする。5に満たないものはなし。
(たとえば、23台なら星4つ)
・250台以上は、全て星50個とする。
・売り上げが同じなら氏名の昇順とする。文字列関数(strcmp)を用いる。
・氏名は、15文字以内とする。
[3] 環境
[3.1] OS: WindowsVista
[3.2] コンパイラ名とバージョン: Visual Studio 2006
[3.3] 言語: C++
[4] 期限: 7月20日
[5] その他の制限:配列を使用
296:デフォルトの名無しさん
07/07/04 14:57:09
>>280
#include<stdio.h>
#define N 5
int main(void)
{
int i;
double weight[N];
double sum, average;
sum=0;
for(i=0;i<N;i++){
printf("%d 番目の体重= ",i+1);
scanf("%lf",&weight[i]);
sum+=weight[i];
}
average = sum/N;
printf("平均値: %.1fkg\n",average);
for(i=0;i<N;i++){
if(weight[i]>average){
printf("%d 番目: %.1fkg\n",i+1,weight[i]);
}
}
return 0;
}
297:デフォルトの名無しさん
07/07/04 15:08:38
>>296の訂正
×if(weight[i]>average){
○if(weight[i]>=average){
>>281
#include<stdio.h>
#define N 5
int main(void)
{
int i,j,min;
double weight[N];
for(i=0;i<N;i++){
printf("%d 番目の体重= ",i+1);
scanf("%lf",&weight[i]);
}
printf("---------------- \n");
for(i=0;i<N;i++){
min = 0;
for(j=0;j<N;j++){
if(weight[min] > weight[j]){
min =j;
}
}
printf("(%d): %.1fkg \n",i+1,weight[min]);
weight[min]=100e3;
}
return 0;
}
298:デフォルトの名無しさん
07/07/04 15:24:56
>>282
#include<stdio.h>
#define N 5
int main(void)
{
int i,j,min;
double weight[N];
for(i=0;i<N;i++){
printf("%d 番目の体重= ",i+1);
scanf("%lf",&weight[i]);
}
printf("---------------- \n");
for(i=0;i<N;i++){
min = 0;
for(j=0;j<N;j++){
if(weight[min] > weight[j]){
min =j;
}
}
printf("(%d) %d 番目: %.1fkg \n", i+1, min, weight[min]);
weight[min]=100e3;
}
return 0;
}
299:かま
07/07/04 15:38:56
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):このプログラムを書き換え、ファイル名をコマンドラインの引数から指定できるようにしてください。
#include<stdio.h>
#include<string.h>
main(){
char c[3];
char s1[]="abcdefghijklmnopqrstuvwxyz";
char s2[100];
s2[0]='\0';
printf("s1 initial value:\"%s\"\n",s1);
printf("s2 initial value:\"%s\"\n",s2);
if (strcmp(s1,s2)==0){printf("s1==s2\n");}
else {printf("s1!=s2\n");}
printf("Push ENTER to procceed.");
fgets(c,2,stdin);
strcpy(s2,s1);
printf("s1 current value:\"%s\"\n",s1);
printf("s2 current value:\"%s\"\n",s2);
if (strcmp(s1,s2)==0){printf("s1==s2\n");}
else {printf("s1!=s2\n");}
}
[3] 環境
[3.1] OS: Windows/
[3.2] コンパイラ名とバージョン: gcc 3.4 VC 6.0
[3.3] 言語: C
[4] 期限: 7月5日まで
[5] その他の制限: よろしくお願いします。
300:デフォルトの名無しさん
07/07/04 15:54:12
>>283
double triangle(double b, double h);
int main(void)
{
double b, h, a;
printf("三角形の面積計算 \n");
printf("底辺の長さ:");
scanf("%lf", &b);
printf("高さ:");
scanf("%lf",&h);
printf("---------------- \n");
a = triangle(b, h);
printf("面積:%.2f\n",a);
return 0;
}
double triangle(double b, double h)
{
return b*h/2;
}
301:デフォルトの名無しさん
07/07/04 15:59:25
>>284
#include<stdio.h>
int otsuri(int tanka, int kosu, int pay);
int main(void)
{
int t, k, p, o;
printf("単価:");
scanf("%d", &t);
printf("購入個数:");
scanf("%d", &k);
printf("支払金額:");
scanf("%d", &p);
printf("----------------- \n");
o=otsuri(t, k, p);
printf("おつり:%d\n",o);
return 0;
}
int otsuri(int tanka, int kosu, int pay)
{
return pay - tanka*kosu;
}
302:デフォルトの名無しさん
07/07/04 16:14:25
>>285
URLリンク(kansai2channeler.hp.infoseek.co.jp)
303:デフォルトの名無しさん
07/07/04 16:15:45
>>286
#include<stdio.h>
#define N 5
int CalcSum(int data[], int no);
int main(void)
{
int data[N],i;
for(i=0;i<N;i++){
printf("%d 番目の得点= ",i+1); scanf("%d", &data[i]);
}
printf("---------------- \n");
printf("合計は%d 点", CalcSum(data, N));
return 0;
}
int CalcSum(int data[], int no)
{
int sum=0,i;
for(i=0;i<no;i++)
sum = sum + data[i];
return sum;
}
304:デフォルトの名無しさん
07/07/04 16:28:46
>>287
#include<stdio.h>
#define N 10
void SetValue(int num, double xv[], double c);
int main(void)
{
int i;
double v,bufA[N], bufB[N];
printf("bufA に設定する値= "); scanf("%lf",&v);
SetValue(N, bufA, v);
printf("bufB に設定する値= "); scanf("%lf",&v);
SetValue(N, bufB, v);
for(i=0;i<N;i++)
printf("bufA[%d]=%.2f bufB[%d]=%.2f\n",i,bufA[i],i,bufB[i]);
return 0;
}
void SetValue(int num, double xv[], double c)
{
int i;
for(i<0;i<num;i++)
xv[i] = c;
}
305:デフォルトの名無しさん
07/07/04 17:35:34
>>288
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
306:デフォルトの名無しさん
07/07/04 19:10:40
>>293
きっかけなんて無かった。ただ何となくやり始めたらは面白くって
今では宿題スレに居着いてる。
>>288
もしかして教科書に柴田望洋著『新版明解C言語入門編』を使ってないか?
307:305
07/07/04 22:21:27
>>305
ありがとうございます
>>306
その教科書使ってますよ
何でわかったんですか!?
308:306
07/07/04 22:48:16
>>307
return文の書き方が独特だから、return (0);と書いている教科書は俺が知る限り
その教科書しかない。
309:デフォルトの名無しさん
07/07/04 22:50:54
return (0);って・・・随分ぶっ飛んだ教本だな
310:デフォルトの名無しさん
07/07/05 03:25:12
問題の無い点を自分スタイルで批判する奴は痛い・・・何も問題ないぞ?
んじゃ、今後は return (数式);スタイルもタブーにしてくれよw
311:デフォルトの名無しさん
07/07/05 09:00:12
>>299 = >>310
312:デフォルトの名無しさん
07/07/05 09:30:01
>>311
イコールじゃねーぞ?妄想する前にちゃんと return (0); の問題点を指摘しろよ。
本当にそれが問題という問題があるなり、不適切と言えるんであれば
当然それなりの説明は出来るだろ。自分スタイルがイカしているだの
自分スタイルを使ってない奴はとか独裁的な考えをすると
自民党のように干されて支持されなくなりますよ?
313:デフォルトの名無しさん
07/07/05 09:36:33
自民党と同等程度に支持されていれば充分だと思うが。
(一部の例外を除いて)余計な括弧はつけないという方針では納得しないんだろうなぁ。
314:デフォルトの名無しさん
07/07/05 09:47:24
>>313
buttheads
315: ◆DpMW3bRjps
07/07/06 16:01:37
先週お世話になったものですが、ぼるじょあさんにやっていたただいた
課題の成績の評価が見事にSでした!!
ほんとに感謝してます(^^)
316:sarucyann
07/07/06 17:14:27
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 次を元にして、足し算などの式を入力すると計算結果を表示するプログラムを作ることを考える。たとえば式1+2ENTERを入力すると結果の3が表示されるようにプログラムを作り直してください、エラー処理は無視してよい。
他の演算ができるようになっているとさらに高く評価する。
#include<stdio.h>
#include<ctype.h>
main(){
char c[10];
char *p;
int i=0;
printf("Enter a number:");
fgets(c,6,stdin);
p=&c;
while(isdigit(*p)){
i=i*10+(*p++)-48;
}
printf("You have entered: %d\n",i);
}
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 7月8日
よろしくお願いします
317:デフォルトの名無しさん
07/07/06 18:45:56
問題文[1] 授業単元:C言語
[2] 問題文: :入力した人の年齢の合計と平均を出力させるプログラムを作成して下さい。
※入力時に累積の人数を表示 ※年齢入力時に数字属性と範囲のチェックを行う※nullは不許可とする
※0 〜 9 の文字のみで、かつ 1 〜 99 の範囲のみを許可する※年齢の平均は小数点第二位まで出力する
※名前に空が入力された場合に年齢の合計と平均を出力してプログラムを終了する
−実行結果−
1人目の名前:human1
1人目の年齢:
入力エラー(年齢を入力してください)
1人目の年齢:30
2人目の名前:human2
2人目の年齢:abc
入力エラー(年齢は数字のみで入力してください)
2人目の年齢:20
3人目の名前:human3
3人目の年齢:0
入力エラー(年齢は1から99の範囲で入力してください)
3人目の年齢:25
4人目の名前:
年齢の合計は75歳、年齢の平均は25.00歳
[3] 環境
[3.1] OS:Windows
[3.2] LCpad
[3.3] 言語: C
[4] 期限: 2007年7月9日hhまで
[5] 初心者です。
318:デフォルトの名無しさん
07/07/06 18:46:59
>>312
スペルミスしたとき、例えばretrun 0;はコンパイル時エラーになるが、
retrun (0);ではretrunという名前の関数を呼び出す式としてコンパイルできてしまう。
もちろんリンカエラーにはなるはずだが、エラーが表示されるときは早いほうがよい。
319:デフォルトの名無しさん
07/07/06 18:51:29
>>318
なるほど、C++ならコンパイル時にエラーになるから構わないわけだな
320:デフォルトの名無しさん
07/07/06 19:06:41
実際にvoid retrun(int)なる関数があったら……
321:デフォルトの名無しさん
07/07/06 19:55:14
retrun()という関数を自分で作っておいて
retrun(1);
とかreturnのつもりで書くってのは相当にアホだろ
322:デフォルトの名無しさん
07/07/06 19:57:11
switch()でのdefault:のスペルミスに比べれば害は少ないよな
retrunというスペルミス云々って話は昔からよく聞くけど
どうもこじつけ臭い
単にカッコは不要で冗長だから嫌われてるだけだろう
他人にスタイルを押し付けるほどの根拠は無いと思うがどうよ
323:デフォルトの名無しさん
07/07/06 20:03:07
今時大抵の奴はキーワードに色がつくエディタか統合開発環境使ってるから
どうせすぐ気づくわな
324:デフォルトの名無しさん
07/07/06 20:29:13
> 単にカッコは不要で冗長だから嫌われてるだけだろう
そうだろうね。昔はreturnに括弧が要ったが、後から要らなくなったことの説明が付く。
325:デフォルトの名無しさん
07/07/07 01:06:43
C言語
問題
2つの符号なし整数a,b(ただし、a>bとし、bは2のべき乗とする)をキーボードから読み込み、
@a,bを2進表示し、配列の中にビットを格納しなさい。
Aa,bの四則演算
c=a+b
d=a-b
e=a*b
f=a/b(商のみ)を計算し、その結果を出力しなさい。
7月13日までです。お願いします。
326:デフォルトの名無しさん
07/07/07 01:08:34
[1] 授業単元: プログラミング実習
[2] 問題文:時宜の微分方程式を数値計算を用いて解け。
ルンゲクッタ法または後退オイラー法を使いプログラミングすること。
・3*d^2x/dt^2+dx/dt+2x=4
・x(t=0)=0
・dx/dt(t=0)=0
[3] 環境
[3.1] OS: Windows xp
[3.2] コンパイラ名とバージョン: bcc32?
[3.3] 言語:C++
[4]期限: 2007年07月08日23:00まで
[5] その他の制限:制限なし
よろしくおねがいします
327:デフォルトの名無しさん
07/07/07 01:17:33
>>325
int main( void )
{
unsigned int a,b;
schanf( "%d %d", &a, &b );
printf( "+:%d\n", a + b );
printf( "-:%d\n", a - b );
printf( "*:%d\n", a * b );
printf( "/:%d\n", a / b );
return 0;
}
>>326
どこかの宿題スレで同じ問題あったよ。
ルンゲクッタ法使ってた。
328:デフォルトの名無しさん
07/07/07 01:23:21
C言語で
1〜Nの整数(Nは任意)を、ランダムな順番に並び替え,
printf で出力するようなプログラムを作成したいのですが。
良いアルゴリズムなどはありますか?
あ、動けばいいような気もしてきた・・・・orz
329:328
07/07/07 01:27:19
おらあもうだめだあ
123456
↓
245136
こうなってほしいのに
632312
これが現実 (謎
330:デフォルトの名無しさん
07/07/07 01:28:11
>>328
簡単なのでいいならこんなの?
1.int Num[100]に1〜100の値を入れる。
2.Num[rand()%100]とNum[rand()%100]を入れ替える。
3.「2」を適当な回数する。
331:デフォルトの名無しさん
07/07/07 01:44:17
おまいら、なんでそんなに rand() が好きなんだw
332:328
07/07/07 11:38:02
>>330
ありがとうございます
一応、それで作ってみます。
何回くらい入れ替えればいいんだろうか・・・
333:デフォルトの名無しさん
07/07/07 13:43:44
>>327さん、配列を使ってないきが…
334:デフォルトの名無しさん
07/07/07 14:04:16
>328
int a[N];
for(i=1; i<N; i++) {
int j = rand()%(i+1);
if(j!=i) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
335:デフォルトの名無しさん
07/07/07 14:17:25
URLリンク(ray.sakura.ne.jp)
でも嫁
336:homoじょあ ◆5OLf4yFnuM
07/07/07 18:30:38
>>316(・3・) エェー 足し算と引き算だけNE
#include<stdio.h>
#include<ctype.h>
int calc(int ans, int i, int op){
switch( op ){
case 0: return ans + i;
case 1: return ans - i;
}
return ans;
}
main(){
char c[256];
char *p;
int i, op = 0, ans = 0;
printf("Enter a number:");
fgets(c, sizeof(c), stdin);
p = c;
while(*p != '\0'){
i = 0;
while(isdigit(*p)){
i = i*10+(*p)-48;
p++;
}
ans = calc(ans, i, op);
if(*p == '+')op = 0;
else if(*p == '-')op = 1;
else op = -1;
p++;
}
printf("You have entered: %d\n", ans);
return 0;
}
337:homoじょあ ◆5OLf4yFnuM
07/07/07 18:46:59
>>317
(・3・)あっちょんぶりけ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
338:デフォルトの名無しさん
07/07/08 01:43:22
問題文[1] 授業単元:C言語
[2] 問題文: :入力した人の年齢の合計と平均を出力させるプログラムを作成して下さい。
※入力時に累積の人数を表示 ※年齢入力時に数字属性と範囲のチェックを行う※nullは不許可とする
※0 〜 9 の文字のみで、かつ 1 〜 99 の範囲のみを許可する※年齢の平均は小数点第二位まで出力する
※名前に空が入力された場合に年齢の合計と平均を出力してプログラムを終了する
−実行結果−
1人目の名前:human1
1人目の年齢:
入力エラー(年齢を入力してください)
1人目の年齢:30
2人目の名前:human2
2人目の年齢:abc
入力エラー(年齢は数字のみで入力してください)
2人目の年齢:20
3人目の名前:human3
3人目の年齢:0
入力エラー(年齢は1から99の範囲で入力してください)
3人目の年齢:25
4人目の名前:
年齢の合計は75歳、年齢の平均は25.00歳
[3] 環境
[3.1] OS:Windows
[3.2] LCpad
[3.3] 言語: C
[4] 期限: 2007年7月9日hhまで
[5] 初心者です。お願いします。
339:デフォルトの名無しさん
07/07/08 02:30:35
1つ上のレスぐらい見ろクズ
340:デフォルトの名無しさん
07/07/08 18:18:48
>>325お願いしますm(_ _)m
341:デフォルトの名無しさん
07/07/08 19:42:48
>>327がやってるじゃんと言おうとしたら、仕様を満たしてないのね。
Aa,bの四則演算は、何も考えずにc=a+bとかやらずに
2進数で演算しないといけないのかな?
342:homoじょあ ◆5OLf4yFnuM
07/07/08 21:50:28
>>325(・3・) エェー bitに直すだけYO
もう酔っ払ってダメぽ
#include <stdio.h>
void changeBit(unsigned long n, unsigned char bit[32]){
int i;
for(i=0; i<32; i++, n = n >> 1){
bit[31 -i] = n & 0x1;
}
}
int main(void){
unsigned long a, b;
unsigned char bita[32], bitb[32];
int i;
printf("a:");
scanf("%ld", &a);
printf("b:");
scanf("%ld", &b);
changeBit(a, bita);
changeBit(b, bitb);
for(i=0; i<32; i++){
printf("%u", bita[i]);
}
puts("");
for(i=0; i<32; i++){
printf("%u", bitb[i]);
}
return 0;
}
343:デフォルトの名無しさん
07/07/09 14:17:13
すいません。>>325のaとbは8ビットで結果は16ビットです。すいませんでしたm(_ _)m
344:デフォルトの名無しさん
07/07/09 14:44:00
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 年(西暦),月,日を入力したとき,入力した年月日の曜日を出力するプログラムを作成
しなさい.
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:なし
お願いします。
345:デフォルトの名無しさん
07/07/09 14:46:40
>>344
URLリンク(www9.plala.or.jp)
346:デフォルトの名無しさん
07/07/09 14:51:54
>>344
グレゴリオ暦でおk?
347:デフォルトの名無しさん
07/07/09 15:16:57
// >>344
#include <time.h>
#include <stdio.h>
int main()
{
int year;
int month;
int day;
printf("Input date(year month day:Ex. 2006 12 31).\n");
if (scanf("%d%d%d", & year, & month, & day) < 3) {
fprintf(stderr, "Illegal format.\n");
return 1;
}
struct tm tmp = {0};
tmp.tm_year = year - 1900;
tmp.tm_mon = month - 1;
tmp.tm_mday = day;
mktime(& tmp);
static const char * const weekDayTable[] = {
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
};
printf("%d/%d/%d is %s.\n", 1900 + tmp.tm_year, 1 + tmp.tm_mon, tmp.tm_mday, weekDayTable[tmp.tm_wday]);
return 0;
}
348:デフォルトの名無しさん
07/07/09 15:28:57
>>325もう一度書かして下さい。
C言語です。
二つの符号なし整数a,b(ただしa>bとし、bは2のべき乗とする。またaとbは8ビットで、演算の結果は16ビットです。)をキーボードから読み込み、
@a,bを2進表示し、配列の中にビットを格納しなさい。
Aa,bの四則演算(上のを使って、相手に10進で入力させ、それを2進表示する)
c=a+b
d=a-b
e=a*b
f=a/b(商のみ)
を計算し、その結果を出力しなさい。
習ったのはfor文、if文、do文、while文、シフト演算子{(>>)(<<)}、ビット単位のAND演算子(&)、OR演算子(|)、排他的OR演算子(^)、1の補数(~)です。結果は2進の16ビットです。
7月14日までです。お願いしますm(_ _)m
349:デフォルトの名無しさん
07/07/09 19:06:20
とりあえずテンプレに沿って質問しろよ
350:デフォルトの名無しさん
07/07/09 19:46:08
[1] コンピュータ・サイエンス
[2] C++でUDPのechoサーバを作れ
[3] 環境
[3.1] Windows
[3.2] VisualC++系
[3.3] C++
[4]無期限
[5]wsock32.lib UDPで
おねがいします。
351:177
07/07/09 20:27:59
[1] 授業単元: プログラミング技術
[2] 問題文(含コード&リンク):
(2)例えば式1+2[ENTER]を入力すると3を出力するように足し算の出来る
プログラムに改造したいです。他にも掛け算や割り算、引き算も出来るように
お願いします。
#include <stdio.h>
#include <ctype.h>
main(){
char c[10];
char *p ;
int i=0;
printf("Enter a number: ");
fgets(c,6,stdin);
p = &c; //ここでWarningが出るが問題にはならない
While(isdigit (*p));{
i=i*10+(*p++)-48;
}
printf("You have entered: %d\n", i);
}
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C++
[4] 期限: 明日中
[5] その他の制限:特になし
352:デフォルトの名無しさん
07/07/09 20:46:43
それは本当にC++か・・・
353:デフォルトの名無しさん
07/07/10 11:03:42
[1] 授業単元:プログラミング言語
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: XP pro2
[3.2] VISUALU STUDIO 2005
[3.3] 言語: C++
[4] 期限:〜7/11 09:00
[5] その他の制限:無し
どうかお願いします
354:デフォルトの名無しさん
07/07/10 14:06:54
// ヘッダファイルここから
class Player
{
int point;
public:
Player();
Player(int p);
int get_point();
void set_point(int p);
int rand();
int judge(Player &opp);
void show();
};
void show_winner(int result, const char *a, const char *b);
void show_point(Player &man, Player &woman);
355:デフォルトの名無しさん
07/07/10 14:07:27
// ソースファイルここから
#include <iostream>
#include <iomanip>
#include <string>
#include <cstdlib>
#include <ctime>
#include "player.h"
using namespace std;
Player::Player() : point(100) {std::srand((unsigned)time(NULL));}
Player::Player(int p) : point(p) { std::srand((unsigned)time(NULL)); }
int Player::get_point() { return point; }
void Player::set_point(int p) { point = (p < 0) ? 0 : p; }
int Player::rand() { return std::rand() % 20; }
int Player::judge(Player &opp) {
int i = this->rand();
int you = (opp.rand() * 8) / 10;
if (i > you) {
opp.set_point(opp.get_point() - i);
return 1;
}
356:デフォルトの名無しさん
07/07/10 14:21:09
以下(ry
357:デフォルトの名無しさん
07/07/10 15:06:01
[1] 授業単元:C言語
[2] 数字だけからなる文字列をchar型の配列へ読み込み、それをint型のデータに変換する関数myatoi()
を作成せよ、ただし文字列中に数字以外の文字が含まれれる場合は戻り値としてー1を返すようにすること
さらにmyatoi()を用い、標準入力から与える文字列を数値として(printfの%dを用いて)表示するプログラムを作成せよ
[3] 環境
[3.1] Linax
[3.2] gcc
[3.3] 言語: C言語
[4] 期限: できるだけはやく
[5] できるだけ特殊じゃないので
[3] 環境
[3.1] OS: linax
[3.2]gcc gnome emacs
[3.3] 言語: C
[4] はやめ
お願いします
358:デフォルトの名無しさん
07/07/10 15:08:57
追加
%./ファイル名
入力:14314
入力された数値は14314です
入力:abc
数字以外の文字が入っています
入力: [c]+d
%
実行結果です
359:デフォルトの名無しさん
07/07/10 15:17:31
[1]授業単元:プログラミング演習
[2]問題文:二つの符号なし整数a,b(ただしa>bとし、bは2のべき乗とする。またaとbは8ビットで、演算の結果は16ビットとする。)をキーボードから読み込み、
@a,bを2進表示し、配列の中にビットを格納しなさい。
Aa,bの四則演算(上のを使って、相手に10進で入力させ、それを2進表示する)
c=a+b
d=a-b
e=a*b
f=a/b(商のみ)
を計算し、その結果を出力しなさい。
[3]環境
[3.1]Windows XP
[3.2]VisualC++,UNIX
[3.3]C言語
[4]2007年7月14日まで。
[5]習ったのはfor文、if文、do文、while文、シフト演算子{(>>)(<<)}、ビット単位のAND演算子(&)、OR演算子(|)、排他的OR演算子(^)、1の補数(~)、符号なしありの表し方(unsignなど)です。お願いしますm(_ _)m
360:デフォルトの名無しさん
07/07/10 17:03:35
>>357
URLリンク(kansai2channeler.hp.infoseek.co.jp)
361:みえ
07/07/10 17:14:21
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 次を元にして、足し算などの式を入力すると計算結果を表示するプログラムを作ることを考える。たとえば式1+2ENTERを入力すると結果の3が表示されるようにプログラムを作り直してください、エラー処理は無視してよい。
他の演算ができるようになっているとさらに高く評価する。
#include<stdio.h>
#include<ctype.h>
main(){
char c[10];
char *p;
int i=0;
printf("Enter a number:");
fgets(c,6,stdin);
p=&c;
while(isdigit(*p)){
i=i*10+(*p++)-48;
}
printf("You have entered: %d\n",i);
}
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 7月11日
よろしくお願いします
たとえば式1+2ENTERを入力すると結果の3が表示される
362:デフォルトの名無しさん
07/07/10 18:16:29
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: WindowsXP
[3.2]gcc
[3.3] 言語: C
[4] 期限: 7/11まで
[5] その他の制限: 特になし
よろしくお願いします。
363:デフォルトの名無しさん
07/07/10 18:18:40
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
実行例
1:コーラ 2:ミルクティー 3:ビール 4:オレンジジュース 5:緑茶
110円 140円 210円 190円 120円
希望の飲み物の番号を入力(終了する場合はCTRL+D) 1
商品はコーラ(価格=110円) お金を入れてください。
1000円:1
500円:0
100円:0
50円:0
10円:0
商品価格=110 釣銭あり
投入貨幣 =1000円(1), 500円(0), 100円(0), 50円(0), 10円(0)
釣銭 =1000円(0), 500円(1), 100円(3), 50円(1), 10円(4)
釣銭用貨幣=1000円(1), 500円(9), 100円(7), 50円(9), 10円(6)
希望の飲み物の番号を入力(終了する場合はCTRL+D)
[3] 環境
[3.1] OS: WindowsXP
[3.2]gcc
[3.3] 言語: C
[4] 期限: 7/11まで
[5] その他の制限: 特になし
よろしくお願いします。
364:デフォルトの名無しさん
07/07/11 12:55:58
>>362は出来たのですが
>>363ができません。
今日の22時までなんです。どなたかお願いします。
365:デフォルトの名無しさん
07/07/11 13:15:47
>>364
昨日やってできたけど、バカバカしくなって消した
366:363
07/07/11 13:24:42
バカバカしくなるぐらい簡単ってことなんでしょうか?
だったら少し頑張って自分でやってみます
367:デフォルトの名無しさん
07/07/11 13:28:55
>>366
できたところまででいいから晒せばヒントあげるよ
すべて人任せはイクナイ
368:デフォルトの名無しさん
07/07/11 18:47:35
[1] 授業単元: プログラミング技術
[2] 問題文(含コード&リンク):ニュートン法
出力が
値入力⇒○
解の値は ○ 収束するのに ○ 回かかりました
[3] 環境
[3.1] OS:WindowsVISTA
[3.2] コンパイラ名とバージョン:コンパイラが動かないですorz
[3.3] 言語:C言語
[4] 期限:考える時間であっというまに・・・7/13(金)17:00です。
[5] その他の制限:
#include<math.h>とdouble、fabsは必ず使うようです。
369:homoじょあ ◆5OLf4yFnuM
07/07/11 23:00:46
(・3・) エェー ニュートン法って式いらんのかいNA
370:デフォルトの名無しさん
07/07/11 23:57:17
>>359お願いしますm(_ _)m
371:デフォルトの名無しさん
07/07/11 23:59:27
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク): コンビニの売り上げ伝票ファイルを集計し、20歳代、30歳代それぞれの売り上げ総額を求める処理
のプログラムを作る。売り上げ伝票ファイルは以下のような形式で記録されるものとする。1行に1品目の売り上げ記録があり、第
1項目が商品コード、第2項目が単価、第3項目が数量、第4項目が客の性別、第5項目が客の年齢層。年齢層の値は19歳以下
なら1、20〜29歳なら2、30〜39歳なら3、40〜49歳なら4、50歳以上なら5である。性別は0が男、1が女を表す。商品コードが0の
または負のとき、それ以後のデータがないことを表すものとする。また、データが不正のときも記録はないものとする。
[3] 環境
[3.1] OS:Windows Visual stdio 2003
[3.2] コンパイラ名とバージョン:bcc
[3.3] 言語:C
[4] 期限:7月12日朝6時まで
[5] その他の制限:switch文を必ずいれて下さい。
他スレでスルーされてしまいました(´;ω;`)
助けて下さい。よろしくおねがいしますm(_ _)m
372:デフォルトの名無しさん
07/07/12 07:22:26
ぎりぎり杉
373:デフォルトの名無しさん
07/07/12 07:31:20
全くだ
やろうと思ったら6時過ぎてたよw
374:デフォルトの名無しさん
07/07/12 14:42:26
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:なし
よろしくお願いします。
375:デフォルトの名無しさん
07/07/12 14:56:32
#include <stdio.h>
int main(void)
{
int i, n;
int min, sec;
int minsum = 0, secsum = 0;
printf("曲数を入力して下さい. --> ");
scanf("%d", &n);
for(i = 0; i < n; i++) {
printf("<%d 曲目>\n", i);
printf("何分ですか. --> ");
scanf("%d", &min);
printf("何秒ですか. --> ");
scanf("%d", &sec);
minsum += min;
secsum += sec;
}
printf("総時間%d 分%d 秒", minsum, secsum);
return 0;
}
376:デフォルトの名無しさん
07/07/12 15:01:24
>>375 いちいち突っ込むのもあれだけど、とりあえず(鼻からブーーのAA略) ブーーッ!
377:デフォルトの名無しさん
07/07/12 16:43:15
>>359お願いします。
378: ◆lIN/ESgxWw
07/07/12 17:01:58
[1]単元:プログラミング技術
[2]問題文:アップローダーのno.4600にアップしておきました
[3]環境
OS:リナックス
コンパイラ:gcc
言語:C
[4]期限:来週の水曜までに
よろしくお願いします。
379:368
07/07/12 17:51:51
>>369 式いります。
do{
(式)
}while();
みたいな感じなのですが、私には理解できませんorz
380:デフォルトの名無しさん
07/07/12 18:22:25
>>359
c言語ブランク暦13年の俺様のテクニックをしかと見届けよ
#include<stdio.h>
char b8[9],b16[17];
void d2b8(int n){
for(int i=0;i<8;i++)b8[7-i]=(n&1)+'0',n/=2;b8[8]='\0';
}
void d2b16(int n){
for(int i=0;i<16;i++)b16[15-i]=(n&1)+'0',n/=2;b16[16]='\0';
}
int main(void){
int a,b,i;
while(1){
printf("a=");scanf("%ud",&a);
if(a<0||a>255){printf("8bit\n");continue;}
printf("b=");scanf("%ud",&b);if(b>=a){printf("b<a\n");continue;}
if(b!=1&&b!=2&&b!=4&&b!=8&&b!=16&&b!=32&&b!=64&&b!=128){printf("b=2^n\n");continue;}
d2b8(a);printf("a = %3d (%s)\n",a,b8);
d2b8(b);printf("b = %3d (%s)\n",b,b8);
d2b16(a+b);printf("c = %3d + %3d = %5d (%s)\n",a,b,a+b,b16);
d2b16(a-b);printf("d = %3d - %3d = %5d (%s)\n",a,b,a-b,b16);
d2b16(a*b);printf("e = %3d * %3d = %5d (%s)\n",a,b,a*b,b16);
d2b16(a/b);printf("f = %3d / %3d = %5d (%s)\n",a,b,a/b,b16);
}
//return 0;
}}
381:デフォルトの名無しさん
07/07/12 18:42:45
計算も2進でやらせたいんじゃないん?
382:デフォルトの名無しさん
07/07/12 20:36:53
引数にクラスを指定するのってどうやるの?
下のやり方だとだめだっだ。
TEST_CLASS Sizuoka;
int *p;
p = &Sizuoka;
func(p);
383:デフォルトの名無しさん
07/07/12 20:39:32
funcの型が書かれてないし
意味不明だよ^^
384:デフォルトの名無しさん
07/07/12 21:06:36
>>383
何で笑ってるのか教えてほしい。
385:デフォルトの名無しさん
07/07/12 21:15:14
^^はにこやかに意味がわからないよ〜って言ってるだけで
笑っているわけじゃない
386:デフォルトの名無しさん
07/07/13 10:24:49
すいません。>>359は2進で計算しますm(_ _)m
387:デフォルトの名無しさん
07/07/13 13:55:42
357お願いします
388:デフォルトの名無しさん
07/07/13 13:59:22
>>357
389:デフォルトの名無しさん
07/07/13 14:03:37
>>387
>>360にあるのに、気に入らないのか?
390:デフォルトの名無しさん
07/07/13 14:03:44
>>357
#include <stdio.h>
int myatoi(char *buf)
{
char *p = buf;
int n = 0;
while(*p != '\0') {
if(isdigit(*p)) { n *= 10; n += *p - '0'; p++; }
else return -1;
return n;
}
int main(void)
{
int n;
char buf[128];
scanf("%s", buf);
n = myatoi(buf);
printf("%d\n", n);
return 0;
}
391:デフォルトの名無しさん
07/07/13 14:08:06
>>390 #include <ctype.h> を忘れてた。
392:デフォルトの名無しさん
07/07/13 14:08:46
whileの閉じ括弧もわすれちょるよ
393:デフォルトの名無しさん
07/07/13 14:44:14
>>359お願いします。
394:デフォルトの名無しさん
07/07/13 15:35:31
すみません、>>378よろしくお願いします
395:デフォルトの名無しさん
07/07/13 15:37:33
>>394
リンク先書いとけって
手間省くな
396:デフォルトの名無しさん
07/07/13 16:00:56
>>395
URLリンク(kansai2channeler.hp.infoseek.co.jp)
397:デフォルトの名無しさん
07/07/13 18:56:28
>>390
実行結果が358にならないです。
おねがいします
398:デフォルトの名無しさん
07/07/13 19:02:24
>>396
bccだとcursesがないからできなかった
399:デフォルトの名無しさん
07/07/13 21:04:06
>>383
>>385
お前痛いな。
400: ◆lIN/ESgxWw
07/07/14 00:22:48
[1]単元:プログラミング
[2]問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
コンパイラ:cc
OS:リナックス
言語:C
[4]期限:7月19日
よろしく頼みます。
401:デフォルトの名無しさん
07/07/14 00:42:49
[1] 授業単元:情報科学U
[2] 問題文(含コード&リンク):URLリンク(brain.is.kyushu-u.ac.jp) の課題11
[3] 環境
[3.1] OS: Windows
[3.2] 普段はcygwinつかっているのでgcc 3.4 だとおもいます。
[3.3] 言語: Cです。
[4] 期限: 2007・07・16まで
よろしくおねがいします。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4356日前に更新/401 KB
担当:undef