11/11/11 13:11:28.27
>>199
そんなこと関係ないぞ
201:デフォルトの名無しさん
11/11/11 13:13:31.92
>>199
てか、自分の思い違いを「世間ではそう教えてる」みたいな言い訳でごまかそうという方がおかしいだろ。
ちょっと齧ればNull終端じゃない文字列なんてあちこちのライブラリで使われてるぞ。
Null終端だけがCの文字列なんて教える講師はいないだろ。
202:デフォルトの名無しさん
11/11/11 13:15:16.59
スレ違い。他所でやれ。
203:デフォルトの名無しさん
11/11/11 13:18:35.09
>>202
>>158
ずっと宿題の話ですよ
204:デフォルトの名無しさん
11/11/11 13:23:38.56
「思い」だけぶちまけられても質問者には迷惑。
結論と根拠を明示すればいいだけの事。
205:デフォルトの名無しさん
11/11/11 13:25:38.75
設問が大雑把過ぎるんだな。
「実態」という言葉の解釈で答えに幅が出る。
206:デフォルトの名無しさん
11/11/11 13:26:08.38
>>204
>>180に言えよ。事の発端だろ。
207:デフォルトの名無しさん
11/11/11 13:33:16.96
>>205
>>157と>>162もセットで考えたら
NULL終端文字列についてで正解だろうな
208:デフォルトの名無しさん
11/11/11 14:03:18.24
strncpy() は NULL 終端を前提としてないよ
問題が大雑把だし、講師がちゃんと理解してるんだろうかって思う
ちゃんと『実態』を理解してたらこんな設問しないだろ
209:デフォルトの名無しさん
11/11/11 14:11:44.99
試験問題というのは設問者が求めている答えは何かを探るものであって
気の利いた解答を考えるものではないって、ワンバーグちゃんがいってただろ^^
ここはナル文字終端を持つchar配列って答えとけばいいんだよ
そして心のなかで「設問がクソだなぁ、ああこの人に学んでも何もエルモのないんだろうなぁ。セントエルモ」
って思っときゃいーんだよ。
210:デフォルトの名無しさん
11/11/11 14:13:19.30
宿題スレは、出題者のレベルに合わせて解答すれば、100点。
211:デフォルトの名無しさん
11/11/11 14:16:13.58
[1] 授業単元:プログラミング入門
[2] 問題文:秒数を与えると,それが何日何時間何分何秒にあた
るかを計算する関数
calctime(long sec, int *dp, int *hp, int *mp,
int *sp);
を作成せよ.例えば
calctime(100000, &d, &h, &m, &s);
として呼び出すとd=1, h=3,m=46,s=40 となる
(100,000 秒=1 日3 時間46 分40 秒).以下の実行例の
ように,関数の動作を確認できるmain 関数も作成しろ
実行例.秒数を入力してください:100000
100000 秒= 1 日3 時間46 分40 秒
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 11月14日 18:00
[5] その他の制限:
212:デフォルトの名無しさん
11/11/11 14:37:17.47
void calctime(long sec, int *dp, int *hp, int *mp, int *sp)
{
*sp = sec % 60; sec /= 60;
*mp = sec % 60; sec /= 60:
*hp = sec % 24; *dp = sec / 24;
}
213:デフォルトの名無しさん
11/11/12 00:01:18.29
>>177
30×30くらいでお願いします><
>>176
間違ってませんよ
214:デフォルトの名無しさん
11/11/12 00:15:58.15
>>174
URLリンク(codepad.org)
215:デフォルトの名無しさん
11/11/12 00:36:41.54
>>214
ありがとうございます><
ところでどうして長針を@、短針を*にされたのですか?
216:デフォルトの名無しさん
11/11/12 00:39:19.40
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):sinカーブを縦に描画するプログラムを作れ。0度から360度までの範囲を描画し、
縦軸と横軸も描画すること。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gccなのは確かなのですが、具体的には分かりません
[3.3] 言語: C
[4] 期限:2011年11月16日まで
[5]その他の制限:ポインタ使用不可
よろしくお願いします
217:デフォルトの名無しさん
11/11/12 00:41:38.89
>>215
その話を聞きたくば1000万円用意しろ
用意が出来たら写真うp!
218:デフォルトの名無しさん
11/11/12 00:44:00.91
>>217
嫌です(^q^)
219:デフォルトの名無しさん
11/11/12 01:13:37.71
>>216
main(){
puts("--*--");
puts(" | *");
puts("--*--");
puts("* | ");
puts("--*--");
}
220:デフォルトの名無しさん
11/11/12 04:47:04.02
1-3+5-7•••っていうのを20回繰り返すというプログラムを教えて下さい。
あれを20回繰り返すと答えは-20になります。それで式もちゃんと表示させなくては
いけないんです・・・つまり1-3+5-7•••=-20ってかんじです。出来れば<stdio.h>でfor
とifで組んでください。
221:デフォルトの名無しさん
11/11/12 05:10:38.29
>>220
URLリンク(codepad.org)
こんな時間だから答えちゃうけど
次からは>>1-2読んでテンプレ使おうな
222:デフォルトの名無しさん
11/11/12 13:06:03.64
>>216
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
#define DEG_RAD(x) (((x)*PI)/(180))
int main()
{
double d;
const int p = 30;
double s;
puts(" --------------------------------------------");
for(d = 0; d<370;d+=10){
s = sin(DEG_RAD(d));
s *=10;
if(d<=180){
if(d == 0 || d == 180)
printf("%*c%*c%c\n",p,' ',(int)s,' ','*');
else
printf("%*c%c%*c%c\n",p,' ','|',(int)s,' ','*');
}else if(180 < d ){
s = fabs(s);
if(d == 360)
printf("%*c%*c%c\n",p-(int)s,' ',(int)s,' ','*');
else
printf("%*c%c%*c\n",p-(int)s,' ','*',(int)s,'|');
}
}
return 0;
}
223:デフォルトの名無しさん
11/11/12 13:49:23.38
>>222
ありがとうございます!
224:デフォルトの名無しさん
11/11/12 13:55:24.64
>>219
出題の条件は満たしてる
出題の不備を問う意味で提出するのは面白いかもしれない
225:デフォルトの名無しさん
11/11/12 16:30:41.41
依頼者が問題の条件を見落としているか、書き忘れていそうな気がする。
226:デフォルトの名無しさん
11/11/12 22:48:21.79
[1] 授業単元:アルゴリズム
[2] 問題文:
重複順列についてです。
A~Gなどの7つ以上の要素から、6つ取り出して並べるときの、全ての組み合わせを出す。
例)AAAAAA,
AAAAAB,
AAAAAC,...
AAAABA,...
(実際に全て出さなくても、出すことができるコードが出来ていれば可)
[3] 環境
[3.1] OS:windows7
[3.2] コンパイラ名とバージョン:Visual C++ 2010 Express
[3.3] 言語:どちらでも可
[4] 期限:11月16日
[5] その他の制限:特にありません。
問題文として文章があったわけではないので、説明が分かりにくい部分がありましたら申し訳ありません。
よろしくお願いします。
227:デフォルトの名無しさん
11/11/12 23:10:26.88
>>226
#include <iostream>
#include <string>
using namespace std;
const string X("ABCDEFG");
const size_t L = 6;
void rep_perm(string &s)
{
if (s.length() == L) {
cout << s << endl;
} else {
for (size_t i = 0; i < X.length(); ++i) {
s += X[i];
rep_perm(s);
s.erase(s.end() - 1);
}
}
}
int main()
{
string s;
rep_perm(s);
return 0;
}
228:デフォルトの名無しさん
11/11/12 23:27:00.58
>>226
#define PATT 7
#define KETA 6
int main()
{
int n = 0;
int a[KETA+1] ={0};
while (1) {
int i;
int x;
n++; x = n;
for (i=0;i<KETA+1;i++){
a[i] = x % PATT;
x -= a[i]; x /= PATT;
}
if (a[KETA] == 1) break;
for (i=KETA-1;i>=0;i--) printf("%c",'A' + a[i]);
printf("\n");
}
return 0;
}
229:デフォルトの名無しさん
11/11/12 23:53:04.81
>>226
#include <stdio.h>
int main(void)
{
int i;
char str[] = "AAAAAAA";
for( ; ; ) {
printf("%s\n", str);
for(i = sizeof str - 2; ; i--) {
if(++str[i] <= 'F') break;
str[i] = 'A';
if(i == 0) return 0;
}
}
}
230:デフォルトの名無しさん
11/11/13 00:21:48.57
Boostのnext_combinationみたいに、
関数を呼び出す度に組み合わせを順に作り出す関数を設計して欲しい^o^
この関数、予めソートされた集合に対して適用すると、
ぐるっと一周した時点で戻り値が false となる。すごい^^
231:デフォルトの名無しさん
11/11/13 00:36:40.57
>>230
あるなら使えば?
232:デフォルトの名無しさん
11/11/13 01:34:13.19
Boost使ってるなら自分で実装しろよ
233:デフォルトの名無しさん
11/11/13 01:41:45.83
このスレの住人程度には実装は無理。
っていうか、Boostライブラリの中身を見てさえ理解出来ない。
234:デフォルトの名無しさん
11/11/13 01:43:38.89
>>233
中身を見て絶望しろ
235:デフォルトの名無しさん
11/11/13 01:46:07.59
それが宿題で出るといいね
236:デフォルトの名無しさん
11/11/13 05:27:45.69
>>226
#include <stdio.h>
int main(void)
{
int i, j, k, l, m, n;
char str[7] = {0};
for(i = 'A'; i <= 'G'; i++) {
str[0] = i;
for(j = 'A'; j <= 'G'; j++) {
str[1] = j;
for(k = 'A'; k <= 'G'; k++) {
str[2] = k;
for(l = 'A'; l <= 'G'; l++) {
str[3] = l;
for(m = 'A'; m <= 'G'; m++) {
str[4] = m;
for(n = 'A'; n <= 'G'; n++) {
str[5] = n;
printf("%s\n", str);
} } } } } }
return 0;
}
237:デフォルトの名無しさん
11/11/13 06:51:45.30
>>229
要素数と並べる数逆になってた
#include <stdio.h>
int main(void)
{
int i;
char str[] = "AAAAAA";
for( ; ; ) {
printf("%s\n", str);
for(i = sizeof str - 2; ; i--) {
if(++str[i] <= 'G') break;
str[i] = 'A';
if(i == 0) return 0;
}
}
}
238:デフォルトの名無しさん
11/11/13 07:00:14.93
>>226,236
どうせなら、
#include <stdio.h>
int main(void)
{
char str[7] = {0};
for(str[0] = 'A'; str[0] <= 'G'; str[0]++) {
for(str[1] = 'A'; str[1] <= 'G'; str[1]++) {
for(str[2] = 'A'; str[2] <= 'G'; str[2]++) {
for(str[3] = 'A'; str[3] <= 'G'; str[3]++) {
for(str[4] = 'A'; str[4] <= 'G'; str[4]++) {
for(str[5] = 'A'; str[5] <= 'G'; str[5]++) {
printf("%s¥n", str);
}}}}}}
return 0;
}
239:デフォルトの名無しさん
11/11/13 07:13:50.52
直接やると添え字の関係で誤差レベルだけどほんのちょっとだけ遅くなるかも
240:デフォルトの名無しさん
11/11/13 07:17:10.56
>>226
再帰で。
#include <stdio.h>
void func(char*s)
{
if(!*s) {
printf("%s¥n",s-6);
return;
}
for(*s='A'; *s<='G'; (*s)++)
func(s+1);
}
int main(void)
{
char s[]="AAAAAA";
func(s);
return 0;
}
241:デフォルトの名無しさん
11/11/13 07:29:14.09
>A~Gなどの7つ以上の要素から
などの
とある以上要素をどう入力するかの問題を含むのではないか。
242:デフォルトの名無しさん
11/11/13 07:55:47.24
>>241
どんな要素をだね。
243:デフォルトの名無しさん
11/11/13 08:03:51.59
>>226,241
これならOKか?
#include <stdio.h>
void func(char *s, int i)
{
static char x[20] = {};
char *p;
if (i < 6)
for (p = s; *p; p++) {
x[i] = *p;
func(s, i + 1);
}
else
printf("%s¥n", x);
}
int main(void){
char s[20];
printf("input = ");
scanf("%s", s);
func(s, 0);
return 0;
}
244:226
11/11/13 12:47:17.09
>>227,>>228,>>229,>>236,>>237,>>238,>>240,>>243
みなさんありがとうございます。
ちなみに、後付になってしまい申し訳ないのですが、
更にこれの結果をテキストファイルなどで、1パターン1行として
出力するにはどういったコードを追加すれば良いか、教えていたいてもよろしいでしょうか。
よろしくお願い致します。
245:デフォルトの名無しさん
11/11/13 12:49:14.33
>>244
このまま、出力をファイルにリダイレクト
246:デフォルトの名無しさん
11/11/13 14:09:41.63
[1] 授業単元:プログラミングと実習2
[2] 五目並べの石を並べる関数を作りる
条件
1.読み込み部分を関数化する。場所の指定は、行(row,大文字)、
列(column,小文字)の順として連続した半角アルファベットとする。
例:Aa↓,Gg↓(↓はEnter)とする。
読み込んだ結果はA~Zが0~25,a~zが0~25とする
出力例Bg
row=1
columnp=6
3] 環境
[3.1] OS:windowsXP
[3.2] コンパイラ名とバージョン: Visual C++ 2008 Express
[3.3] 言語:C言語
[4] 期限:11月15日
[5]その他の制限:アルファベットを整数値に変換して*rowp,*columnpに
格納し*rowo,*columnpの値を評価するプルグラムを作る
どうかよろしくお願いします
247:デフォルトの名無しさん
11/11/13 19:19:06.60
>246
rowp, columnpってポインタにする必要ある?
248:226
11/11/13 19:51:56.70
>>245
出来ました。
ありがとうございました。
249:デフォルトの名無しさん
11/11/13 20:18:11.15
>>247
そういう課題なんだろ
得てして、そういう制限された課題は急に難易度が上がりがち
250:デフォルトの名無しさん
11/11/13 20:47:14.17
文字列を2つの整数にする関数を作れって話だろ
251:デフォルトの名無しさん
11/11/14 00:29:42.21
>>246
おまっとさんでした
URLリンク(codepad.org)
252:デフォルトの名無しさん
11/11/14 00:32:39.29
>>251
[2]
253:デフォルトの名無しさん
11/11/14 01:45:16.38
[1] 授業単元:計算機アルゴリズムⅠ
[2] 問題文(含コード&リンク):
設問1-1
変数iとポインタ変数p(「int i=8;int *p;p=&i;」のように宣言と代入する)に対し「printf("変数iの?は%X\n",p);printf("変数?の値は%d\n",*p);」を実行して値を表示するプログラムを作成しなさい。
但し「?」を適切な文字(列)に置換すること。ただし、%Xは16進数で表示を、%uは符号なし整数で表示を意味する。
設問1-2
2つの変数n1,n2(「int n1=24, n2=45;」と宣言する)の値を、それぞれを指すポインタnp1,np2(「int *np1=&n1, *np2=&n2;」と宣言する)を用いて交換した後、「printf("n1=%d,n2=%d\n",n1,n2);」で交換後のn1とn2の値を表示するプログラムを作成しなさい。
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:[2011年11月18日8:00まで]
[5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文
繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数
条件分岐if文、要素番号idx使用の書換、データの入れ替え
条件分岐・論理演算子を用いたif文の条件、if文、else if文
switch文、ポインタ変数・演算子*と&は習いました。
宜しくお願いします。
254:デフォルトの名無しさん
11/11/14 02:15:28.47
>> 2つの変数n1,n2の値を、それぞれを指すポインタnp1,np2を用いて交換
謎の仕様だ
255:デフォルトの名無しさん
11/11/14 02:22:31.80
>>254
変数n1はポインタnp1を使って交換する
変数n2はポインタnp2を使って交換するって事だと思います。
256:デフォルトの名無しさん
11/11/14 02:41:30.94
>>253
設問1-2
URLリンク(codepad.org)
257:デフォルトの名無しさん
11/11/14 02:48:32.86
>>256
設問1-1もお願いします。
258:246
11/11/14 05:02:04.57
>>251
大変参考になりました
ありがとうございます
259:デフォルトの名無しさん
11/11/14 05:06:07.27
>>253
設問1-1
URLリンク(ideone.com)
260:デフォルトの名無しさん
11/11/14 11:59:23.36
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):
sinのグラフを次のように描くプログラムを作成せよ
ただしsin90°とsin270°に対するアスタリスクの数は20個とする。
URLリンク(beebee2see.appspot.com)
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: visual studio 2010
[3.3] 言語: C
[4] 期限: [2011.11.3]
[5] その他の制限:
よろしくお願いいたします。
261:デフォルトの名無しさん
11/11/14 12:26:14.30
>>260
#include <stdio.h>
#include <math.h>
int main(void)
{
int i, j;
int x, zero=20;
for(i=0;i<=360;i+=15)
{
x=20.001*sin(i*M_PI/180);
x+=zero;
for(j=0;j<zero && j<x;j++) printf(" ");
for(;j<zero || j<x;j++) printf("*");
printf("\n");
}
return 0;
}
262:片山博文MZ
11/11/14 16:30:05.35
ふふふ、諸君はわたくしに勝てるかな。。。
263:デフォルトの名無しさん
11/11/14 19:13:54.88
>>256
>>259
有難う御座います
264:デフォルトの名無しさん
11/11/15 12:59:42.31
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):斜め上方に初速度v0(=50),入射角theta(=60)で小球を投射した。
小球の軌道(x,y)を計算してください。ただし、y<0になったとき計算を停止してください。
なお、軌道(x,y)の計算部分を一つの関数(ユーザ定義関数)で計算し、
計算結果二つをmain関数に返すようにしてください。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語:C
[4] 期限:11月19日まで
[5] その他の制限:x,yにはアドレスを用いるそうです。
問題文がわかりにくいかもしれませんがよろしくお願いします。
265:デフォルトの名無しさん
11/11/15 13:23:24.38
>>264
明日でいいならやってみようと思います。
266:デフォルトの名無しさん
11/11/15 13:23:58.75
>>264
問題文を端折ってねぇか?
重力加速度gはどうすんの?
軌道を計算しろっていうのはグラフとして軌道を表示しろってことか?
与えられた時刻tにおける小球の位置(x、y)を計算して表示しろってことだと思うけど、
計算結果二つってどういう意味?
計算結果はx座標、y座標の組(x、y)一つしかないように思うけど。
267:デフォルトの名無しさん
11/11/15 13:35:40.59
19日まで時間があります。
1、回答者が試作を公開する。
2、質問者が悪い部分を指摘する。
3、完全な製品が完成する。
1と2を繰り返すことで3に到達できるのではないでしょうか?
268:デフォルトの名無しさん
11/11/15 13:39:17.47
>>264
できたよ
URLリンク(codepad.org)
269:デフォルトの名無しさん
11/11/15 13:39:35.46
じゃあ関数プロトタイプ
int hoge(double *x, double *y, double t);
270:デフォルトの名無しさん
11/11/15 13:53:26.58
>>268
仕事早いな。
というか、それでいいのか?
Message = ((>>264 == >>267 || >>264 == >>269 ) ? ("情報は小出しにしない方が・・・") : ("(#^ω^)"));
271:デフォルトの名無しさん
11/11/15 14:16:26.03
vxとvyはcosとsin使って分けんじゃねーの?
272:デフォルトの名無しさん
11/11/15 14:27:51.49
初速v0をx方向の成分とy方向の成分に分けるのは確かにそうだけど。
問題文にない重力加速度Gを勝手に定義して使っちゃってるし。
問題文がアレな>>264の質問にも問題あるけど。
273:デフォルトの名無しさん
11/11/15 14:41:22.94
>>264
修正しました
URLリンク(codepad.org)
274:デフォルトの名無しさん
11/11/15 14:54:59.40
>>264
URLリンク(ideone.com)
適当に作ったやつ。
というか、これで合っているのか不安になってきた。
物理なんて高校卒業して以来ほとんど勉強してない(;´Д`)
問題文に重力加速度gについて書かれていないのがおかしい。
どこかに「重力加速度gはXXXXとする」等の文があるはず。
275:デフォルトの名無しさん
11/11/15 15:08:43.93
g=9.80665m/s^2じゃだめなん
書いてない場合は勝手に常識から外れない範囲内で決めていいって事だろ
276:デフォルトの名無しさん
11/11/15 15:14:42.57
y = v0t + 1/2gt^2 であることを忘れていた。
>>273は double vy = vy0 - 1 / 2 * G * t; のように修正で。
277:デフォルトの名無しさん
11/11/15 15:15:15.82
まあ、勝手に決めていいと思うけど。
というか、この場合勝手に決めないと問題解けないけど。
いやらしい講師なら「おいお前、勝手に決めるんじゃねぇ!」というのもありえる。
278:デフォルトの名無しさん
11/11/15 15:40:47.14
ふと疑問に思ったんだけど、math.h の cos/sin って単位はラジアンですよね?
double vx0 = v0 * cos( θ * 2 / π ); は double vx0 = v0 * cos( θ * π / 180);
の誤りでは? ・・・あれ????俺の方が間違ってる?うーん????
279:デフォルトの名無しさん
11/11/15 15:40:49.18
>>276
横槍すまんけど -1 / 2 ってゼロになってしまわね?
-1.0 / 2.0ならわかるけど
確か乗算演算子と除算演算子の評価順は左から右だよね?
もちろん - は優先度が低いので後回しにされる
280:デフォルトの名無しさん
11/11/15 15:43:06.73
なっちゃうね。まぁ、そこはほら、いろいろ^^
281:デフォルトの名無しさん
11/11/15 15:45:58.63
いろいろ間違ってるねぇw
282:デフォルトの名無しさん
11/11/15 16:08:59.53
プログラムも物理も駄目とは... これ本気で駄目出ししたら何か所ぐらいあるかなw
283:デフォルトの名無しさん
11/11/15 16:29:31.05
こういう簡単な問題ならプログラムの実行結果の一部と
自分で手計算した結果を比較してみてからうpするのが筋だな
間違った答えを出すプログラムをうpする位なら何もしない方がいい
迷惑を掛けるだけだ
284:デフォルトの名無しさん
11/11/15 16:38:12.61
どもども、ダメだし勉強になります^^
>迷惑を掛けるだけだ
迷惑かかるのは質問者だけだからいいでしょw
285:デフォルトの名無しさん
11/11/15 16:42:29.99
>>283
ごめんなさい。
>>274は無かった事にして下さい。
286:デフォルトの名無しさん
11/11/15 16:42:30.15
>>284
良くねーよ
他のスレならまだしも、このスレの存在意義を考えてみろ
287:デフォルトの名無しさん
11/11/15 16:44:21.31
>>286
しらねw
他の人がどんなつもりでこのスレにいるのかは知らないけど
自分は自分の勉強のために回答しているわけだし^^
いやならスルーすればぁ?
288:デフォルトの名無しさん
11/11/15 16:45:37.08
このスレに投稿する連中は宿題めんどうだから丸投げしてきてるだけだしな。
289:デフォルトの名無しさん
11/11/15 17:08:53.82
講師がわからない場合掲示板で聞くことって言うからここで聞いただけだよ。
290:デフォルトの名無しさん
11/11/15 17:34:44.51
>>287
お前みたいな奴はこのスレに来るなカス
291:デフォルトの名無しさん
11/11/15 17:57:17.65
>>285
合ってると思うが?
292:デフォルトの名無しさん
11/11/15 17:59:28.48
>>291
合ってますか。どうもありがとう!
人の答えと違っていると自分が間違っているんじゃないかと思う今日この頃。
293:デフォルトの名無しさん
11/11/15 18:11:37.68
>>292
初速50m/secとすると、(問題には単位がないので勝手に想定)
概算で初速の垂直方向は、50*sin60°≒43.3m/sec
G=9.8として滞空時間は、2*43.3/9.8≒8.84sec
水平方向には、8.84*50*cos60°≒221m
垂直方向には最高、G*(8.84/2)*(8.84/2)/2≒95m
294:デフォルトの名無しさん
11/11/15 18:15:24.99
>>293
大体は合ってるっぽいですね。
わざわざ計算してくれてどうもありがとうございます。
295:デフォルトの名無しさん
11/11/15 18:41:23.23
>>290
はいはい、カスカス^^
じゃあお前が答えてやればぁ?w
平日の昼間から勉強にもならない問題を解いて何が楽しいのだw
296:デフォルトの名無しさん
11/11/15 18:43:45.17
ここはニートと仕事のない派遣が
上から目線で問題を解いて自己満足に浸るスレですよ?
297:デフォルトの名無しさん
11/11/15 18:58:01.01
ここで誰も解かなくても問題丸投げにしたやつの単位が落ちる程度で誰も困らないんだから
つまらないことで喧嘩するなよ
298:デフォルトの名無しさん
11/11/15 19:09:01.54
>>294
数値積分ではないのでその手の誤差はないけど、時間刻みが0.01だから、
水平到達距離とかはおおざっぱに初速度×時間刻み = 50 *.0.01 = 0.5(m)
程度は値がずれる可能性があるよね。
しかし初速度50m/sって、例えばテニスのサーブとかそんな感じ?
空気抵抗がない状態で割と上向きに打ったら200mぐらいは飛ぶとw
299:デフォルトの名無しさん
11/11/15 19:29:45.22
[1] 授業単元:newとdeleteの確認
[2] 問題文(含コード&リンク):仕様:newとdeleteの確認 下記の基底クラスから、3パターンの別クラスを派生させ、Action関数などをオーバーライドし、各クラス独自の振る舞いができるようにする。
・CBaseMonsterクラス
プロパティprotected 整数型 m_atk
メソッド コンストラクタ //m_atkを適宣初期化void Action(void) //行動制御関数
・void CBaseMonster::Action(void)のアルゴリズム50%の確率で「攻撃した!ダメージは99」と表示。99にはm_atkを表示。50%の確率で「防御した!」と表示。
アクション関数をオーバーライドなお、プログラム起動後、どのクラスのモンスターを生成するのかをメニューから選択できるようにし、生成したモンスターのAction()を20~30回程度繰り返し呼び出しし、想定した行動をしているか確認する。
派生したクラスについては、Action()のアルゴリズムを含めて、全て自由に追加修正して構わない。プログラムを終了する前に、newで生成したインスタンスを吐きすることを忘れないように。
動作イメージ
------------------------------------------------------------
|プログラムスタート
|1:基本モンスター
|2:ゴブリン
|3;スライム
|4:ドラゴン
|>>どのモンスターを生成しますか?
|>>4 ←選択されたインスタンスをnewで生成し、Actionを繰り返し呼び出す。
|ドラゴンは炎を吐いた!ダメージ540
|ドラゴンはじっと身構えている
|ドラゴンは炎を吐いた!ダメージ540
|ドラゴンは攻撃した!ダメージ540
| :
| :
|プログラム終了。
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Microsoft Visual Studio 2008
[3.3] 言語: C++
[4] 期限: 2011年11月19日13:00まで
[5] その他の制限:お手数ですが、コメントのほうお願いします。
300:デフォルトの名無しさん
11/11/15 21:55:36.22
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):符号無し整数x を右にn ビット回転した値を返す関
数rrotate と,左にn ビット回転した値を返す関数
lrotate
unsigned rrotate(unsigned x, int n)
unsigned lrotate(unsigned x, int n)
を作成せよ
*関数はprint_bits 関数を利用すること
<実行例>
非負の整数を入力してください:34567
何ビット回転しますか:4
回転前= 1000011100000111
右回転= 0111100001110000
左回転= 0111000001111000
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語:C
[4] 期限:11月16日まで
[5]
301:デフォルトの名無しさん
11/11/15 22:53:23.99
>>300
#include <stdio.h>
void print_bits(const char *msg, const int val)
{
int i;
printf("%s", msg);
for(i = siezof(int); i; i--) printf("%d", val & i);
printf("\n");
}
unsigned int rrotate(unsigned x, int n){return((x >> (sizeof(int) - n)|(x << n));}
unsigned int lrotate(unsigned x, int n){return((x << (sizeof(int) - n)|(x >> n));}
int main(void)
{
unsigned int val,lr;
printf("非負の整数を入力してください:"); scanf("%d", val);
printf("何ビット回転しますか:"); scanf("%d", lr);
print_bits("回転前=", val));
print_bits("回転前=", rrotate(val, lr)));
print_bits("回転前=", lrotate(val, lr)));
return(1);
}
こんな感じかな?
エラーあったら直しておいて。
302:デフォルトの名無しさん
11/11/15 23:08:37.78
>>301
全部が 回転前 だった。
2回目の回転前→右回転
3回目の回転前→左回転
にそれぞれ変更しといて。
303:デフォルトの名無しさん
11/11/15 23:13:33.20
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(iup.2ch-library.com)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2011年11月17日
[5] 問題に書いてある通りです。
よろしくお願いします。
304:デフォルトの名無しさん
11/11/15 23:40:24.76
>>303
delByName() も findByName() も削除関数って書いてるなw
findByName() が検索関数ならば戻り値が void じゃ駄目だし...
305:デフォルトの名無しさん
11/11/15 23:52:34.66
>>304
100万回読んで恋
306:デフォルトの名無しさん
11/11/15 23:55:03.52
>>299
これ、基底クラスに何かを追加して良いとは書いてないけど、
最低ゲイ、virtual ~CBaseMonster() がないと、
new した派生クラスを delete する時に面白いことになりかねなくない?
まあ、派生クラスにデータメンバ持たせなければいいんだけど…。
307:303
11/11/15 23:56:02.93
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(iup.2ch-library.com)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2011年11月17日
[5] 問題に書いてある通りです。
問題文にミスがありましたので訂正版をうpしました。
よろしくお願いします。
308:デフォルトの名無しさん
11/11/16 01:26:25.37
>>301
sizeof(int) * 8
309:デフォルトの名無しさん
11/11/16 01:36:47.88
>>308
…ビット数に変更し忘れとるw
指摘thx
310:デフォルトの名無しさん
11/11/16 01:40:38.53
>>301
ゴミすぎる
質問者にはふさわしいのかもしれんがw
311:デフォルトの名無しさん
11/11/16 01:43:29.35
>>310
コードの提示してみたら?
312:デフォルトの名無しさん
11/11/16 01:45:06.68
>>311
>>301 の要訂正箇所数えてみなよ
313:デフォルトの名無しさん
11/11/16 01:49:26.71
>>307
URLリンク(codepad.org)
314:デフォルトの名無しさん
11/11/16 02:01:29.90
>>313
ビット操作を使用する理由が判らん
315:デフォルトの名無しさん
11/11/16 02:05:47.71
>for(i = siezof(int); i; i--) printf("%d", val & i);
こんなひどいのは滅多に見れない
316:デフォルトの名無しさん
11/11/16 03:05:10.30
for(i = siezof(int)*8 - 1; i >= 0; i--) printf("%d", val & (1 << i));
の間違いじゃなかろうか?
317:デフォルトの名無しさん
11/11/16 03:29:39.32
それで実行してみろw
318:デフォルトの名無しさん
11/11/16 03:31:22.34
>>317
ああ、そうだね。間違ってるね。俺もアホだw
319:デフォルトの名無しさん
11/11/16 05:26:06.06
>>301
ゴミみたいなソース書くな
実行結果も間違ってるし
>エラーあったら直しておいて。
エラーだらけじゃボケ
>>300
URLリンク(codepad.org)
intの大きさは環境依存なので出題とは違う出力結果になるかもしれんが
少なくともビットの出力は正しい
320:307
11/11/16 06:06:32.97
>>313
ありがとうございます。
できればビット操作を使用しない方法を教えてほしいです。
321:デフォルトの名無しさん
11/11/16 06:48:09.86
>>314
findNameやらを作りたかっただけ
戻り値で複数の組み合わせの意味を持たせる方法ってビット以外でどうすればいいかなあ
322:デフォルトの名無しさん
11/11/16 07:20:16.77
>>307
住所録に何故住所データがないんだ。
323:デフォルトの名無しさん
11/11/16 07:47:43.42
>>322
ファンレターなら学校宛でお願いします
324:デフォルトの名無しさん
11/11/16 08:53:01.88
符号付きintのシフトは
§6.5.7.3 The integer promotions are performed on each of the operands. The type of the result is
that of the promoted left operand. If the value of the right operand is negative or is
greater than or equal to the width of the promoted left operand, the behavior is undefined.
つまり負の数をシフトしたりintの幅以上シフトした場合の動作は未定義、つまり鼻から悪魔
でもこれを気にするとプログラムが組めなくなってしまう
325:デフォルトの名無しさん
11/11/16 08:59:48.97
それって n << -1 とか n << (sizeof(int) * 8 + 1) が未定義ってことじゃないの?
326:デフォルトの名無しさん
11/11/16 09:06:47.42
引用するならこっちだよね
§6.5.7.5 The result of E1 >> E2 is E1 right-shifted E2 bit positions. If E1 has an unsigned type
or if E1 has a signed type and a nonnegative value, the value of the result is the integral
part of the quotient of E1 / 2E2. If E1 has a signed type and a negative value, the
resulting value is implementation-defined.
環境依存って事で
327:デフォルトの名無しさん
11/11/16 11:57:09.65
sizeof(unsigned) * CHAR_BITと、unsignedの実際の有効ビット数が異なる可能性もあるね
328:デフォルトの名無しさん
11/11/16 12:17:16.88
【質問テンプレ】
[1] 授業単元:多次元配列
[2] 問題文(含コード&リンク): 要素が整数からなる3x3の表データを scanf()関数を用いて読み込み、対角線を軸と して要素を入れ替えた表を表示するプログラ ムを作りなさい。[3] 環境
[3.1] OS: MaxOS
[3.2] コンパイラ名とバージョン: egg 10.6.8
[3.3] 言語: C
[4] 期限:2011年11月19日(土)
[5] その他の制限: while, if, for, 配列まで
(例)
1 2 3 1 4 7 9 6 3
4 5 6 → 2 5 8 と 8 5 2
7 8 9 3 6 9 7 4 1
329:デフォルトの名無しさん
11/11/16 12:49:20.93
>>328
#include<stdio.h>
int main(void)
{
int i,j;
int a[3][3];
scanf("%d",&a[0][0]); scanf("%d",&a[0][1]); scanf("%d",&a[0][2]);
scanf("%d",&a[1][0]); scanf("%d",&a[1][1]); scanf("%d",&a[1][2]);
scanf("%d",&a[2][0]); scanf("%d",&a[2][1]); scanf("%d",&a[2][2]);
printf("%d ", a[0][0]); printf("%d ", a[1][0]); printf("%d¥n",a[2][0]);
printf("%d ", a[0][1]); printf("%d ", a[1][1]); printf("%d¥n",a[2][1]);
printf("%d ", a[0][2]); printf("%d ", a[1][2]); printf("%d¥n",a[2][2]);
printf("¥n");
printf("%d ", a[2][2]); printf("%d ", a[1][2]); printf("%d¥n",a[0][2]);
printf("%d ", a[2][1]); printf("%d ", a[1][1]); printf("%d¥n",a[0][1]);
printf("%d ", a[2][0]); printf("%d ", a[1][0]); printf("%d¥n",a[0][0]);
return 0;
}
330:デフォルトの名無しさん
11/11/16 12:50:30.94
>>328
URLリンク(ideone.com)
331:デフォルトの名無しさん
11/11/16 12:52:48.26
#include <stdio.h>
int main(void)
{
int a[3][3], i, j;
for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) scanf("%d", a[i] + j);
for(i = 0; i < 3; i++) {
for(j = 0; j < 3; j++) printf("%d ", a[j][i]);
printf("\n");
}
printf("\n");
for(i = 0; i < 3; i++) {
for(j = 0; j < 3; j++) printf("%d ", a[2 - j][2 - i]);
printf("\n");
}
return 0;
}
332:デフォルトの名無しさん
11/11/16 13:15:49.94
>>306
299です。すいませんよろしくお願いします。
333:デフォルトの名無しさん
11/11/16 13:29:18.60
[1] プログラミング
[2] 下記のような構造を持ったデータが、std::string data; の中に格納されています。
stlやboostの正規表現、構文解析等を利用して
<div class="block">~</div> 内のブロック毎に
<p>タグ内にある複数アイテムの情報(タイトル、URL)を摘出し、1つの変数に集約してください。
※blockの数やアイテムの情報(タイトルやURL)は変動する可能性があります。
[3] Windows / MSVC 10.0 / C++
[4] なるべく3日以内に
[5] stl, boost 1.47.0 使用可能 / アイテム用独自クラスやmap、vector等使用に関して制限ありません
よろしくお願いします
------
<!DOCTYPE HTML PUBLIC...
<html>
...
<div class="block">
<p class="first"><a href="URLリンク(dummy)" target="main">Title 1</a></p>
<p><a href="URLリンク(dummy)" target="main">Title 2</a></p>
<p><a href="URLリンク(dummy)" target="main">Title 3</a></p>
<p><a href="URLリンク(dummy)" target="main">Title 4</a></p>
</div>
...
<div class="block">
<p class="first"><a href="URLリンク(dummy)" target="main">Title 5</a></p>
<p><a href="URLリンク(dummy)" target="main">Title 6</a></p>
<p><a href="URLリンク(dummy)" target="main">Title 7</a></p>
<p><a href="URLリンク(dummy)" target="main">Title 8</a></p>
</div>
...
</html>
334:デフォルトの名無しさん
11/11/16 15:06:38.44
PHP使ったらすぐに解けそうな問題だな
regex使えるから結構簡単に行けるかも
335:デフォルトの名無しさん
11/11/16 15:51:40.76
[1] 授業単元:楽しいプログラミング
[2] 問題文(含コード&リンク): 以下の実行例のように,三角形の2 辺の長さとその2
辺のなす角(0~180[deg])を入力すると,もう1 辺の
長さと,三角形の面積を表示するプログラムを作成せ
よ.π = 3.14159265 とする.
[3.1] OS: linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限:2011年11月17日 9:00まで
[5] その他の制限: while, if, for, 配列まで
例
三角形の2 辺の長さを入力してください。
辺1:-3.0
正の値を入力してください。辺1:3.0
辺2:6.0
2 辺のなす角度[deg] を入力してください:200.0
0<角度[deg]<180 の値を入力してください。30.0
もう1 辺の長さ= 3.717941
三角形の面積= 4.500000
336:デフォルトの名無しさん
11/11/16 16:14:54.59
#include <stdio.h>
#include <math.h>
int main(void) {
double a, b, deg, pi = 3.14159265;
printf(" 三角形の2 辺の長さを入力してください。\n");
for( ; ; ) {
printf("辺1:");
scanf("%lf", &a);
if(a > 0) break;
printf("正の値を入力してください。"); }
for( ; ; ) {
printf("辺2:");
scanf("%lf", &b);
if(b > 0) break;
printf("正の値を入力してください。"); }
printf("2 辺のなす角度[deg] を入力してください:");
for( ; ; ) {
scanf("%lf", °);
if(0 < deg && deg < 180) break;
printf("0<角度[deg]<180 の値を入力してください。"); }
printf("もう1 辺の長さ= %f\n", sqrt(a * a + b * b - 2 * a * b * cos(deg / 180 * pi)));
printf("三角形の面積= %f\n", a * b * sin(deg / 180 * pi) / 2);
return 0;
}
337:デフォルトの名無しさん
11/11/16 16:17:53.83
>>335
URLリンク(ideone.com)
338:デフォルトの名無しさん
11/11/16 16:18:37.14
>>299
どちらでもお好きな方でどうぞ。
URLリンク(codepad.org)
URLリンク(codepad.org)
339:デフォルトの名無しさん
11/11/16 16:19:05.50
間違えた
こっちで
URLリンク(ideone.com)
340:デフォルトの名無しさん
11/11/16 16:22:47.75
何度もすまね
URLリンク(ideone.com)
341:デフォルトの名無しさん
11/11/16 16:51:30.94
[1] 授業単元:C言語基礎
[2] 問題文(含コード&リンク): 20×20程度のエリアを作り
その中でキャラクターを動かすプログラムを作れ。
移動キーの割当
↑:ジャンプ
→:右へ移動
← : 左へ移動
[3.1] OS: windows7 32bit
[3.2] コンパイラ名とバージョン: bcc5.11
[3.3] 言語: C
[4] 期限:2011年11月18日
[5] その他の制限: できるだけ簡単なプログラムでお願いします。
例
■■■■■■■■■■■■■■■■■■■■
(・∀・) ←動かすキャラ
| |
■■■■■■■■■■■■■■■■■■■■
342:デフォルトの名無しさん
11/11/16 17:23:28.24
[1] 授業単元:楽しいプログラミング
[2] 問題文(含コード&リンク): 以下の実行例のように,三角形の2 辺の長さとその2
辺のなす角(0~180[deg])を入力すると,もう1 辺の
長さと,三角形の面積を表示するプログラムを作成せ
よ.π = 3.14159265 とする.
[3.1] OS: linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限:2011年11月17日 9:00まで
[5] その他の制限: while, if, for, 配列まで
例
三角形の2 辺の長さを入力してください。
辺1:-3.0
正の値を入力してください。辺1:3.0
辺2:6.0
2 辺のなす角度[deg] を入力してください:200.0
0<角度[deg]<180 の値を入力してください。30.0
もう1 辺の長さ= 3.717941
三角形の面積= 4.500000
343:デフォルトの名無しさん
11/11/16 18:38:46.71
>>342
>>335-337
344:デフォルトの名無しさん
11/11/16 19:35:25.71
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク): 3問 URLリンク(ideone.com)
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 今日午後8:15まで
[5] その他の制限: 基礎の基礎なので、難しいプログラミングは含まれていないと思います。ついでに説明も付け加えてくださると助かります。
時間がないですが、よろしくお願いします。
345:デフォルトの名無しさん
11/11/16 20:28:00.06
>>344
帰納じゃなくて再帰じゃね?
346:デフォルトの名無しさん
11/11/16 20:33:48.99
>>345
再帰、だと思います。
英語をそのまま日本語にしたので、正確な呼称がわからなくて、帰納と訳してました。
ありがとうございます。
347:デフォルトの名無しさん
11/11/16 21:16:38.36
>>338
2個目はC++11だろ
コンパイルエラーだらけ
348:345
11/11/16 21:51:31.38
>>344
遅れちゃいるけど、
URLリンク(ideone.com)
入力値のチェックは入れてないので、適宜修正してくださいな。
349:デフォルトの名無しさん
11/11/16 21:53:33.90
>>344
出遅れたけど。
URLリンク(ideone.com)
350:デフォルトの名無しさん
11/11/16 22:49:14.14
>>320
URLリンク(codepad.org)
351:デフォルトの名無しさん
11/11/16 23:00:39.45
>>347
うん。もともと二個目は出題の要求に従ってない部分があるし。
無理やり従わせたためにCBaseMonsterクラスの派生クラスにおけるAction関数が無意味だし、
スマポ使えばすむところをこれまた無理やり従わせるために new delete にしてるし
あと、UML図書かないで鼻ほじりながら脳内仕様で作ったから設計があやしいw
どっちにしても二個目は宿題としては提出できないので一個目で。
こっちは出題の要求通り(のはず)。
352:デフォルトの名無しさん
11/11/17 00:48:48.87
>>350
ありがとうございます!
353:デフォルトの名無しさん
11/11/17 04:42:32.57
>>346
もしかして外国の学校に通ってる人? だったら大変だね。
一般的には recursion -> 再帰 induction -> 帰納 かなと。
あと偶数と奇数が逆? odd -> おかしい、奇妙な
354:デフォルトの名無しさん
11/11/17 04:44:36.15
英語の問題ならそのまま書いてくれた方がいいな
355:デフォルトの名無しさん
11/11/17 17:41:06.65
[1] 授業単元: プログラミング基礎 (ポインタと関数)
[2] 問題文(含コード&リンク): nxが指す整数の値を2乗する関数
void sqr(int *nx)を作成せよ
例えば、num =3 に対して関数sqrを呼び出すと、num=9となる。
関数の動作を確認出来るmain関数も作成すること
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 11月18日9:00まで
[5] その他の制限:
実行例,
整数を入力してください:3
その値の2乗しました :9
356:デフォルトの名無しさん
11/11/17 17:59:43.63
>>355
URLリンク(codepad.org)
357:デフォルトの名無しさん
11/11/17 19:52:54.65
[1] 授業単元: 実数型変数の精度
[2] 問題文(含コード&リンク):
以下の部分の処理(意味)の把握
*((unsigned int *)&a)・・・・・・・・aはfloat型変数
[3] 環境
[3.1] OS:unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: c
[4] 期限: 11月17日 22:00 まで
358:デフォルトの名無しさん
11/11/17 20:16:31.83
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): アルファベットと空白からなる文字列を処理する以下のような関数を作成せよ。なお各関数は処理が成功したときに1、失敗したときに0を返すものとする。
(1) 先頭からインデックスpで指定される文字までを反転させる関数int reverse(char *s, int p)を作成せよ。例:
char s[] = "abc defg";
reverse(s, 3);
printf("%s¥n", s); // -> " cbadefg"
(2) インデックスpとqで指定される範囲の文字を反転させる関数int reverse2(char *s, int p, int q)を作成せよ。例:
char s[] = "ab cdefg";
reverse2(s, 4, 7);
printf("%s¥n", s); // -> "ab cgfed"
(ヒント: (1)で作った関数が応用できる?)
(3) 単語(空白で区切られた文字)の順序を反転する関数int reverse_word(char *s)を作成せよ。例:
char s[] = "abc de f ghi";
reverse_word(s);
printf("%s¥n", s); // -> "ghi f de abc"
(ヒント: (1)や(2)で作った関数が応用できる?)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:
[5] その他の制限:どれもできるだけ引数で与えられた文字列の上で処理をするようにして無駄なメモリを使わないように心がけよ(よって関数の引数には常に編集可能な文字列を渡すこととする)。
359:デフォルトの名無しさん
11/11/17 20:20:42.61
char *s = "abc de f ghi";
こういう渡され方はしないという前提かな?
360:デフォルトの名無しさん
11/11/17 20:54:15.62
>>357
aへのポインタをunsigned int型変数へのポインタだと解釈した時の値 = aのバイト表現をunsigned int型の表現だとキャストせずに解釈した時の値
で大丈夫かな
361:デフォルトの名無しさん
11/11/17 20:55:34.05
ポインタだと解釈した時の値→ポインタだと解釈した時のポインタが示す値
こうか
362:デフォルトの名無しさん
11/11/17 20:56:29.84
>>359
なんでそう思うんだ?
363:デフォルトの名無しさん
11/11/17 20:58:49.06
>>362
書き換えが発生するからだろ
364:デフォルトの名無しさん
11/11/17 22:17:50.64
>>358
失敗の条件が無いので適当に組んだ。
URLリンク(ideone.com)
365:デフォルトの名無しさん
11/11/17 22:24:48.17
>>358
URLリンク(codepad.org)
Joel on Software の試験問題みたいなやつじゃな… xor 交換法使えってやつ
366:デフォルトの名無しさん
11/11/17 23:31:30.50
>>364
C99か
367:デフォルトの名無しさん
11/11/18 01:32:33.72
[1] 授業単元:
[2] 問題文(含コード&リンク):
URLリンク(codepad.org)
リンク先のコードを新規データをリストの最初にする
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:VS2008
[3.3] 言語:C
[4] 期限:早めにお願いします
368:デフォルトの名無しさん
11/11/18 02:02:37.58
>>367 確認していないが。
67-78行を以下に変更でいいような?
pointer_student = (struct student *)malloc( sizeof(struct student) );
pointer_student->next = root;
pointer_student->number = in_number;
strcpy(pointer_student->name, in_name);
369:デフォルトの名無しさん
11/11/18 02:08:43.36
22-48行は逆順に登録されるようにしなくていいのか?
370:368
11/11/18 02:59:54.66
コードから新規データのみと解釈したんだけどね。どーでしょうねぇ。
てか、データ構造も大事だけど先に関数を習いたいねぇ・・・。
>>299 解答がないのは資料不足。エスパーではないので情報は全部だしてもらわんと。
基本モンスタのクラスがあるはずだが(^^;;
371:デフォルトの名無しさん
11/11/18 03:14:47.98
リファクタリングも宿題の内ということでわざと冗長に書いてあるのかと思った
関数習う前にlinked listを宿題で出すかね
372:デフォルトの名無しさん
11/11/18 05:13:55.78
>>367
データの登録先を全てリストの先頭にするということだと解釈した。
URLリンク(ideone.com)
373:デフォルトの名無しさん
11/11/18 08:44:46.32
> 【質問テンプレ】
> [1] 授業単元:実数型変数の精度
> [2] 問題文(含コード&リンク):実数型変数の形式は以下のものとする。
符号部(1ビット)、指数部(nビット)、仮数部(mビット)
①指数部を符号なし整数としてオフセットを用いて表現する方法の調査
②以下のコードによるプログラムの実行結果から実数型変数の形式を類推する方法の検討
URLリンク(codepad.org)
> [3] 環境
> [3.1] OS:unix
> [3.2] コンパイラ名とバージョン: gcc
> [3.3] 言語: C
> [4] 期限: (11月18日13:00まで
374:デフォルトの名無しさん
11/11/18 09:50:21.60
>>329>>330
遅れたがありがとう
あとこれをコンピュータ側が自動的に反転させてくれるように出来ないかな?
375:デフォルトの名無しさん
11/11/18 10:56:57.75
>>374
??? 自動的に反転とは? 何を求めているのか分からない。なんか例を出してよ。
376:デフォルトの名無しさん
11/11/18 12:36:02.25
>>374
上下、左右反転だとエスパーしてみた。
URLリンク(codepad.org)
377:デフォルトの名無しさん
11/11/18 12:58:06.53
776 名前:名無しさん@涙目です。(東日本)[] 投稿日:2011/11/18(金) 12:50:14.89 ID:E2JpCOtJ0
朝鮮人出身の孫正義に対し、日本人として産まれ育った皆さんが何か勝てる要素あります?
ないですよねえ(笑)
とすると、、
…あれあれ~?
「日本人の方が朝鮮人より優れている!」というネトウヨの主張、矛盾が生じますよ?(笑)
▼ 781 名前:名無しさん@涙目です。(WiMAX)[sage] 投稿日:2011/11/18(金) 12:51:05.55 ID:kdvVz5BV0
>>776
ネトウヨというレッテル貼り付ける時点で議論を放棄した馬鹿になるぞ
▼ 798 名前:名無しさん@涙目です。(神奈川県)[sage] 投稿日:2011/11/18(金) 12:55:36.12 ID:B2VXzqAn0
>>776
逆に金と朝鮮コネクション以外になにかあるのですか?
ネットにある彼のプレゼンを注意深くきいてみると「詐欺師」という印象しか受けませんが?
印象に残るようなフレーズを連呼しながら、時に感情的にその場限りの嘘を吐き続けるだけの男
こんな男に騙されるほうも騙されるほうですがw
378:デフォルトの名無しさん
11/11/18 13:55:25.95
>>375>>356
例えば
123
456
789
という3×3の行列をscant()で読み取ると
対照線を軸に反転出来たらいいんだ
上の例でいくと
987
654
321
みたいな感じになればおk
379:デフォルトの名無しさん
11/11/18 14:12:13.75
転置行列の逆みたいな感じか
左右反転してから上下反転すれば出来るな
380:デフォルトの名無しさん
11/11/18 15:27:48.74
>>378
#include<stdio.h>
int main(void)
{
int i,j;
int a[3][3];
scanf("%d",&a[0][0]); scanf("%d",&a[0][1]); scanf("%d",&a[0][2]);
scanf("%d",&a[1][0]); scanf("%d",&a[1][1]); scanf("%d",&a[1][2]);
scanf("%d",&a[2][0]); scanf("%d",&a[2][1]); scanf("%d",&a[2][2]);
printf("%d ", a[0][0]); printf("%d ", a[1][0]); printf("%d¥n",a[2][0]);
printf("%d ", a[0][1]); printf("%d ", a[1][1]); printf("%d¥n",a[2][1]);
printf("%d ", a[0][2]); printf("%d ", a[1][2]); printf("%d¥n",a[2][2]);
printf("¥n");
printf("%d ", a[2][2]); printf("%d ", a[1][2]); printf("%d¥n",a[0][2]);
printf("%d ", a[2][1]); printf("%d ", a[1][1]); printf("%d¥n",a[0][1]);
printf("%d ", a[2][0]); printf("%d ", a[1][0]); printf("%d¥n",a[0][0]);
printf("¥n");
printf("%d ", a[2][2]); printf("%d ", a[2][1]); printf("%d¥n",a[2][0]);
printf("%d ", a[1][2]); printf("%d ", a[1][1]); printf("%d¥n",a[1][0]);
printf("%d ", a[0][2]); printf("%d ", a[0][1]); printf("%d¥n",a[0][0]);
return 0;
}
381:デフォルトの名無しさん
11/11/18 15:28:40.70
半分ネタなんだが、こうやって書いても出来ないもんは出来ないんだな
382:デフォルトの名無しさん
11/11/18 18:47:50.77
>> 373
(1) 参考:URLリンク(ja.wikipedia.org)
(2) ヒント:出力の2つめのフィールドが偶数になっているときに、情報落ちしている。
これで仮数部が表現できるビット数がわかる。注意:けち表現も考慮に入れよ。
・・・というか出題のコードが悪いよ。
383:デフォルトの名無しさん
11/11/18 19:32:43.34
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
URLリンク(codepad.org)
[3] 環境
[3.1] OS:Linux Ubuntu 10.04
[3.2] コンパイラ名とバージョン:不明ですが恐らくgccだと思います。
[3.3] 言語:C
[4] 期限:11/25
384:デフォルトの名無しさん
11/11/18 19:46:58.93
>364
ごめん。>358じゃないんだけど、reverse_wordってちゃんと動く?
少なくとも俺の環境だとダメ。VC2010(に入ってるcl.exe)とMinGWのgccの両方で試したけどダメ。
>366の発言が関係してる?
385:デフォルトの名無しさん
11/11/18 20:07:37.69
>>384
VC2010のC++はC89なのでC99はコンパイル通らないよ
gccならバージョンにも寄るがだいたい通る
つーか宿題にC99書くなって
Linux上のgccならC99でもいいっていう考えだろうけど、使うなよ
こんなクソ言語
386:デフォルトの名無しさん
11/11/18 20:58:29.77
>>383
採草地w ちゃんと写せよ
387:デフォルトの名無しさん
11/11/18 21:00:22.81
すなわちの前後が全く繋がってないような気がするんだが
388:デフォルトの名無しさん
11/11/18 21:14:54.23
>>384
変数宣言を移動しても、s3の処理で落ちる
389:デフォルトの名無しさん
11/11/19 00:28:11.38
[1] 授業単元:計算機アルゴリズムⅠ
[2] 問題文(含コード&リンク):
設問1-1
プログラム例9.4.4で「a_p=&a[0]; b_p=&b[0]; c_p=&c[0];」を「a_p=&a[4]; b_p=&b[4]; c_p=&c[4];」に置き換えた場合、同じ表示となるようにfor(・・・){・・・}を書換えなさい。
プログラム例9.4.4
URLリンク(www.dotup.org)
設問1-2
配列
float a[7] = {2.10, 3.21, 5.43, 6.54, 7.65, 8.76, 9.87}について、
(1)ポインタ変数を用いて、すべての要素を表示するプログラムを作成せよ。
(2)ポインタ変数を用いて、奇数の添字の要素を表示するプログラムを作成せよ。
(a_p+=2を使用すること。)
(3)ポインタ変数を用いて、すべての要素を逆の順に、a[6]からa[0]まで表示するプログラムを作成せよ。
ただし、ポインタ変数には最初a[6]のアドレスを記憶させるようにする。
(--a_pまたはa_p--を使用すること。)
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:[2011年11月25日8:00まで]
[5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文
繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数
条件分岐if文、要素番号idx使用の書換、データの入れ替え
条件分岐・論理演算子を用いたif文の条件、if文、else if文
switch文、ポインタ変数・演算子*と&は習いました。
宜しくお願いします。
390:384
11/11/19 00:37:32.01
>358,364,385,388
reverse_wordだけ自分で書いてみた。stdioだけしか使わないようにしてみた。
URLリンク(ideone.com)
Cはほぼ初心者に近いけど、この問題はポインタとかアルゴリズムとかの勉強になって良いね。
無駄な部分が多分あると思うから、それは是非指摘してほしい。
391:デフォルトの名無しさん
11/11/19 00:59:42.73
>>389
設問1-1 URLリンク(codepad.org)
設問1-2
(1) URLリンク(codepad.org)
(2) URLリンク(codepad.org)
(3) URLリンク(codepad.org)
392:デフォルトの名無しさん
11/11/19 02:44:15.53
>>384
うーんreverse_word()の中でqがオーバーランしてるかな。
最後のreverse(s, q - 2 - s)で壊す。
393:デフォルトの名無しさん
11/11/19 03:00:00.82
調子にのっちゃダメー
394:384, 390
11/11/19 06:00:57.11
>392
確認なんだけど、
このレスはあくまでも>384へのレスであって、>390へのレスじゃないよね?
395:デフォルトの名無しさん
11/11/19 06:57:01.70
>>394
>>392は>>364のコードのことです。
396:394
11/11/19 09:58:09.26
失礼しました。アンカーミスりました。
了解です。
397:デフォルトの名無しさん
11/11/19 19:01:13.51
(3)だけ
int find(char *s, int n){ while(*(s+n)!=' ' && n<strlen(s)) ++n; return n; }
int reverse_word(char *s)
{
if (strlen(s)<1) return 0;
int i,n;
for(i=n=0; i<strlen(s); i=n+1){ n=find(s,i); reverse2(s, i, n-1); }
reverse(s, strlen(s)-1);
return 1;
}
398:デフォルトの名無しさん
11/11/19 19:02:06.45
[1] 授業単元: 画像処理
[2] 問題文(含コード&リンク):
アフィン変換で画像を変換せよ。ただし回転の中心は画像の中心であるである
URLリンク(codepad.org)
ここまでできたのですが画像の中心で回転してくれません。
[3] 環境
[3.1] OS:windowsxp
[3.2] コンパイラ名とバージョン:windows visual studio 2008
[3.3] 言語:c
[4] 期限:11/20
[5] その他の制限:見づらいプログラムですいません。画像を中心に回転するようにしたいです
399:デフォルトの名無しさん
11/11/19 21:59:36.82
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):URLリンク(i.imgur.com)
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 11/15 10:00
[5] その他の制限: そこまで複雑な関数は習ってません
詰んでます
お願いします
400:デフォルトの名無しさん
11/11/19 23:23:18.68
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
入力された数値が素数か否かを判定し,結果を画面に出力せよ.ただし
①ループ命令を使う方法
②再帰処理を使う方法
③上記のどちらも使わない方法
のいずれについても解答する事.
[3] 環境
[3.1] OS: windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 11/27 23:00
[5] その他の制限: 初心者向けにお願いします
401:デフォルトの名無しさん
11/11/19 23:51:01.44
>>400
③ だけ
URLリンク(codepad.org)
402: ◆QZaw55cn4c
11/11/19 23:51:26.08
>>400
① URLリンク(ideone.com)
② URLリンク(ideone.com)
③ うーん、困りました。わかりません。
403:デフォルトの名無しさん
11/11/20 00:13:49.80
>>400
>>401 を縮めた
URLリンク(codepad.org)
404:デフォルトの名無しさん
11/11/20 00:15:58.06
>>391
有難う御座います
405:デフォルトの名無しさん
11/11/20 00:31:18.16
398ですがコメント文が間違ってたので投稿し直します
1] 授業単元: 画像処理
[2] 問題文(含コード&リンク):
アフィン変換で画像を変換せよ。ただし回転の中心は画像の中心であるである
URLリンク(codepad.org)
ここまでできたのですが画像の中心で回転してくれません。
[3] 環境
[3.1] OS:windowsxp
[3.2] コンパイラ名とバージョン:windows visual studio 2008
[3.3] 言語:c
[4] 期限:11/21 20:00
[5] その他の制限:見づらいプログラムですいません。画像を中心に回転するようにしたいです
406:デフォルトの名無しさん
11/11/20 01:35:45.40
>>403
奇数だけチェックするようにしてビットパターンの方も間引いたわけですか
407:デフォルトの名無しさん
11/11/20 01:41:02.34
>>405
src_x=(dest_x-dest_width/2)*cos(-theta)-(dest_y-dest_height/2)*sin(-theta)+src_width/2;
src_y=(dest_x-dest_width/2)*sin(-theta)+(dest_y-dest_height/2)*cos(-theta)+src_height/2;
でおk
408:デフォルトの名無しさん
11/11/20 01:41:20.74
>>403
5以上の素数は 6n±1 に限られるから、もっと少なくできるんじゃない?
409: ◆QZaw55cn4c
11/11/20 01:42:07.62
>>403
>>401
んーんーなるほど。
410:デフォルトの名無しさん
11/11/20 01:46:53.92
>>409
死んでもgoto使いたくないのか
411: ◆QZaw55cn4c
11/11/20 02:05:06.43
>>410
そんなことはないんですけど、今回はやめときました。
URLリンク(hibari.2ch.net) >>479
URLリンク(codepad.org)
412:デフォルトの名無しさん
11/11/20 02:05:23.27
>>399誰かたのんます・・・
413:デフォルトの名無しさん
11/11/20 02:22:04.60
>>412
放置されたら諦めろ。
URLリンク(codepad.org)
414:デフォルトの名無しさん
11/11/20 03:48:44.47
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
整数nを入力、2以上nイカの全ての素数およびその素数の累積を表示(while文を使用)
例) n=15の時:
素数:2,3,5,7,11,13 累積:41
[3] 環境
[3.1] OS: (WindowsXP)
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:今日の22時まで
[5] while文使用でお願いします
415:デフォルトの名無しさん
11/11/20 04:40:23.12
>>400
main(i,n){scanf("%d",&n);_:if(n*(n>1)%++i)goto _;puts("not prime"+(i==n)*4);}
416:デフォルトの名無しさん
11/11/20 04:53:30.16
>>415
トリッキー過ぎるだろw
417: ◆QZaw55cn4c
11/11/20 04:58:29.46
>>412
>>399
残念。
URLリンク(codepad.org)
418: ◆QZaw55cn4c
11/11/20 05:03:18.15
>>415
>(n>1)
細やかな心遣いですね。
419:デフォルトの名無しさん
11/11/20 05:03:56.45
>>417
413 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/08(水) 04:58:51
典型的な自己愛性人格障害だな
治療不能
就職も出来ず一生ニート
416 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/08(水) 12:32:05
>>413
同属嫌悪ってやつか、自己紹介乙。
叩いているお前も十分基地外、池沼だよ。
そんなことしている暇があるんだろ?
便利な詭弁だよな
そうやって自分の問題から逃げていれば楽だもんだなあ
468 名前:デフォルトの名無しさん[sage] 投稿日:2010/12/13(月) 21:08:24
Pen III 500MHz を2003年の夏まで使用していましたが
今はC2D、C2Qのを使用してますです!
Core iシリーズはVistaのごとくスルーしてます ><;
スクリーンショットマダァ?(・∀・ )っ/凵⌒☆チンチン
420:デフォルトの名無しさん
11/11/20 05:05:33.45
n;main(i){for(scanf("%d",&n);n%++i&&i<n;);puts("not prime"+(i==n)*4);}
421: ◆EiEUm/qHNk
11/11/20 06:18:42.24
[1] 授業単元:C言語
[2] 問題文:ガウスの消去法を使ってn元連立方程式を解け
URLリンク(ideone.com)
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C言語
[4] 期限:11月21日まで
[5] その他の制限:math.h や #difine などは習っていないので使えません。
アップロダに初めてソースを上げてみたのですが、学校では値が出ました、
あとは、ゼロを入力した場合、値がおかしくなるので、行交換?などをしたいのですが
どうすればいいのかわかりません。
422:デフォルトの名無しさん
11/11/20 06:30:24.07
部分ピボット選択なら簡単
423:デフォルトの名無しさん
11/11/20 06:34:32.94
>>421
例えばこんな感じ
URLリンク(ideone.com)
424:デフォルトの名無しさん
11/11/20 06:36:11.32
math.hを習ってないという事はfabs()を自作しないといかんね
それから#defineが使えないならC99の可変長配列を使わないといけない
425: ◆EiEUm/qHNk
11/11/20 06:48:19.27
fabs?などというのも習っていません、自作というのもしてわいけないと思います。
配列ぐらいまでの範囲しか習っていませんので、、、
友人はif文を使うなどと言っているのですが、どこに入れれば良いのかもわかりません。
426:デフォルトの名無しさん
11/11/20 07:05:27.87
>>425
いや、
>あとは、ゼロを入力した場合、値がおかしくなるので、行交換?などをしたいのですが
>どうすればいいのかわかりません。
なんでしょ?じゃピボット選択をするしかない
fabsの自作をしてはいけないというのなら三項演算子でも使ってプログラム内でやるよ
if文でもいいけど
427:デフォルトの名無しさん
11/11/20 07:11:29.83
URLリンク(ja.wikipedia.org)
>対角成分が 0 になる場合には、枢軸選択(ピボット選択)という式の交換を行う必要がある。
>対角成分が 0 になる場合以外でも、対角成分が絶対値が最大の係数になるように枢軸選択を
>行ったほうが、解の丸め誤差が少なくなる。ただし、これは行列要素の絶対値が同程度の大きさの
>場合のみ成り立ち、スケーリングを行わずに枢軸選択を行うとむしろ精度が悪化する場合もあるため、
>注意が必要である
つまり絶対値が最大の係数になるようにピボット選択をしなければならない
そのためにはfabs()が必要不可欠であるが、使用不可、自作も不可というのならプログラム内に
関数ではなく直書きするしかない
428: ◆EiEUm/qHNk
11/11/20 07:20:28.79
ピポッド選択をするのにif文、for文だけで対処できないのでしょうか?
先ほど私がロダにあげたソースに付け足していただけるとありがたいのですが、、
429:デフォルトの名無しさん
11/11/20 07:23:42.07
>>428
いやできるよ
ちょっと待って今他の作業をしてるもんで
他の人があげてくれるかもしれんし
それより心配なのはC99の可変長配列を関数間で受け渡し出来るのかという問題だ
可変長配列はalloca()の糖衣構文だと聞いているので、受け渡した時の書き方が
よくわからん
C89/C++ばかりやってるもんで
430:デフォルトの名無しさん
11/11/20 07:29:00.82
URLリンク(seclan.dll.jp)
(3) 関数引数での使用
関数ブロックの中に、可変長配列を宣言することができますが、もちろん関数の引数にも
使うことができます。例えば、(1)のようにして使用します。可変長配列の中に使う変数は、
そこで使用する以前に他で宣言されていて、コンパイラに対して可視になっている必要が
あります。したがって、void sumup(int data[m][n], int m, int n){ ... } のような関数定義は、
ファイルスコープレベルで m や n という整数変数が宣言されていない限りエラーになります。
なんじゃこりゃ
使えんなー
全部main()内に書くか
431: ◆EiEUm/qHNk
11/11/20 07:44:36.16
>>429
うーん、よくわからないですけど
C言語ならったばっかりの学生に
作らせているので、main()のなかまでは
干渉しないとは思うのですが、、
すいません、よくわからないことをいって
しまって
432:デフォルトの名無しさん
11/11/20 07:48:27.24
>>399 >>412
URLリンク(codepad.org)
妥当な短さで汚いコードどうぞ。
433:デフォルトの名無しさん
11/11/20 09:09:40.18
やっと作業終わった・・・
>>421
URLリンク(ideone.com)
c99でかつfabs()を使わない部分ピボット選択ならこんな感じになるよ
434: ◆EiEUm/qHNk
11/11/20 09:14:05.77
>>433
作業お疲れ様です。
学校で試してみます!
本当にありがとうございました
435:デフォルトの名無しさん
11/11/20 09:15:02.50
>>430
書いてあるようにvoid sumup(int m, int n, int data[m][n])ならおkって意味だろ
436:デフォルトの名無しさん
11/11/20 09:15:49.91
>>432
出力結果が変だぞ
tensu ::::
8001 78 64 88 90
8004 34 40 52 67
8013 83 77 89 93
8025 98 81 69 77
8062 56 63 47 23
Student Average::::
8001 : 80.00
8004 : 48.00
8013 : 85.00
8025 : 81.00
8062 : 47.00
Subject Average::::
Mat : 69.8
Phys : 1.034023498044222881300000000000000000000e+291
Chem : +NAN
Eng : 70.0
437:デフォルトの名無しさん
11/11/20 09:18:42.28
>>435
void sumup(int data[*][*]. int m, int n);
プロトタイプ宣言で先に可変長配列を持ってきたい時はこう書く必要があるみたいだな
438:デフォルトの名無しさん
11/11/20 09:21:00.62
>>432
>>436の原因が分かった
sumSubjectの初期化がされていない
double sumSubject[4] = {0.0, 0.0, 0.0, 0.0};
439:デフォルトの名無しさん
11/11/20 18:05:09.98
>>407
for(i =0; i < x; i++){
for(j =0; j < y; j++){
v=i/2*cos(-15*PI/180)-j/2-*sin(-15*PI/180)+x/2;
w=-i/2*sin(-15*PI/180)+j/2*cos(-15*PI/180)+y/2;
image_out4[v][w] =image1[i][j];}}
一応こんな感じにやって見ましたが大丈夫でしょうか?
440:デフォルトの名無しさん
11/11/20 18:29:15.04
cos(-15*PI/180)とsin(-15*PI/180)の結果自体はループ外で求めておいたら?
441:デフォルトの名無しさん
11/11/20 18:53:36.30
>>439
逆にしないと絵に穴が開くのと
有効範囲かどうかのチェックが必要
442:デフォルトの名無しさん
11/11/20 19:01:35.94
>>439
>>407 で -theta にしてるのは dest を基準に考えると逆回転になるよって意味だからね
443:デフォルトの名無しさん
11/11/20 22:04:08.54
>>414は「nイカ」は「n以下」です。すいません
444:デフォルトの名無しさん
11/11/20 22:14:59.92
>>442
ありがとうございます。理解しました
445:デフォルトの名無しさん
11/11/20 23:20:51.73
>>414
#include <stdio.h>
int main(){
int n, sum = 2, i = 2, j;
printf("n = ");
scanf("%d", &n);
printf("素数:");
while (i++ < n) {
j = 2;
while ((i % j) && j * j <= i)
j++;
if (i % j) {
printf("%d,", i);
sum += i;
}
}
printf(" 累積:%d¥n", sum);
return 0;
}
446:デフォルトの名無しさん
11/11/20 23:54:05.16
>>445
そういう処理ならエラトステネスのふるいを使ってみるとか
447:デフォルトの名無しさん
11/11/21 00:06:21.94
>>445
累積が間違ってるな
448:デフォルトの名無しさん
11/11/21 00:16:15.20
>>445
とってもありがとうございます
>>447
多分合ってると思います。15入力してちゃんと41とでるので
449:デフォルトの名無しさん
11/11/21 00:34:47.74
多分素数の2が表示されてないからじゃね
450:デフォルトの名無しさん
11/11/21 00:34:49.52
>>448
X printf("素数:");
O printf("素数:2 ");
451:デフォルトの名無しさん
11/11/21 01:01:05.52
雑談すまん。
小さいコードなんで処理を追えるから勉強になります。
452:デフォルトの名無しさん
11/11/21 01:34:13.40
>>414
エラトステネスのふるいで。
URLリンク(ideone.com)
453:デフォルトの名無しさん
11/11/21 02:19:10.47
>>452
ありがとうございます!
454:デフォルトの名無しさん
11/11/21 02:32:02.30
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
線形リスト構造で、整数を1つ入れる度にソートし、出力するプログラムを作成せよ
配列はitem[11]とnext[11]を用意する。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C言語
[4] 期限:22日まで
[5] その他の制限:構造体はなるべく分かりやすくお願いします
よろしくお願いします
455:デフォルトの名無しさん
11/11/21 02:58:47.20
>>454
問題に書き写し間違いは無い?
>配列はitem[11]とnext[11]を用意する。
なら
int item[11];
int next[11];
>[5] その他の制限:構造体はなるべく分かりやすくお願いします
だと
struct list{
int item;
strruct list *next;
}data[11];
のように、やり方が互いに違うと思うんだが。
456:デフォルトの名無しさん
11/11/21 03:06:24.45
>>454
structとポインタ習ってます?
457:デフォルトの名無しさん
11/11/21 08:40:13.50
>>455-456
すみません。構造体云々は間違えてす
ポインタでした。
構造体はまだ習ってないです。
458:デフォルトの名無しさん
11/11/21 08:56:51.98
え、ポインタ?構造体を使わずにポインタを使う線形リスト?
459:デフォルトの名無しさん
11/11/21 09:04:00.57
>>457
それだと配列nextの扱いはどうなるんだ?
配列itemと内容が同じになりそうなんだが。
460:デフォルトの名無しさん
11/11/21 09:13:04.92
>>459
勘違いした。
461:デフォルトの名無しさん
11/11/21 09:15:29.05
item[]はただのコンテナで、next[]に次のitemの要素のインデックスを
保持するとかなするんじゃ?
とにかくリストのデータ構造が実現されていれば別に構造体じゃなくてもいい。
462:454
11/11/21 10:12:33.80
わかりづらくてホントにすみません。
言いたいことは、>>461さんのであってると思います。
463:デフォルトの名無しさん
11/11/21 10:39:56.99
>>454
ポインター(int *p など)は使っていない。
URLリンク(ideone.com)
464:デフォルトの名無しさん
11/11/21 11:12:33.86
挿入ソートかなこれ
C99じゃないとコンパイルエラーが出るな
465:デフォルトの名無しさん
11/11/21 13:54:05.05
>>442
理解したと思っていましたが出できた画像が回転でなくせん断された画像なんですがこのdestっていうのはなんですか?
466:デフォルトの名無しさん
11/11/21 14:45:31.32
>>465
dest は destination の略
式に変なアレンジしなければ大丈夫
467:デフォルトの名無しさん
11/11/21 15:20:30.58
>>466
変にアレンジしてました。今度こそ大丈夫です。ありがとうございました
468:デフォルトの名無しさん
11/11/21 16:20:09.76
>>464
gcc -std=c89
でコンパイル通るけど、エラーメッセージは?
469:デフォルトの名無しさん
11/11/21 18:08:42.75
gccじゃなくてbcc32を使ってた
初期化の部分で最低一個データを入れないとエラーになった
Eclipse CDTからMinGWで -std=c89 でやると確かにエラーが出ない
bcc32が間違ってるのか
470:デフォルトの名無しさん
11/11/21 18:25:16.15
[2]つぎの関数をつくる
void zeroSuppress(char *src, char *dst, char pos, char flg)
posは小数点を挿入する位置で1なら1桁目と2桁目の間に
小数点があるものとしてゼロサプレスします。
文字数<=posの場合処理しない。
動きの例
src = "0123456"、 pos = 1 →dst = "123456"
src = "0012500" pos = 2 →dst ="12500"
src = "0000001" pos = 3 →dst ="0001"
src = "000B12" pos = 2 →dst ="000"(Bとそれ以降は無視)
flg = 1だと\0でうめる
src = "0000001" pos = 3 →dst = "\0\0\00001"
471:デフォルトの名無しさん
11/11/21 18:55:57.69
何がしたいのか良く判らんのだけど
src = "0012500" pos = 3 の場合は?
472:デフォルトの名無しさん
11/11/21 20:11:39.05
>>470 宿題じゃなさげな・・・
引数にchar使うよーなのは・・・・かなり特殊な環境に思うんだが。
flg=1だと・・・"\0" "\0" "\000" "01"と解釈でいいんかしら?
473:デフォルトの名無しさん
11/11/21 20:20:05.80
>>472
宿題ではなさそうってのは同意だが、NULLで埋めて右詰って用途が謎だ
nullnullnull0001 って話だと思うよ
でもなんか仕様が良く判らんな、 >>471 への回答も無いし flg による動作に一貫性が無い
上司に要求仕様をちゃんと確認した方が良い
474:デフォルトの名無しさん
11/11/21 20:39:29.03
んー。エスパーしてみるが。
7セグメントLED(小数点付き)の出力用。。。
nulは非表示・・・。
文字数固定。
475:454
11/11/21 21:32:43.27
>>463
ありがとうございます。
諸事情で今はWinVCしか使用出来ないのですが、
これだとiとjとnextが定義されないのですが、iとjとnextを初期化してもエラーになるのはどうしてでしょうかね?
476:デフォルトの名無しさん
11/11/21 21:50:35.50
>>470
Bがある場合と、0埋めが判らないので、作りかけ。
URLリンク(ideone.com)
477: ◆EiEUm/qHNk
11/11/21 22:30:36.83
[1] 授業単元:C言語
[2] 問題文:3*3の逆行列Aをもとめよ
URLリンク(ideone.com)
[3] 環境
[3.1] OS: linux
[3.2] コンパイラとバージョン: gcc
[3.3] 言語:C言語
[4] 期限:11月22日まで
[5] その他の制限:math.h や #difine などは習っていないので使えません。
アップロダにてソースを上げてみたのですが、学校では値が出ました、
あとは、ゼロを入力した場合、値がおかしくなるので、行交換?などをしたいのですが
どうすればいいのかわかりません。
先日、ガウスの消去法で、行交換のしかたを教えてもらったのですが、上記にあげた
ソースにも行交換をしていただけるとありがたいです
478:デフォルトの名無しさん
11/11/21 22:54:28.63
>>477
3x3 の逆行列なら公式を使うという手もあるぞ
使っちゃダメかもしれないがw
479:454
11/11/21 23:11:12.33
宣言初期化全て出来ました
お騒がせしてすみません
480:デフォルトの名無しさん
11/11/21 23:31:31.09
[1] 授業単元:プログラミング技法、配列とポインタ
[2] 問題文(含コード&リンク):整数型配列a[10]とb[10]を宣言し、a[10]に任意で数値を10個入力する。
b[10]は初期値として0を代入しておく。
任意で入力された10個の整数のうち、奇数のみ抜き出してb[0]から順番に代入する。
最後に配列bの中身を出力し終了する。このとき0は表示されないようにすること。
[3] 環境
[3.1] OS:win764bit
[3.2] コンパイラ名とバージョン:cpad ver2.31
[3.3] 言語:c
[4] 期限:11月22日18:00
[5] その他の制限:お願いします
481:デフォルトの名無しさん
11/11/22 00:21:56.67
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):(1,10,5) (1,20,10)...というテキストデータを読み込み、一番左の数字(ここでいう1と1)を一つの配列として表示と書きこみをするプログラム。(真ん中も右の数字も同じように処理する)
[3.1] OS: (Windows/Linux/等々) Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか) c言語
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 11月23日 15時
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 何でもおk
482:デフォルトの名無しさん
11/11/22 00:53:34.84
>>480
URLリンク(ideone.com)
>>481
テキストの仕様は一行なのか、複数行なのか、また数字は必ず3つの組?
一つの配列として表示とはどのように? 書きこみとはどこに?
483:デフォルトの名無しさん
11/11/22 00:59:30.49
>>482
すみません。
数字は必ず三つの組で、テキストは(1,10,5)改行(1,20,10)と続いていきます。
一つの配列として表示とは、「1,1,1,1,1,1,1,1...]みたいな感じだと思います。
書きこみ先は、新規のファイルにだと思います。
484:デフォルトの名無しさん
11/11/22 01:46:05.56
>>480
#include <stdio.h>
#include <memory.h> //だっけ?
int main(void)
{
int a[10],b[10];
int i,j;
memset(b,0,10);
for(i=0;i<10;i++){scanf("%d",a[i]);}
for(i=j=0;i<10;i++,j++){
if(a[i]&1)b[j]=a[i]);
printf("%d\n",b[j]);
}
return(0);
}
485:デフォルトの名無しさん
11/11/22 03:21:57.86
>>481
まさかこんなに手間取るとは思わなかった…。
URLリンク(ideone.com)
486:デフォルトの名無しさん
11/11/22 03:31:32.09
>>481
すまない。>>485はバグ有り。
URLリンク(ideone.com)
487:デフォルトの名無しさん
11/11/22 03:41:11.76
>>481
URLリンク(ideone.com)
./a.out <input で画面出力
./a.out <input >output でファイル出力
テケトーですまん。
488:デフォルトの名無しさん
11/11/22 04:03:58.50
>>486
本当にありがとうございます。
すみませんが、./a.out [infile] [outfile]で実行しても、outfileに書きこまれないのですがやり方が悪いのでしょうか?
489:デフォルトの名無しさん
11/11/22 04:05:37.40
>>487
本当にありがとうございます。
申し訳ないのですが、配列の表示の仕方は縦ではなくて横が良かったのですが変更はできますか?
490:デフォルトの名無しさん
11/11/22 04:08:39.61
>>481ですが
付けたしになってしまって本当に申し訳ないのですが、書きこみは左、真ん中、右と一つずつ分けてそれぞれ3つのファイルに出力しないといけないみたいです。すみません。
491:デフォルトの名無しさん
11/11/22 04:16:00.35
>>490
URLリンク(ideone.com)
ファイル開けない理由はよくわからない。
残念ながらこっちの環境では成功してる。
492:デフォルトの名無しさん
11/11/22 04:18:56.73
>>491 バグ有り。またやってしまった。
初期化部分修正。
URLリンク(ideone.com)
493:デフォルトの名無しさん
11/11/22 04:25:23.29
>>491
ありがとうございます!
空のテキストファイルをoutfileにしてるのですが、実行しても何も書きこまれません。
環境は同じはずなのに何でだろう・・・
494:デフォルトの名無しさん
11/11/22 04:35:10.99
#include<stdio.h>
int main(int a,char** b){
FILE* fp;
if(a>1&&fp=fopen(b[1],"w")){ fprintf(fp,"test\n"); fclose(fp); }
return 0;
}
これ
./a.out outfile
で文字は入ります?
495:デフォルトの名無しさん
11/11/22 04:35:28.81
>>481
URLリンク(ideone.com)
496:495
11/11/22 04:37:35.16
すまん、俺もバグったw
497:デフォルトの名無しさん
11/11/22 04:38:10.24
間違えました。ごめんなさい。
#include<stdio.h>
int main(int a,char** b){
FILE* fp;
if(a>0){
if(fp=fopen(b[1],"w")){ fprintf(fp,"test\n"); fclose(fp); }}
return 0;
}
498:495
11/11/22 04:40:25.34
>>481
URLリンク(ideone.com)
499:デフォルトの名無しさん
11/11/22 04:51:13.82
>>497
文字入りました!
500:デフォルトの名無しさん
11/11/22 05:27:12.86
>>481
これでダメならもうお手上げです…。
URLリンク(ideone.com)
485=486=491=492=494=497でした。
501:デフォルトの名無しさん
11/11/22 05:36:36.47
>>500
何度もありがとうございます。
ただ、上手くいきません・・・
自分で変える部分は、13行目のfilenameとmodeの部分だけですよね?
502: ◆EiEUm/qHNk
11/11/22 05:46:49.54
だ、だれか逆行列のピボット選択のしかたを教えてください、、、
503:デフォルトの名無しさん
11/11/22 05:55:11.87
>>501
fcloseをfix。
URLリンク(ideone.com)
何も変更せずにそのままコンパイルしてください。
コンパイル後の使用方法 (読み込みファイルがtest.txtの場合)
./a.out text.txt test1.txt test2.txt test3.txt
504:デフォルトの名無しさん
11/11/22 05:56:03.12
致命的なtypo
コンパイル後の使用方法 (読み込みファイルがtest.txtの場合)
./a.out test.txt test1.txt test2.txt test3.txt
505:デフォルトの名無しさん
11/11/22 07:42:39.22
>>477
URLリンク(ideone.com)
一応行列Aが潰れていないか(正則であるか)のチェックを入れた
不要だったらカットして下さい
506:デフォルトの名無しさん
11/11/22 07:44:39.27
>>502
遅れてすみません
昨晩早く寝たもんで
507:デフォルトの名無しさん
11/11/22 08:48:51.75
>>471
src = "0012500" pos = 3 → dst = "12500"
flg = 1なら"\0\012500"
>>474
すごいです。当たりです。
508:デフォルトの名無しさん
11/11/22 08:51:53.71
>>507
posが何を意味しているのかわからない。
509:508
11/11/22 08:53:04.46
>>507
言葉で説明して下さい。
510:デフォルトの名無しさん
11/11/22 09:13:37.55
>>507
クイズかよw
511:デフォルトの名無しさん
11/11/22 09:36:01.49
>>508
posは小数点が挿入される位置です。
src = "0012500" pos = 3 → dst = "12500"
これだと12.500となるため頭の02つは消えます。
flg=1だと\0でうめるので0が\0になります。
512:508
11/11/22 09:43:01.14
>>511
ごめんなさい。わかりました。
513:デフォルトの名無しさん
11/11/22 12:08:22.93
>>470,511
'Bとそれ以降は無視'が不明なので作りかけ。
・英字が含まれていたらpos,flg無効?
URLリンク(ideone.com)
514:デフォルトの名無しさん
11/11/22 12:17:09.18
>>513
数字以外だとその文字とそれ以降を無視します。
たとえば
"0234YB00"だと"0234"の文字数4として扱います。
flgは有効です。このときposが1なら"234"
posが3なら"0234"となります。
515:デフォルトの名無しさん
11/11/22 12:59:18.96
>>514
もしかしたら、'n桁目'というのは右から数えてる?
516:デフォルトの名無しさん
11/11/22 13:06:07.92
>>515
yes
517:デフォルトの名無しさん
11/11/22 13:09:30.49
>>516
了解。
>>数字以外だとその文字とそれ以降を無視します。
これで左からだと解釈してた。
518: ◆EiEUm/qHNk
11/11/22 14:15:05.99
>>505
ありがとうございます
519:デフォルトの名無しさん
11/11/22 16:10:22.23
>>470,516
URLリンク(ideone.com)
520:デフォルトの名無しさん
11/11/22 16:39:34.64
>>>470,516,519
バグ修正
URLリンク(ideone.com)
521:481
11/11/22 16:41:15.63
>>503
ありがとうございます!
何も変更しなかったら成功しました!本当にありがとうございました。
522:デフォルトの名無しさん
11/11/22 17:21:51.36
>>519
ありがとう。
523:デフォルトの名無しさん
11/11/22 18:04:19.44
>>482
>>484
ありがとうございました
524:デフォルトの名無しさん
11/11/22 18:13:37.81
>>519
おーいバグってるぞ
ポインタがさかのぼりすぎ
Error 00001. 0x140300 (Thread 0x04D8):
Pointer arithmetic underrun: 0x0012FF1F-4, that is at offset 3-4 in local
block 0x0012FF1C(=[ebp-0x70] @dai45.exe:0x01:00040A) (size 100).
| dai45.c line 36:
| *pd++ = *ps++;
| *pd = '\0';
|> pd -= (pos - '0'+2);
|
| while (pd >= dst) { /* 不要な0をnullにする */
Call Tree:
0x004012AA(=dai45.exe:0x01:0002AA) dai45.c#36
0x0040140A(=dai45.exe:0x01:00040A) dai45.c#63
0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA)
------------------------------------------
Error 00002. 0x140300 (r) (Thread 0x04D8):
Pointer arithmetic underrun: 0x0012FF1F-4, that is at offset 3-4 in local
block 0x0012FF1C(=[ebp-0x70] @dai45.exe:0x01:00048A) (size 100).
| dai45.c line 36:
| *pd++ = *ps++;
| *pd = '\0';
|> pd -= (pos - '0'+2);
|
| while (pd >= dst) { /* 不要な0をnullにする */
Call Tree:
0x004012AA(=dai45.exe:0x01:0002AA) dai45.c#36
0x0040148A(=dai45.exe:0x01:00048A) dai45.c#72
0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA)