07/07/02 15:02:44
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 温度データを入力し,摂氏から華氏,華氏から摂氏に変換するプログラムを作成しなさい。
[3] 環境
[3.1] OS:windows xp
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:特になし
[5] その他の制限:特になし
お願いします。
262:デフォルトの名無しさん
07/07/02 16:34:09
>>261
//セ氏→華氏
/////////////////////////////////////////////
//インクルード
/////////////////////////////////////////////
#include "stdafx.h"
#include <iostream>
using namespace std;
/////////////////////////////////////////////
//fah関数
/////////////////////////////////////////////
int fah(int p1) {
//セ氏→華氏
p1=((p1*9)/5)+32; //華氏→セ氏の場合は、p1=5(p1-32)/9
return p1;
}
/////////////////////////////////////////////
//メイン関数
/////////////////////////////////////////////
int main() {
int p2=0;
cin >> p2;
int temp=fah(p2);
cout << temp << endl;
}
263:デフォルトの名無しさん
07/07/02 19:04:44
あるファイルの中にデータとして多くの0と1が書き込まれており、最後の1文字だけがEであるとする。
このとき、0と1の並びに着目し、データを圧縮することを考える。
ここでは、0と1のそれぞれが何個連続して並んでいるかを記録することで圧縮を行う。
たとえば、digit1.datというファイルに
111110000000000000000000000001E
というように0と1が並んでいるとき、
7 1 24 0 1 1
と圧縮できる。このとき圧縮結果に空白を挟むことに注意する。
上記の圧縮方法に従って、任意の0と1から成るデータを圧縮するプログラムを作成せよ。
ただしデータはリダイレクションを使用し、char型変数の1文字ずつ繰り返し世も困れるものとする。
最後には「圧縮完了」と表示のこと。
期限が迫っています・・・
C++です。
if文、for文、while文、リダイレクションまで習いました。
習ったところまでの文法でお願いします・・・
264:デフォルトの名無しさん
07/07/02 19:38:29
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: WindowsXP
[3.2] gcc
[3.3] 言語: C
[4] 期限: 7/3
[5] その他の制限:特になし
よろしくお願いします。
265:デフォルトの名無しさん
07/07/02 22:29:11
>>262
間違いです。単位はとれませんでした。
266:デフォルトの名無しさん
07/07/02 22:36:54
>>7 1 24 0 1 1 と圧縮できる。
>>世も困れるものとする。
5 1 24 0 1 1
じゃないのか(間違ってたらゴメン(藁))?
そもそも処理系も何もかいてなくちゃ世も困れるよ。
267:かま
07/07/02 23:34:34
[1] 授業単元: c言語
[2] 問題文(含コード&リンク): このプログラムを書き換え、ファイル名をコマンドラインの引数から指定できるようにしてください。
#include<stdio.h>
#include<stdlib.h>
int main(void){
char c;
char filename[]="date.txt";
FILE *fp;
if((fp=fopen(filename, "r"))==NULL){
printf("file does not exist, \n");
exit(1);
}
while((c=getc(fp))!=EOF){
printf("%c\n", c);
}
fclose(fp);
}
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4 VC 6.0
[3.3] 言語: C
[4] 期限: 2007年7月4日
[5] その他の制限:
では、宜しくお願いします。
268:デフォルトの名無しさん
07/07/03 00:02:49
[1]授業単元:プログラミング
[2]次のアルファベットのキーワードを入力して計算する関数電卓プログラムを作成しなさい。
sin 正弦
cos 余弦
tan 正接
arcsin 逆正弦
arccos 逆余弦
arctan 逆正接
ln 自然対数
log 常用対数
exp 指数関数
sqr 平方
rad 入力データをラジアン単位にする
deg 入力データを度を単位にする
end プログラムの終了
[3] 環境
[3.1] windows2000
[3.2] VC 6.0
[3.3] C++
[4] 期限 2007年7月4日 午前8時
[5] その他の制限 無し
どうかよろしくお願いいたします。
269:デフォルトの名無しさん
07/07/03 01:05:52
[1] 授業単元:progrming
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2007/07/04
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
UDP wo mochiiru
onegaishimasu
270:デフォルトの名無しさん
07/07/03 02:25:06
>>264
URLリンク(kansai2channeler.hp.infoseek.co.jp)
271:デフォルトの名無しさん
07/07/03 02:42:34
>>267
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char *argv[]){
char c;
char filename[128];
FILE *fp;
if(argc != 2){
printf("コマンドラインの引数が違います。 \n");
exit(1);
}
strcpy(filename, argv[1]);
if((fp=fopen(filename, "r"))==NULL){
printf("file does not exist, \n");
exit(1);
}
while((c=getc(fp))!=EOF){
printf("%c\n", c);
}
fclose(fp);
return 0;
}
272:デフォルトの名無しさん
07/07/03 03:10:54
>>261
#include<stdio.h>
int main(void)
{
double temp;
char ch;
printf("温度:");
scanf("%lf",&temp);
printf("摂氏から華氏[c], 華氏から摂氏[f] :");
scanf(" %c",&ch);
switch(ch){
case 'C':
case 'c':
printf("摂氏%f度 = 華氏%f度",temp,1.8*temp+32);
break;
case 'F':
case 'f':
printf("華氏%f度 = 摂氏%f度",temp,(temp-32)/1.8);
break;
default:
printf("不正な入力");
break;
}
return 0;
}
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進表示し、配列の中にビットを格納しなさい。
②a,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がやってるじゃんと言おうとしたら、仕様を満たしてないのね。
②a,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進表示し、配列の中にビットを格納しなさい。
②a,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進表示し、配列の中にビットを格納しなさい。
②a,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] 授業単元:情報科学Ⅱ
[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まで
よろしくおねがいします。
402:デフォルトの名無しさん
07/07/14 01:28:23
>400
ほとんど答えが書いてあるようなもんなのに、なんで自分でやらないかねぇ
403:デフォルトの名無しさん
07/07/14 02:38:58
>>401
int push(int data, int *sp, int *STK)
{
if (*sp == 0) return 0;
(*sp)--; *(STK + *sp) = data;
return 1;
}
int pop(int *dataP, int *sp, int *STK)
{
if (*sp == N) return 0;
*dataP = *(STK + *sp); (*sp)++;
return 1;
}
void dsp_stack(int top, int *a)
{
int i;for (i = top; i < N; i++) {
printf("%d:%3d\n",i, *(a + i));}
}
404:もり
07/07/14 10:34:36
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):次のプログラムは、式を入力すると計算結果を表示するプログラムであるが、
誤っている点があります。現在の内容を理解し、誤りを訂正してコメントをつけてください。
#include <stdio.h> #include <stdlib.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); } } int expression(){ int ans;
ans = term(); while(1){ if(*p == '+'){
ans = ans + term(); }else if(*p == '-'){
ans = ans - term(); }else break; }
return(ans); } int term(){
int ans,x; ans = number();
while(1){ if(*p == '*'){
ans = ans * number(); }else if(*p == '/'){
x = number(); if(x == 0){
printf("Division by 0\n"); exit(1); }
ans = ans / x; }else break; }
return(ans); } int number(){
int i=0; while (isdigit(*p)){
i=i*10+(*p++)-48;} return(i); }
[3] 環境
[3.1] OS: Windows [3.2] gcc 3.4 [3.3] 言語: C言語
[4] 期限: 2007/7/17 改行が多すぎて、乗せられなかったためこんな形になりますた。すみません。宜しくお願いします。
405:デフォルトの名無しさん
07/07/15 09:18:02
うpろだ使えよww
406:デフォルトの名無しさん
07/07/15 14:09:09
>>404
スレリンク(tech板:868番)
407:デフォルトの名無しさん
07/07/15 15:44:54
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:なし
よろしくお願いします。
408:デフォルトの名無しさん
07/07/15 15:50:40
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): フィボナッチ数列の第n 番目(1 ≤ n ≤ 50)の数を出力するプログラムを作成しなさい.
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:なし
よろしくお願いします。
409:デフォルトの名無しさん
07/07/15 16:02:05
>>408
#include <stdio.h>
int main(void){
int i, max;
int tanka, kosuu, total = 0;
double tax_total = 0.0;
printf("商品数を入力してください. --> ");
scanf("%d", &max);
for(i=0; i<max; i++){
printf("<商品%d>\n", i+1);
printf("単価を入力してください. --> ");
scanf("%d", &tanka);
printf("個数を入力してください. --> ");
scanf("%d", &kosuu);
printf("** 単価×個数 ** ==> %d\n", tanka * kosuu);
total += tanka * kosuu;
printf("** 累積合計代金 ** ==> %d\n", total);
tax_total += total * 1.05;
printf("** 消費税込み累積合計代金** ==> %lf\n", tax_total);
}
return 0;
}
コンパイル通してないからどっかエラーでたら教えてね☆
410:デフォルトの名無しさん
07/07/15 16:04:09
#include <stdio.h>
typedef struct
{
int nValue;
int nNums;
int nPrice;
} DATA;
int main(void)
{
int n, i;
DATA *dt;
int nSmPrc = 0;
double dSmPrcTaxin = 0;
printf("商品数を入力して下さい --> "); scanf("%d", &n);
dt = (DATA *)malloc(sizeof(DATA) * n);
for(i=0; i<n; i++)
{
printf("<商品%d>\n単価を入力して下さい. --> ", i); scanf("%d", &dt[i].nValue);
printf("個数を入力して下さい. --> "); scanf("%d", &dt[i].nNums);
dt[i].nPrice = dt[i].nValue * dt[i].nNums;
nSmPrc += dt[i].nPrice;
dSmPrcTaxin = (double)nSmPrc * 1.05;
printf("** 単価×個数** ==> %d\n", dt[i].nPrice);
printf("** 累積合計代金** ==> %d\n", nSmPrc);
printf("** 消費税込み累積合計代金** ==> %g\n", dSmPrcTaxin);
}
return 0;
}
411:デフォルトの名無しさん
07/07/15 16:10:56
>>409
#include <stdio.h>
int main(void){
int i, n;
unsigned int fibonacci[50];
fibonacci[0] = fibonacci[1] = 1;
for(i=2; i<50; i++){
fibonacci[i] = fibonacci[i-1] + fibonacci[i-2];
}
printf("何番目を表示させたいか入力してください\n");
scanf("%d", &n);
printf("フィボナッチ数列の %d 番目は %d です\n", n, fibonacci[n-1]);
return 0;
}
こっちも通してないからエラーでたら教えてね☆
412:舞子
07/07/15 16:11:29
自宅でマイコン開発をはじめようと考えているものです。
(現在マイコンの知識はほとんどないです。)
そこで、マイコン開発に必要なハードウェア、アプリケーションを知りたいんですが、
お知恵をおかりできませんでしょうか?
ハードウェアとしてはできればUSBで接続で
マイコンにそのまま書き込めるようなものがあれば最適です。
USBとかって安くうってるのでしょうか?
自宅で行うのでできれば安く簡単にと考えてます。
(当然レベルの高い製品はできないと思いますが)
よろしくお願いいたします。
413:デフォルトの名無しさん
07/07/15 16:11:33
じゃあ俺も
#include <stdio.h>
int main(void)
{
int shouhinsuu,tanka,kosuu,daikin,ruiseki=0;
printf("商品数を入力して下さい --> ");scanf("%d",&shouhinsuu);
for(int i=1;i=<shouhinsuu;i++){
printf("<商品%d>\n単価を入力して下さい. --> ",i);scanf("%d",&tanka);
printf("個数を入力して下さい. --> ");scanf("%d",&kosuu);
printf("** 単価×個数** ==> %d\n",daikin=tanka*kosuu);
printf("** 累積合計代金** ==> %d\n",ruiseki+=daikin);
printf("** 消費税込み累積合計代金** ==> %.1f\n",ruiseki*1.05);
}
}
414:デフォルトの名無しさん
07/07/15 16:13:02
intじゃあふれない?
415:デフォルトの名無しさん
07/07/15 16:14:30
今やってみたらあふれた
泣いた
416:デフォルトの名無しさん
07/07/15 16:16:41
首吊って死んでくるねっ☆
417:デフォルトの名無しさん
07/07/15 16:21:09
わかるだろうが一応死ぬ前に
fibonacci を int から double 型に変更して printf のところを %0.lf ってしといてくれ…とだけ言っておく
俺はもうだめだ
418:デフォルトの名無しさん
07/07/17 12:15:18
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):任意の回数だけコンピュータを相手にじゃんけんをするプログラムを作成しなさい.
ただし,コンピュータは時間によって変わる乱数により実現すること.また,あいこの場合は回数のカウントには含めないこととする
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:今日17時まで
[5] その他の制限:なし
できるだけ速くお願いします!!
419:デフォルトの名無しさん
07/07/17 12:23:08
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):正整数n を入力し,n× n の正方行列において,以下のような○と●のパターンを出力す
るプログラムを作成しなさい
n=1
○
n=2
●○
○○
n=3
○●○
●●○
○○○
n=4
●○●○
○○●○
●●●○
○○○○
n=5
○●○●○
●●○●○
○○○●○
●●●●○
○○○○○
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:なし
お願いします。
420:デフォルトの名無しさん
07/07/17 12:33:46
>>409
フィボナッチは配列イラナイwww
int宣言でゴミ箱を作ればいいw
馬鹿ジャンw>>411 ワロタw
421:デフォルトの名無しさん
07/07/17 12:36:12
1→1→2→3→5といくのだから
a=1;b=1;c==a+b;
forでループさせてcを出力すればいいw
馬鹿ジャンw>>411 出来るだけ軽くしろw無能乙w
422:デフォルトの名無しさん
07/07/17 12:40:08
>>418
その程度で質問ってなんなの?
423:デフォルトの名無しさん
07/07/17 12:46:32
遅レスだが
>>32
「やさしいC(高橋麻奈著)」を読みながら
コマンドプロンプトで出来るテトリス作成(俺の時は無知から初めて2週間で形にはなった)
424:デフォルトの名無しさん
07/07/17 12:56:21
>418
(・3・) きっと、Windwsへのgccのインストール方だYO
425:デフォルトの名無しさん
07/07/17 13:29:10
>419
#include <stdio.h>
int main(void)
{
int i, j, n;
printf("n=");
scanf("%d", &n);
for(i=n; i > 0; i--) {
if(i%2) for(j=0; j<=n-i; j++) printf("○");
else for(j=0; j<n-i; j++) printf("●");
for(j=0; j<i/2; j++) printf("●○");
putchar('\n');
}
return 0;
}
426:デフォルトの名無しさん
07/07/17 14:43:29
>>418
URLリンク(kansai2channeler.hp.infoseek.co.jp)
427:426
07/07/17 14:51:53
初歩的な間違いをしていた。
>>418
修正版
URLリンク(kansai2channeler.hp.infoseek.co.jp)
428:デフォルトの名無しさん
07/07/17 16:20:07
Cのプログラミングでタイピングゲームを作るんだけど
クリアするのにかかった時間ではなく、
「1分あたりに入力したキー数」を結果として表示させるにはどうしたらいいだろう?
試行のたびに1分以上タイピングゲームするのが嫌だから、
10秒毎に入力数を記憶して、その平均を6でかけてやろうと思ったんだけど
10秒毎っていうのにひっかかってる。
秒数カウントするのはsleep関数での方法しか知らないから、
タイピングゲームを滞らせることなく実行しながら秒数をカウントって
どうすればいいのか全くわからん。
ネットのC言語講座とかでも調べてみたけどわからない…
友達に、教えてって言われたんだけど私もわからず、てんてこまい。誰か助けてー
429:デフォルトの名無しさん
07/07/17 17:45:32
clock使えばいいんでないの?
timeで十分か
430:デフォルトの名無しさん
07/07/17 18:05:17
具体的にどうすれば……
int main(void)
{
FILE *fp;
int i,len,ch,j,mojisu=0,nyu=0,key,seida,speed;
char buf[256];
char level;
clock_t start,end;
double jikan;
fp = fopen("file.txt","r");
if(fp == NULL) {
printf("File Open Error");
return 0;
}
printf("以下の文字列をタイプしてください。\n");
start=clock();
431:デフォルトの名無しさん
07/07/17 18:07:11
while(fgets(buf,256,fp)!=NULL) {
len = strlen(buf);
buf[len-1] = '\0';
len = strlen(buf);
mojisu = mojisu + len;
for(i=0;i<len;i++) {
printf("%s \r",&buf[i]);
fflush(stdout);
while(1){
ch = getch();
nyu = nyu + 1;
if(ch==buf[i]) {
printf(" \b");
break;
}
}
}
}
end = clock();
fclose(fp);
jikan = (double)(end - start) / CLOCKS_PER_SEC;
seida = mojisu * 100 / nyu;
speed = key * 6;
432:デフォルトの名無しさん
07/07/17 18:09:04
if(seida >= 90) {
if(speed <= 25) {
level = 'A';
} else if(speed <= 40) {
level = 'B';
} else {
level = 'C';
}
} else if(seida >= 60) {
if(speed <= 25) {
level = 'B';
} else {
level = 'C';
}
} else {
level = 'C';
}
printf("\n%3.1lf秒かかりました。\n",jikan);
printf("正打率は%d%\n",seida);
printf("タイプスピードは%d\n",speed);
printf("あなたのレベルは%c\n",level);
return 0;
}
いまこんなかんじ。speedの大体の値がどうなるかまだわからないので、テキトーに25と40に設定してあります
433:デフォルトの名無しさん
07/07/18 00:28:51
[1] 授業単元:IT入門B1
[2] 問題文:繰り返し複素数(実部,虚部はそれぞれ整数型とする)を入力し,ユーザが最後に1 (1+i*0)を入れたら今まで入力した複素数の実部と虚部のペアをすべて出力し,さらに入力した複素数すべての積を出力するプログラムを作成せよ.
なお,ユーザが入力する回数に制限はないものとする.
stdio.hの他にstdlib.hをインクルードしておく必要がある.
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:c
[4] 期限:2007年7月30日
[5] その他の制限: 特になし
参考プログラムです→URLリンク(www-it.sci.waseda.ac.jp)
よろしくお願いします。
434:デフォルトの名無しさん
07/07/18 02:03:13
>>433
マルチポスト(複数のスレに同じレスをつけること)は駄目だ
あと君の場合は元のスレの過去レスを読め
マルチポストじゃないのなら スレリンク(tech板) の過去レス読め
435:デフォルトの名無しさん
07/07/23 09:50:34
[2] 問題文:
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux 3.4
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語:c
[4] 期限:2007年7月30日
[5] その他の制限: 特になし
よろしくお願いします
436:デフォルトの名無しさん
07/07/23 16:09:55
訂正お願いします
URLリンク(kansai2channeler.hp.infoseek.co.jp)
437:デフォルトの名無しさん
07/07/23 16:22:34
>>436
どんな変数を使ったかは把握しておこうぜ?
とりあえず
while(length--)
*start++ = ch;
ってやればコンパイルは通る
438:デフォルトの名無しさん
07/07/23 16:42:00
なんか変な文字がでてきて・・・
下のような結果にならないんです
4 -89 0 1 5 43 ... 112 ← cmemset 使用前
0 0 0 0 0 0... 0 ← 0 で埋めたとき
88 88 88 88 88 88 ... 88 ← 88 で埋めたとき
439:デフォルトの名無しさん
07/07/23 17:00:02
>>438
どうみてもそうなるようには作られて無いからねww
表示は文字列じゃなくて数列なんでしょ?
440:デフォルトの名無しさん
07/07/23 17:26:30
数列だと思います
問題は435なんですが全然分からないんです
441:デフォルトの名無しさん
07/07/23 17:59:58
解けるようにできる問題ではないんですか?
442:デフォルトの名無しさん
07/07/23 18:08:48
#include <stdio.h>
#include<stdlib.h>
void cmemset(char *start, int value, int length);
int main(void)
{
int i, size = 10;
char *str;
//埋める前
str = (char *)malloc(sizeof(char) * size);
for(i=0; i<size; i++) printf("%3d ", (int)*(str+i));
putchar('\n');
//0で埋める
cmemset(str, 0, size);
for(i=0; i<size; i++) printf("%3d ", (int)*(str+i));
putchar('\n');
//88で埋める
cmemset(str, 88, size);
for(i=0; i<size; i++) printf("%3d ", (int)*(str+i));
putchar('\n');
return 0;
}
void cmemset(char *start, int value, int length)
{
while(length--) *start++ = (char)value;
return;
}
443:デフォルトの名無しさん
07/07/23 18:11:29
ありがとうございます!
444: ◆DpMW3bRjps
07/07/23 19:11:48
1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク): 任意の文字列を入力し、その文字列の中に任意の文字がいくつはいっているかを出力する
プログラム
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 2007年7月24日17:00まで
[5] その他の制限: こないだ初めて文字列の入力を習いました、初心者です!
よろしく
お願いします
445:デフォルトの名無しさん
07/07/23 19:33:23
int CountChar(char *str, char ch)
{
int num = 0;
do {
if(*str == ch) num++;
} while(*str++);
return num;
}
入力は適当に作ってくれ
446: ◆UoNQqijD4I
07/07/23 20:26:11
>>444ですが、配列を使ってお願いします。
無理いってすみませんが…(;;)
447:デフォルトの名無しさん
07/07/24 15:28:06
あっちの宿題スレにレスあったで
448:デフォルトの名無しさん
07/07/24 16:03:21
[1] 授業単元:C言語 応用
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:YS2005
[3.3] 言語:C
[4] 期限:2007/07/25 12:00
[5] その他の制限:なし
使用する関数(getstring)等も一緒に書いたため
見づらいかもしれませんがよろしくお願いいたします。
449:デフォルトの名無しさん
07/07/24 16:34:08
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):”rand1000.dat”というデータの個数nとその個数分の整数データが保存されているファイルがある
(URLリンク(kansai2channeler.hp.infoseek.co.jp))
このデータをファイルから読み込み
挿入ソート
基数ソート
ヒープソート
クイックソート
マージソート
によってソートできるよう各プログラムを作成せよ
データ数が100,000個のときでも対応できるようメモリを確保しておいてください。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 7月28日
[5] その他の制限:出来る限り単純なアルゴリズムで作ってください。合計5つのプログラムを作成してください。
大変な問題で申し訳ありませんがどなたか詳しい方よろしくお願いいたします
450:デフォルトの名無しさん
07/07/24 18:40:39
>>449
挿入ソート
URLリンク(kansai2channeler.hp.infoseek.co.jp)
451:デフォルトの名無しさん
07/07/24 18:48:08
>>449 ちょい変更、挿入ソートのみ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
452:デフォルトの名無しさん
07/07/24 19:32:23
>>450-451
ありがとうございます。助かります。
残りのもできればお願い致します
453:デフォルトの名無しさん
07/07/24 19:44:09
>>449 クイック
URLリンク(kansai2channeler.hp.infoseek.co.jp)
454:デフォルトの名無しさん
07/07/24 19:50:40
URLリンク(www1.cts.ne.jp)
このサイトからソースをパクッてw
455:デフォルトの名無しさん
07/07/24 20:04:37
>>449
URLリンク(www1.cts.ne.jp)
基数ソート 、ヒープソート、マージソートはなんか面倒くさいから俺はパスw
456:デフォルトの名無しさん
07/07/24 20:18:36
>>449
いつもC++だからソートとか書かないしってことでリンクだけ
URLリンク(jyoken.net)
もしくは、URLリンク(oku.edu.mie-u.ac.jp) からZIP落とせ
(挿入ソートinssort.c 基数ソートradsort.c ヒープソートheapsort.c
マージソートmergsort.c クイックソートqsort1.c qsort2.c)
457:デフォルトの名無しさん
07/07/25 05:00:25
[1] 授業単元:演習
[2] 問題文(含コード&リンク): エレベーターの乗客の待ち時間をシミュレートするプログラムを書け
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: BCC5.5
[3.3] 言語: C
[4] 期限:7/26まで
[5] その他の制限:とくになし
URLリンク(kansai2channeler.hp.infoseek.co.jp)
まで書いたんですが明らかに変な出力しかされず困ってます
どこがおかしいか教えてもらえないでしょうか?
458:ぼるじょあ ◆hZ8e4Wjqvw
07/07/28 11:49:47
>>457
(・3・) エェー 期限過ぎてるけどやったほうがいいのかNA?
どんな入力に対してどんな出力が欲しいか書いてくれYO!
459:名無しさん@そうだ選挙に行こう
07/07/29 15:05:47
宿題スレで解決しなかったのでこっち来ました
お尋ねしたいのですが以下のプログラムに、
「rand100000.dat(ランダムに数値が100000個並んでいるデータ)」
から読み込んでソートするというのを追加したいのですがどうすればよいでしょうか?
void BubbleSort(int Data[], int n)
{
int BeginPlace, ComparePlace;
//比較を始める位置を最初からn-1まで変えていく
for(BeginPlace = 0;BeginPlace < n;BeginPlace++)
{
//n - BeginPlaceまで比較する
for(ComparePlace = 1;ComparePlace < n - BeginPlace;ComparePlace++)
{
//右のほうが小さかったら交換する
if(Data[ComparePlace - 1] > Data[ComparePlace])
{
Swap(&(Data[ComparePlace - 1]), &(Data[ComparePlace]));
}
}
}
return;
}
460:ぼるじょあ ◆yBEncckFOU
07/07/29 16:11:22
>>459
(・3・)エエー rand100000.datの書式が分からないと答えられないYO
461:名無しさん@そうだ選挙に行こう
07/07/29 16:14:37
>>460
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これは1000個のデータですけど
462:名無しさん@そうだ選挙に行こう
07/07/29 16:44:23
データファイルの先頭レコードに、データ件数がある場合と、
データ件数が固定件数か分かっている、ファイルの中はデータだけでは
処理の仕方が違うと思うがな。
このデータファイルって、予め件数がわからないという条件でなかったか?
463:名無しさん@そうだ選挙に行こう
07/07/29 16:52:41
いや、件数は分かってるんでとりあえずファイルから読み込むというmain関数を作ってほしいです
464:名無しさん@そうだ選挙に行こう
07/07/29 17:07:59
>>463
int main()
{
FILE * fp = fopen("4151.txt", "r");
int lines;
if (fscanf(fp, "%d", & lines) < 1) return 1;
int * array = calloc(sizeof(* array), lines);
if (array == NULL) return 1;
for (int ic = 0; ic < lines; ++ic) {
if (fscanf(fp, "%d", & array[ic]) < 1) return 1;
}
fclose(fp);
#if 0
for (int ic = 0; ic < lines; ++ic) printf("%d\n", array[ic]);
#endif
free(array);
return 0;
}
465:名無しさん@そうだ選挙に行こう
07/07/29 17:08:24
>>463 dataに読み込んでいる。
#include <stdio.h>
#define DATAFILE "rand100000.dat"
#define DATASIZE 100000
int data[DATASIZE];
int main()
{
FILE *fp;
char buf[80];
int i=0,size;
fp=fopen(DATAFILE, "r");
if(fp==NULL){
fprintf(stderr,"Can't open %s",DATAFILE);
return 1;}
while(fgets(buf,sizeof(buf),fp)!=NULL){
data[i]=atoi(buf);
i++;}
size=i;
printf("data count=%d\n",size);
for(i=0;i<size;i++)
printf("%d ",data[i]);
printf("\n");
return 0;
}
466:465
07/07/29 17:12:40
いけない。fclose(fp)が抜けている。
return 0;する前に入れてくれ。
467:デフォルトの名無しさん
07/07/30 09:34:26
[1] 授業単元:数値計算
[2] 問題文(含コード&リンク):
ガウスの消去法(ピボット選択ありで、計算時間表示あり)をプログラミングせよ
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 2007/7/31
よろしくお願いします。。
468:デフォルトの名無しさん
07/07/30 10:24:42
URLリンク(tonosiki.mbnsk.net)
この問題の(3)標準偏差と(4)相対係数が分かりません。
どうか教えて頂けないでしょうか・・・?
よろしくお願い致します。
469:デフォルトの名無しさん
07/07/30 10:34:13
大変失礼致しました。
もしお時間がございましたらよろしくお願いいたします。
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):URLリンク(tonosiki.mbnsk.net)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語: C
[4] 期限: 07/8/1
[5] その他の制限: 特にありませんが、出来る限り単純なプログラムでお願いいたします。
470:デフォルトの名無しさん
07/07/30 10:38:00
>>468
相関係数や一時回帰はExcelでグラフを作れば計算してくれるからそれを参考に。
それ以外は判るのならそこまで自分で書いたものを寄越したまえ。
471:デフォルトの名無しさん
07/07/30 19:28:02
ぼるじょあって何?
昔麻原ショーコーのAAの三段活用をコピペしまくってた馬鹿がたしかそんなHN名乗ってたが。。
472:デフォルトの名無しさん
07/07/30 21:00:41
ぐぐれよ
473:デフォルトの名無しさん
07/07/30 21:15:12
>>469
> [2] 問題文(含コード&リンク):URLリンク(tonosiki.mbnsk.net)
404
474:デフォルトの名無しさん
07/07/31 11:06:46
>>473
マルチだ。ほっとけ。
475:デフォルトの名無しさん
07/08/01 21:05:38
[1] 授業単元:C言語
[2] 問題文:
指定された段数numの図形を画面に表示するプログラム部分である
□に適当なプログラムを書なさい。(プログラム中のi,jはint型変数)
for(i=1;□;i++){
for(j=1;j<=□;j++){
printf(□);
}
for(j=1;□;j++){
printf("%d",i);
}
putchar(□);
}
[3] 環境
[3.1] OS:WINDOWS XP
[3.2] コンパイラ名とバージョン: (VS 2005)
[3.3] 言語: C
[4] 期限: 8月1日まで
実行結果
何段?num=5
1
22
333
4444
55555
よろしくお願いします
476:ぼるじょあ ◆yBEncckFOU
07/08/01 21:30:17
(・3・)アルェー? for文多くないかNA?
for(int i=1;i<=num;i++)
{
// for(j=1;j<=□;j++)
// {
// printf(□);
// }
for(int j=1;j<=i;j++){
printf("%d",i);
}
putchar('\n');
}
477:デフォルトの名無しさん
07/08/06 23:14:22
[1] 授業単元:応用ネットワークプログラミング2
[2] 問題文
TCPおよびUDPのチェックサムを計算するプログラムを作成せよ
なお、IPは以下のようにする。
src 200.199.198.197
dest 1.2.3.4
[3] 環境
[3.1] OS: Linux
[3.2] Gentoo
[3.3] 言語:C言語
[4] 期限:6月9日の水曜日まで
[5] その他の制限:Cが苦手で困っています。
478:ぼるじょあ ◆hZ8e4Wjqvw
07/08/07 19:39:58
>>477
(・3・) エェー 2010年6月9日までまだまだあるから自分でやれYO!
ここを見ればスグだYO!
URLリンク(www.geekpage.jp)
479:デフォルトの名無しさん
07/08/07 22:17:29
[1] 授業単元:C
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:WINDOWS XP
[3.2] コンパイラ名とバージョン:bcc
[3.3] 言語: C
[4] 期限: 8月8日
480:デフォルトの名無しさん
07/08/07 22:21:35
>>479
スレリンク(tech板:681番)
481:デフォルトの名無しさん
07/08/07 22:50:58
>479
宿題スレと同じ?
向こうは少し条件足りてないけど。
int arr_min_pos(int arr[], int n)
{
int pos;
if(n==1) return arr[0] < 0 ? -1 : 0;
pos = arr_min_pos(arr, n-1);
return arr[n-1] < 0 || arr[n-1] > arr[pos] ? pos : n - 1;
}
482:デフォルトの名無しさん
07/08/29 12:59:49
言語:C
コンパイラ名とバージョン:ボーランド
OS:XP
問題:ユーザー関数の作成
再帰関数を使って、xのn乗を求めるプログラムを作成しなさい
プロトタイプ宣言:int power(int x,int n);
実行画面
文字列入力==>2
文字列入力==>0
値:1
文字列入力==>2
文字列入力==>3
値:8
文字列入力==>6
文字列入力==>4
値:1296
483:デフォルトの名無しさん
07/08/29 13:29:55
int power(int x,int n)
{
return n <= 1 ? x : x * power(x, n-1);
}
484:デフォルトの名無しさん
07/08/30 04:55:24
日本オワタな
485:ぼるじょあ ◆hZ8e4Wjqvw
07/08/30 22:19:11
>>483
(・3・) エェー 惜しいYO!
x=2 n=0
486:homoじょあ ◆5OLf4yFnuM
07/08/31 00:20:34
(・3・) エェー 久々に来たけどもみあがってないNE
487: ◆uWJL1MSv.M
07/09/01 23:19:03
[1] 授業単元: データ構造とアルゴリズム
[2] 問題文: ①Cell型のオブジェクトa,b,c,d,eを用意し、
それぞれvalueに10,20,30,40,50を設定し、
a→b→c→d→eと連結する。valueの値を順に出力しなさい。
② ①のプログラムに書き足し、オブジェクトcの次(オブジェクトd)を削除し、
valueの値を順に出力しなさい。次にオブジェクトaを削除し、
valueの値を順に出力しなさい。
③ ②のプログラムに書き足し、オブジェクトcの次にオブジェクトaを挿入し、
valueの値を順に出力しなさい。次に先頭にオブジェクトdを挿入し、
valueの値を順に出力しなさい。
④ ①のプログラムを双方向リストにし、valueの値を逆順に出力しなさい。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VisualC++.net
[3.3] 言語: C++
[4] 期限: 2007年9月3日まで
よろしくお願いします。
488:homoじょあ ◆5OLf4yFnuM
07/09/02 11:12:09
(・3・) エェー Cell型ってどんなんだYO
489:デフォルトの名無しさん
07/09/02 11:17:38
細胞に関するクラスじゃね?
490:homoじょあ ◆5OLf4yFnuM
07/09/02 11:23:08
(・3・) エェー そりは難しそうですNE
491:デフォルトの名無しさん
07/09/02 13:36:36
乾電池かも知れず。
492:デフォルトの名無しさん
07/09/02 14:02:41
直列に繋いで電圧を調べるのか
493:デフォルトの名無しさん
07/09/02 14:08:59
貨車かもしれんぞ
494: ◆uWJL1MSv.M
07/09/02 14:24:09
すいません。
セル
連結リストはセル (cell) というデータを繋げて作ります。
セルにはデータを格納する場所と、次のセルを指し示す場所から構成されます。
図でいうと、箱がひとつのセルを表していて、左側にデータを格納し、
右側に次のセルへの参照を格納します。
セルの型の定義
class Cell{
private:
Cell* next; //次のセルへのポインタ
int value; //値
public:
Cell(){next = NULL; value = 0;} //コンストラクタ
void setNext(const Cell* p){next = p;} //nextを設定する
void setValue(int a){value = a;} //valueを設定する
Cell* getNext(){return next;} //nextの値を得る
int getValue(){return value;} //valueの値を得る
…
};
495:デフォルトの名無しさん
07/09/02 15:08:55
なんだ。もうできてんじゃん
496:homoじょあ ◆5OLf4yFnuM
07/09/02 18:29:36
>>487
(・3・) エェー ①だけやってみたお
int main(){
Cell *list = new Cell();
Cell *header = list;
for(int i=1; i<=5; i++){
list->setNext(new Cell());
list->getNext()->setValue(i*10);
list = list->getNext();
}
while(header->getNext() != NULL){
header = header->getNext();
std::cout << header->getValue() << std::endl;
}
return 0;
}
497: ◆uWJL1MSv.M
07/09/02 20:58:11
ありがとうございます。
すいません、②、③、④もお願いします。
498:homoじょあ ◆5OLf4yFnuM
07/09/02 21:30:19
(・3・) エェー つーか①間違ってたお
int main(){
Cell *a, *b, *c, *d, *e;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setNext(b);b->setNext(c);c->setNext(d);d->setNext(e);
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);
Cell *header = a;
while(header != NULL){
std::cout << header->getValue() << std::endl;
header = header->getNext();
}
return 0;
}
499:homoじょあ ◆5OLf4yFnuM
07/09/02 21:42:41
(・3・) エェー ②ってこんなん?
int main(){
Cell *a, *b, *c, *d, *e, *header, *list;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setNext(b);b->setNext(c);c->setNext(d);d->setNext(e);
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);
header = a;
c->setNext(c->getNext()->getNext());
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
std::cout << std::endl;
header = header->getNext();
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
return 0;
}
500:homoじょあ ◆5OLf4yFnuM
07/09/02 21:47:59
(・3・) エェー ③・・なんか意図が違う気がしてきたお
int main(){
Cell *a, *b, *c, *d, *e, *header, *list;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setNext(b);b->setNext(c);c->setNext(d);d->setNext(e);
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);
header = a;
//②の処理
c->setNext(c->getNext()->getNext());
header = header->getNext();
//③で追加
a->setNext(c->getNext());
c->setNext(a);
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
std::cout << std::endl;
d->setNext(header);
header = d;
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
return 0;
}
501:homoじょあ ◆5OLf4yFnuM
07/09/02 21:52:53
(・3・) エェー そろそろ書き込みが規制される予感
④のクラスの変更
class Cell{
Cell *next;
Cell *front;
int value;
public:
Cell();
void setNext(Cell*);
void setFront(Cell*);
void setValue(int);
Cell* getNext();
Cell* getFront();
int getValue();
};
Cell::Cell(){next = NULL; front = NULL; value= 0;}
void Cell::setNext(Cell *next){this->next = next;}
void Cell::setFront(Cell *front){this->front = front;}
void Cell::setValue(int value){this->value = value;}
Cell* Cell::getNext(){return next;}
Cell* Cell::getFront(){return front;}
int Cell::getValue(){return value;}
502:homoじょあ ◆5OLf4yFnuM
07/09/02 22:00:00
(・3・) エェー ④
int main(){
Cell *a, *b, *c, *d, *e, *header, *list;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);
Cell *array[] = {NULL, a, b, c, d, e, NULL};
for(int i=1; i<=5; i++){
array[i]->setFront(array[i-1]);
array[i]->setNext(array[i+1]);
}
header = a;
list = header;
while(list->getNext() != NULL)list = list->getNext();
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getFront();
}
return 0;
}
503: ◆uWJL1MSv.M
07/09/03 01:35:15
助かりました。ありがとうございました。
504:デフォルトの名無しさん
07/09/08 20:37:58
この痛いやつのリアルアドレス求む
URLリンク(www.nicovideo.jp)
505:デフォルトの名無しさん
07/09/09 00:25:09
>>504
そんなもんTCP/IPバイブル読み尽くしたらすぐにわかるわ。
そんな努力もせんと、人に聞くな。何するつもりや。
506:homoじょあ ◆5OLf4yFnuM
07/09/09 02:18:05
(・3・) エェー 素晴らしい説明でしたお
507:デフォルトの名無しさん
07/09/13 09:15:37
授業単元:C言語
問題文(含コード&リンク):文字列を入力し、圧縮しながら他の文字列配列に格納しなさい
使用する主な標準関数:strlen()、sprintf()など
実行画面
入力文字列(m1)==>AAAAAAABBBCddEEEE####
圧縮(m2):@7A@3BC@2d@4E@5#
圧縮比:72.7%
環境
OS: Windows
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
508:デフォルトの名無しさん
07/09/13 10:02:28
>>507
マルチすんな
C/C++ に今答えを書き込んだけど消したくなった
509:507
07/09/13 10:16:30
>>508
m9(^Д^)プギャー
510:ぼるじょあ ◆hZ8e4Wjqvw
07/09/26 21:19:21
>>507
(・3・) エェー 暇だYO!
#include<stdio.h>
#include<string.h>
int main(void){
char m1[100+1], m2[100*3+1], *ptr=m2;
int m1_len, i;
printf("入力文字列(m1)==>");
scanf("%100s", m1);
m1_len=strlen(m1);
for(i=0;i<m1_len;i++) ptr+=sprintf(ptr, "@1%c", m1[i]);
printf("圧縮(m2):%s\n", m2);
printf("圧縮比:%.1f%%\n", strlen(m2)*100./m1_len);
return 0;
}
511:デフォルトの名無しさん
07/09/28 00:16:11
短!って思ったら、、ちょwww
もうPerlでいいよw
s/(.)\1+/"@".length($&).$1/ge
512:デフォルトの名無しさん
07/09/28 02:30:25
ぼるじょあへ挑戦状
君に花札のプログラムを作れるかな?
ルールは花合わせだ
おっと、無理ならやらなくてもいいんだぜ?
それじゃ、goodluck!
513:ぼるじょあ ◆hZ8e4Wjqvw
07/09/28 03:27:19
>>512
(・3・) エェー 挑戦ってことはAI同士の対戦ってことかYO!
514:デフォルトの名無しさん
07/09/28 14:44:39
->
を使ったプログラムを作れ
515:デフォルトの名無しさん
07/09/28 20:52:12
>>514
#include <stdio.h>
int main(void) {
printf("->");
return 0;
}
516:デフォルトの名無しさん
07/09/28 21:21:57
#include <stdio.h>
int main(void) {
int n = 0;
printf("%d", n-->0);
return 0;
}
517:デフォルトの名無しさん
07/10/06 18:44:59
[1] 授業単元:C++プログラミング
[2] 問題文(含コード&リンク):
「年(西暦)」「月」を入力したら,その月のカレンダーを表示するプログラムを作成しなさい。ただし,下記の条件を満たすものとする。
【条件】
(1)カレンダークラスを作成し,main関数でカレンダークラスの実体を生成し,カレンダークラス内のメンバ関数(show関数)を呼び出してカレンダーを表示する。
(2)カレンダークラスはカプセル化されていること。
(3)カレンダー表示には,年,月および曜日,日を表示すること。
(4)「閏年」「祝日」「節句」「二十四節気」の表記を可能にする。
(5)上記以外については自由に作成してよい。
[3] 環境
[3.1] OS: Windows VISTA or XP
[3.2] visual studio 2005
[3.3] 言語: C++
[4] 期限: 2007/10/7 23:00まで。
[5] その他の制限: 特になし
よろしくお願いします。