C/C++の宿題片付けます 153代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2011/11/04(金) 09:08:00.06【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
0002デフォルトの名無しさん
2011/11/04(金) 09:08:32.11[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi
http://codepad.org/ ←遅い時間は重い事があります
http://ideone.com/
http://pastebin.com/ ←たまにテンポるので上の2つが混んでいる時以外はなるべく使わないで下さい
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
前スレ
C/C++の宿題片付けます 152代目
http://hibari.2ch.net/test/read.cgi/tech/1312201995/
0003デフォルトの名無しさん
2011/11/04(金) 13:39:54.52前スレのレスがあまりにウンコなのでどうしようか悩んだけど、書くわ。
名前空間って知ってるか?
0004デフォルトの名無しさん
2011/11/04(金) 13:55:39.54そうすればつまらない質問してウンコとか言われないでいられたものを
0005デフォルトの名無しさん
2011/11/04(金) 13:59:15.40ベタな方法で。
http://ideone.com/75gvT
0006デフォルトの名無しさん
2011/11/04(金) 14:49:40.13[2] 問題文(含コード&リンク):文字列st が回文(前から読んでも後ろから読んでも
同じ)であれば1 を,そうでなければ0 を返す関数
int isPalindrome(const char st[])
を作成せよ.以下の実行例のように,関数の動作を確認
例.文字列を入力してください:AKASAKA
その文字列は回文です。
できるmain 関数も作成する.
例
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:不明
[3.3] 言語:C
[4] 期限:11/6
[5] その他の制限:
0007デフォルトの名無しさん
2011/11/04(金) 14:54:30.56[2] 問題文(含コード&リンク):文字列st が回文(前から読んでも後ろから読んでも
同じ)であれば1 を,そうでなければ0 を返す関数
int isPalindrome(const char st[])
を作成せよ.以下の実行例のように,関数の動作を確認
できるmain 関数も作成せよ.
例.文字列を入力してください:AKASAKA
その文字列は回文です.
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:不明
[3.3] 言語:C
[4] 期限:11/6
[5] その他の制限:
0008デフォルトの名無しさん
2011/11/04(金) 15:13:10.58int isPalindrome(const char st[])
{
char* f;
char* b;
f = b = st;
while( *b ) b++;
b--;
while( b > f ) {
if( *f != *b ) return 0;
f++;
b--;
}
return 1;
}
0009デフォルトの名無しさん
2011/11/04(金) 18:00:02.02気付かず作っちゃったのでやり方少し違うしせっかくなのでうp
http://codepad.org/6UL5hxyw
0010デフォルトの名無しさん
2011/11/05(土) 01:33:40.13[2] 問題文(含コード&リンク):例に示すように、二つの整数値を読み込んで、
小さい方の数以上で大きいほうの数以下の整数
を全て加えた値を表示するプログラムを作成せよ。
(例)
二つの整数を入力してください。
整数1: 37
整数2: 28
28以上37以下の全整数の和は325です。
[3] 環境
[3.1] OS:windows7
[3.2] コンパイラ名とバージョン:Visual C++ 2010 Express
[3.3] 言語:どちらでも可
[4] 期限:11月9日
[5] その他の制限:if文とdo文を必ず使うこと。
4月から授業ではじめたばかりですので、複雑な文は分かりません。
よろしくお願いします。
0011デフォルトの名無しさん
2011/11/05(土) 01:34:35.55例がずれました
0012デフォルトの名無しさん
2011/11/05(土) 01:54:00.69#include<iostream>
using namespace std;
int main(void) {
int a,b;
cout << "二つの整数を入力してください。" << endl;
cout << "整数1:";
cin >> a;
cout << "整数2:";
cin >> b;
int sum=0;
for (int i=min(a,b) ; i<=max(a,b) ; i++) sum += i;
cout << min(a,b) << "以上" << max(a,b) << "以下の全整数の和は" << sum << "です。" << endl;
return 0;
}
0013デフォルトの名無しさん
2011/11/05(土) 02:00:27.20if と do だったな。忘れてたわ。
#include<iostream>
using namespace std;
int main(void) {
int a,b;
cout << "二つの整数を入力してください。" << endl;
cout << "整数1:";
cin >> a;
cout << "整数2:";
cin >> b;
int max,min;
if (a<b) {
min = a;
max = b;
} else {
min = b;
max = a;
}
int sum=0;
int i=min;
do {
sum += i;
i++;
} while (i<=max);
cout << min << "以上" << max << "以下の全整数の和は" << sum << "です。" << endl;
return 0;
}
0014デフォルトの名無しさん
2011/11/05(土) 04:35:44.32プログラムへのツッコミじゃないけど40はfortyな。
あとハイフンを使ったりとか...
0015デフォルトの名無しさん
2011/11/05(土) 08:01:30.87知らなかった
こんなところで英語の無駄知識が増えるとは
0016デフォルトの名無しさん
2011/11/05(土) 08:07:26.530017デフォルトの名無しさん
2011/11/05(土) 08:57:25.99「無駄」って、日本語でいったら漢数字の表記を間違えているようなもんだぞw
0018デフォルトの名無しさん
2011/11/05(土) 09:17:13.69何で英語はfourtyとしなかったんだ?というボヤキでしょ。
0019デフォルトの名無しさん
2011/11/05(土) 12:01:32.49え?
0020デフォルトの名無しさん
2011/11/05(土) 12:11:17.56意味を取り違えない程度なら正直どっちでもいい
日本人が多少英語を間違えていても(以下同
0021デフォルトの名無しさん
2011/11/05(土) 12:12:39.240022デフォルトの名無しさん
2011/11/05(土) 12:15:34.870023デフォルトの名無しさん
2011/11/05(土) 20:53:42.06とかが英語の無駄知識だろう
0024デフォルトの名無しさん
2011/11/05(土) 22:19:17.11そんなとこでぼやくんなら、
何で50はfivetyじゃなくてfiftyなんだ、とかもぼやいてるのか?
「いやいや14がfourteenだし4の部分は発音が同じだし」、とかいうなら
英語は綴りと発音が対応してない単語が山ほどあるがその度にぼやいているのか?
こんなもん自然言語の歴史的な経緯なんだからどうしようもないんだよ。
ちなみに昔はfourとfortyのforは発音が違ったらしいぞ。
あと言語のForth、あれはFourthとするつもりが文字数の都合でForthになった、
これぐらいが無駄知識w
0025デフォルトの名無しさん
2011/11/05(土) 22:41:52.510026デフォルトの名無しさん
2011/11/06(日) 00:04:03.33[2] 問題文(含コード&リンク):3つのデータを管理するプログラム
PDFにした問題を貼っておきます
http://www.07ch.net/up2/src/lena6268.zip
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:特に指定はなかったです
[3.3] 言語:C言語
[4] 期限: 11/8
[5] その他の制限: 特に無いです
よろしくお願いします
0027デフォルトの名無しさん
2011/11/06(日) 07:23:07.35#include <string.h>
#include <stdlib.h>
typedef struct AAA {
char usr_name[32];
char password[32];
int age
}AAA;
char* strlcpy( char* pDestination, const char* pSource, size_t Size )
{
char* pStart = pDestination;
while( --Size && ( *pDestination++ = *pSource++ ) );
*pDestination = '\0';
return pStart;
}
AAA usr; /*グローバル変数*/
void init(){
/*作成*/
memset(&usr,0,sizeof(AAA));
}
int add_user(char *usr_name,char *password,int age){
/*作成*/
strlcpy(usr.usr_name,usr_name,32);
strlcpy(usr.password,password,32);
usr.age = age;
}
0028デフォルトの名無しさん
2011/11/06(日) 07:46:54.20add_user()は
成功:0
エラー:-1
を返すんですけど・・・
0029デフォルトの名無しさん
2011/11/06(日) 18:17:42.87[2] 問題文:0以上20以下の整数を入力として受け付けて,
その数から20までの整数を順に出力せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ありません
[5] その他の制限: ありません
うまくカウントできなくて困っています
宜しければお願いします
0030デフォルトの名無しさん
2011/11/06(日) 18:50:28.03#include <stdio.h>
int main(void)
{
int n, i;
printf("整数(0-20): ");
scanf("%d", &n);
if (n < 0 || n > 20) {
fprintf(stderr, "範囲外です");
return 0;
}
for (i = n; i <= 20; i++)
printf("%d ", i);
printf("\n");
return 0;
}
0031デフォルトの名無しさん
2011/11/06(日) 18:52:23.92int in;
scanf("%d",&in);
for(;in<=20;in++)printf("%d\n",in);
}
0032デフォルトの名無しさん
2011/11/06(日) 19:32:22.25横やりだけど、負数をはじかないと
0033デフォルトの名無しさん
2011/11/06(日) 22:55:45.94[2] 問題文(含コード&リンク):mのn乗 を一の位まで正確に計算するプログラムを書け。ただし、mは2以上10000未満の整数、nは0以上10000未満の整数とする。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: わかりません
[3.3] 言語: C
[4] 期限: 2011年11月7日12時
[5] その他の制限: ありません
よろしくおねがいします
0034デフォルトの名無しさん
2011/11/06(日) 23:04:55.18多倍長整数を使ってください。
0035デフォルトの名無しさん
2011/11/06(日) 23:18:07.59ありがとうございました
助かりました
0036デフォルトの名無しさん
2011/11/06(日) 23:20:21.13[2] 問題文:整数型の要素を最大20個格納できる配列を宣言し,先頭から10個分には2を,
後半の10個分には3を格納せよ。正しく格納されたことを出力する必要があるが,
出力する際には2を10個分空白区切りで出力し,改行した後に3を10個分空白区切りで出力すること。
[3] 環境
[3.1] OS: Win
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限: 11月7日
よろしくお願いします
0037デフォルトの名無しさん
2011/11/06(日) 23:56:59.99#include <stdio.h>
int main()
{
int a[20];
int i;
for (i = 0; i < 10; i++) {
a[i] = 2;
}
for (; i < 20; i++) {
a[i] = 3;
}
for (i = 0; i < 20; i++) {
printf("%d%c", a[i], ((i % 10) == 9)? '\n': ' ');
}
return 0;
}
0038デフォルトの名無しさん
2011/11/06(日) 23:59:08.37大してテストしてないので、十分検証してから提出してくださいな
http://ideone.com/VjhNB
0039デフォルトの名無しさん
2011/11/07(月) 00:03:17.05#include <stdio.h>
int main(void)
{
int a[20];
int i;
for (i = 0; i < 20; i++)
a[i] = i / 10 + 2;
for (i = 0; i < 20; i++)
printf("%d%c", a[i], ((i + 1) % 10) ? ' ' : '\n');
return 0;
}
0040デフォルトの名無しさん
2011/11/07(月) 00:06:25.03#include <stdio.h>
void disp(int *a,int l)
{
while(l--) printf("%d ",*a++);
printf("\n");
}
int main(void)
{
int array[20]={2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3};
disp(array ,10);
disp(array+10,10);
return(1);
}
0041デフォルトの名無しさん
2011/11/07(月) 00:14:19.39#include <stdio.h>
main(i){int a[20];for(--i;i<20;a[i]=i/10+2,printf("%d%c",a[i],((i+1)%10)?' ':'\n'),i++);}
0042デフォルトの名無しさん
2011/11/07(月) 00:23:22.99/*>>36*/
#include <stdio.h>
main(i){int a[20];for(i=0;i<20;a[i]=i/10+2,printf("%d%c",a[i],' '-(i==9)*22),i++);}
0043デフォルトの名無しさん
2011/11/07(月) 00:28:04.80ちょw
絶対先生に合格もらえないだろwww
0044デフォルトの名無しさん
2011/11/07(月) 00:33:44.22100byte切れない
/*>>36*/
#include <stdio.h>
main(i){int a[20];for(i=0;i<20;a[i]=i/10+2,printf("%d \0%d\n"+(i++==9)*4,a[i]));}
0045デフォルトの名無しさん
2011/11/07(月) 00:37:32.98/*>>36*/
#include <stdio.h>
main(i){int a[20];for(i=0;i<20;printf("%d \0%d\n"+(i++==9)*4,a[i]=i/10+2));}
0046デフォルトの名無しさん
2011/11/07(月) 00:38:19.55#include <stdio.h>
int main(void)
{
int i, j, m, n, d, c, a[10000] = {1};
scanf("%d", &m);
scanf("%d", &n);
for(i = d = 0; i < n; i++) {
for(j = c = 0; j <= d; j++) {
a[j] = a[j] * m + c;
if(a[j] >= 10000) {
c = a[j] / 10000;
a[j] %= 10000;
}
else c = 0;
}
if(c) a[++d] = c;
}
printf("%d", a[d]);
while(--d >= 0) printf("%04d", a[d]);
return 0;
}
0047デフォルトの名無しさん
2011/11/07(月) 00:46:54.54#include<stdio.h>
int main(void)
{
int a[20];
int i;
for(i = 0; i < 20; i++)
{
if(i<10)
{
a[i] = 2;
printf("%d ",a[i]);
if(i == 9)
{
printf("\n");
}
}
else
{
a[i] = 3;
printf("%d ",a[i]);
}//3を出力した後に改行しろとは書いてないと言い訳してみる
}
return 0;
}
0048デフォルトの名無しさん
2011/11/07(月) 00:49:04.53i,a[20];main(){for(;i<20;i++)printf(i==9?"%d\n":"%d ",a[i]=i/10+2);}
http://hibari.2ch.net/test/read.cgi/tech/1313183984/22
さすがに、10万ビットにもなると遅くて遅くて‥‥‥。
乗算ルーチンにて、乗数を上位ビットから調べているのですが、これを下位ビットから調べるようにすれば小さい数字の場合はかなりましになるかもしれません。
0051デフォルトの名無しさん
2011/11/07(月) 01:15:25.79for文の中に入れたら少し縮んだ、連騰ゴメン、これで最後です
#include <stdio.h>
i,a[20];main(){for(;i<20;printf(i++==9?"%d\n":"%d ",a[i]=i/10+2));}
005226
2011/11/07(月) 01:34:53.61作成ありがとうございます
非常に助かります
宜しければもう1点お付き合いください
>>29で指摘して頂いている点なのです
今出ている処理で0を返せばいいのは分かるのですが
エラー時に-1を返す時にはどのようになるのでしょうか
お願いします
0053デフォルトの名無しさん
2011/11/07(月) 02:08:39.97こんなのろいコードを提出したらさすがに怒られるだろ。
Nの値に応じてどれだけの値を計算できるか、どのぐらいの計算量が発生するか
考えた方がいい。
確かに >>49 は失敗作。
題意を満たすためには、15万ビット×32ビット:Ο(N)の演算でよかったところを、あらかじめ作成していた 15万 x 15万ビット:Ο(N^2) の演算器をひっつけただけの構造ですから‥‥‥。
0055デフォルトの名無しさん
2011/11/07(月) 03:19:13.43なるほど、素晴らしいですね。今後もそちらのスレだけで頑張ってください。こちらには来ないでください。迷惑です。
0056デフォルトの名無しさん
2011/11/07(月) 03:31:21.55誰か解説よろ
0057デフォルトの名無しさん
2011/11/07(月) 03:40:28.06> 先頭から10個分には2を,
> 後半の10個分には3を格納せよ。正しく格納されたことを出力する必要が
0058デフォルトの名無しさん
2011/11/07(月) 07:00:47.5520個の配列を宣言してから値を入れないとダメだと思うんだが・・・
宣言と同時に初期化してたら、先生から一本取ることは出来るかもだが、まず怒られる罠w
まあ、問題文も悪いんだが
0059デフォルトの名無しさん
2011/11/07(月) 15:05:22.39[2] 問題文(含コード&リンク):
設問1-1
プログラム例7.3.1をswitch文を使わずにif文、else if文を使うプログラムに変更しなさい。
変数xの値をキーボードから入力するように機能変更しなさい。
プログラム例7.3.1
ttp://www.dotup.org/uploda/www.dotup.org2233167.txt.html
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:[2011年11月11日8:00まで]
[5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文
繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数
条件分岐if文、要素番号idx使用の書換、データの入れ替え
条件分岐・論理演算子を用いたif文の条件、if文、else if文
switch文は習いました。
宜しくお願いします。
0060デフォルトの名無しさん
2011/11/07(月) 16:21:50.02以下の2*2行列x, yの積 x*yを計算し、その結果を表示するプログラムを作成せよ。
x= ( 1 2 )
4 5
y= ( 1 5 )
5 3
[2]
2つの3成分ベクトル a=(3.0, 2.0, 1.0) , b=(-2.0, 1.0, 1.0)を double型配列に格納し、aとbの内積を計算するプログラムを作成せよ。
すみませんが、わからなかったのでお願いします。
006160
2011/11/07(月) 16:28:25.00>>60の[1]ですが、2行2列の行列でx11=1, x12=2, x21=4, x22=5で、
y11=1, y12=5, y21=5, y22=3です。
ややこしくなってしまいすみません。よろしくお願いします。
0062デフォルトの名無しさん
2011/11/07(月) 16:42:37.24>>1
0063デフォルトの名無しさん
2011/11/07(月) 16:51:41.30すみません。不注意でした。
0064デフォルトの名無しさん
2011/11/07(月) 17:32:34.19[1] http://ideone.com/52RZc
[2] http://ideone.com/voYBg
0065デフォルトの名無しさん
2011/11/07(月) 17:58:48.63#include <stdio.h>
int main(void)
{
int x, z;
scanf("%d",&x);
z= x % 2;
if(z == 0)
printf("x= %d は偶数です.\n",x);
else if(z == 1)
printf("x= %dは奇数です.\n",x);
else
printf("xは負の数である可能性があります.\n");
return 0;
}
0066デフォルトの名無しさん
2011/11/07(月) 18:25:59.24ありがとうございました。
0067デフォルトの名無しさん
2011/11/07(月) 18:49:56.2010000^10000 一秒以内ででるのがでけた
http://codepad.org/kWVLtEjL
0068デフォルトの名無しさん
2011/11/07(月) 19:12:47.49[2] 問題文:整数型の要素を最大10個格納できる配列を宣言する。
添え字が偶数の要素として2、添え字が奇数の要素として3を格納し、
2 3 2 3 2 3 2 3 2 3の形式で出力せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 11月8日
添え字の判定がよくわかりません。
どなたかよろしくお願いします。
0069デフォルトの名無しさん
2011/11/07(月) 19:27:06.60#include <stdio.h>
int main()
{
int ary[10]={0};
int i,temp=0;
for(i = 0; i<(sizeof(ary)/sizeof(int));i++){
temp = i%2;
if(temp == 0)
ary[i] = 2;
else if(temp == 1)
ary[i] = 3;
}
for(i = 0; i<(sizeof(ary)/sizeof(int));i++){
printf("%d ",ary[i]);
}
putchar('\n');
return 0;
}
0070デフォルトの名無しさん
2011/11/07(月) 19:30:49.53#include <stdio.h>
int main(void)
{
int i, j, a[10];
for(i = 0, j = 2; i < 10; i++, j ^= 1) a[i] = j;
for(i = 0; i < 10; i++) printf("%d ", a[i]);
return 0;
}
0071デフォルトの名無しさん
2011/11/07(月) 19:36:41.07>>46の方が速くないか?
0072デフォルトの名無しさん
2011/11/07(月) 19:51:44.14確かに >>46 の方が早い
0073デフォルトの名無しさん
2011/11/07(月) 20:20:09.42初期化したらあかんのかw
まあ…ありがとう。
0074デフォルトの名無しさん
2011/11/07(月) 20:32:58.24問題文をよく読めばわかるが、この問題で生徒に学ばせたいことは、ループによる配列の初期化と配列の内容を表示する際、簡単な制御をさせるのが目的。
問題文の要素数が少なすぎるんだよ。
せめて100個とかにすればループで初期化せざるを得ないのに、中途半端な数だから。
0075デフォルトの名無しさん
2011/11/07(月) 20:55:38.59実測してみた
出力先をすべてファイルに変更しループの回数は
void sub1() {
mpz_t a;
mpz_init_set_ui(a, 10000);
mpz_pow_ui(a, a, 10000);
mpz_out_str(fp1, 10, a);
}
が100ms前後になるぐらいの回数に調整
gmp : 103 ms
>>64 : 5856 ms
>>67 : 19211 ms
0076デフォルトの名無しさん
2011/11/07(月) 20:57:13.03○ >>46 : 5856 ms
0077デフォルトの名無しさん
2011/11/07(月) 21:09:40.53コンパイラとコンパイルオプションはどんなん?
0078デフォルトの名無しさん
2011/11/07(月) 21:13:53.41-O2付け忘れてた
cygwin gcc-4.5.3
gcc -O2 main.c -lgmp -lwinmm
gmp 101 ms
>>46 1976 ms
>>67 7105 ms
vc9 オプションはデフォ
mpir 189 ms
>>46 1978 ms
>>67 7432 ms
0079デフォルトの名無しさん
2011/11/07(月) 21:19:23.78乙
gmp はえー
0080デフォルトの名無しさん
2011/11/07(月) 21:42:51.08作成ありがとうございました
助かりました
0081デフォルトの名無しさん
2011/11/07(月) 22:57:00.18i,a[10];main(){for(;i<10;printf("%d ",a[i++]=2|1&i));}
0082デフォルトの名無しさん
2011/11/07(月) 23:02:02.44そりゃー10000乗を素直に10000回のかけ算でやるコードとでは差はでかいかと。
とりあえずバイナリー法というやつを使えばいいんじゃないでしょうか。
0083デフォルトの名無しさん
2011/11/07(月) 23:18:06.060084デフォルトの名無しさん
2011/11/07(月) 23:30:14.75[2] 問題文:10個の要素が格納できる配列を2つ宣言し、それぞれ任意の整数で初期化せよ。
その後、この2つの配列の中身を入れ替えよ。
[3] 環境
[3.1] OS: Win
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限: 11月8日12時
代入、参照、if(else)、for、配列は習いました。
x[10] = {1, 2, (ry};で初期化した後どうやって入れ替えたらいいか分かりません。
よろしくお願いします。
0085デフォルトの名無しさん
2011/11/07(月) 23:37:06.05ttp://ideone.com/QUVfg
0086デフォルトの名無しさん
2011/11/07(月) 23:41:50.83#include <string.h>
void SwapAry10(int *Sorc1,int *Sorc2)
{
int temp[10]={0};
memcpy(&temp,Sorc1,sizeof(int)*10);
memcpy(Sorc1,Sorc2,sizeof(int)*10);
memcpy(Sorc2,&temp,sizeof(int)*10);
}
0087デフォルトの名無しさん
2011/11/07(月) 23:56:00.76iの初期化忘れとる。
0088デフォルトの名無しさん
2011/11/08(火) 00:21:01.16iはグローバル変数だから0で初期化されてる
0089デフォルトの名無しさん
2011/11/08(火) 02:42:42.31そりゃコンパイラ依存だな
0090デフォルトの名無しさん
2011/11/08(火) 02:44:51.27いつの時代の人間だよw
K&R1の昔からstatic/extern な変数は 0 で初期化と決まっています。
0092デフォルトの名無しさん
2011/11/08(火) 05:04:44.32[2] 問題文:ttp://www1.axfc.net/uploader/Sc/so/290413
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2011年11月08日18:00まで
[5] その他の制限:あまり高度な記述をしないでいただけると有難いです
その他の制限は問題文中にあるものだけです
よろしくお願いします
0093デフォルトの名無しさん
2011/11/08(火) 07:45:55.98http://ideone.com/UbwDh
0094デフォルトの名無しさん
2011/11/08(火) 08:36:55.80ありがとうございます、助かりました
0095デフォルトの名無しさん
2011/11/08(火) 11:50:56.32[2] 問題文:入力した文字列aから交互に一文字ずつ抜き出し、二つの文字列b,cとして出力するプログラムを書け
例
文字列a:あいうえおかきくけこ
文字列b:あうおきけ
文字列c:いえかくこ
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2011年11月9日9:00まで
[5] その他の制限:特になし
0096デフォルトの名無しさん
2011/11/08(火) 12:04:49.280097デフォルトの名無しさん
2011/11/08(火) 12:34:16.08MinGW 4.5.2で確認した
ttp://ideone.com/2rukX
けど課題的にcharでいい気がする・・・
0098デフォルトの名無しさん
2011/11/08(火) 13:19:12.92全角、半角混じり対応
http://ideone.com/iB837
0099デフォルトの名無しさん
2011/11/08(火) 14:40:20.0684です、助かりました。ありがとうございました!
0100デフォルトの名無しさん
2011/11/08(火) 15:21:19.44[2] 問題文
整数n(>=1)を入力し,nの約数の個数を返す関数int divisor(int)を用いてnが素数かどう
かを判定し,その結果を画面表示するプログラムを作成せよ.
[3] 環境
[3.1] OS:Linux 5.2
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2011年11月14日13:00まで
[5] その他の制限:特にありません。宜しくお願いします。
0101デフォルトの名無しさん
2011/11/08(火) 15:34:16.19int divisor(int n)
{
int i, c;
for(i = 1, c = 0; i <= n; i++) if(n % i == 0) c++;
return c;
}
int main(void)
{
int n;
scanf("%d", &n);
if(divisor(n) == 2) printf("素数です\n");
else printf("素数ではありません\n");
return 0;
}
0102デフォルトの名無しさん
2011/11/08(火) 15:58:53.12[2] √a(ただしaは正の実数)の近似値を求めて表示するプログラムを作成せよ。
X(n)=1/2{X(n-1)+a/X(n-1)},X(0)=1.0 ()の文字は右下の文字。
・nは整数型、X(n)は実数型(float or double) ・aの値はキーボードから入力
・再起呼び出しによる方法、逐次的に計算する方法のいずれでもよい
[3] 環境
[3.1] W7
[3.2] Visual C++ 2010 Express
[3.3] どちらでも可
[4] 2011年11月8日22:00
[5] 1.main() 以外の関数を少なくとも一つ作成して使用する
2.#include <math.h> を入れない
3.sqrt(), pow() 関数を使用しない
4.繰り返し回数 n の値は、次のいずれかの方法で決定する
A. n=20
B. xnは十分真の値に近く、かつなるべく小さいnの値
Bの場合はその根拠(実験結果や考察内容など)も示すこと。内容によってはボーナス加点する。例えば下記のような方法があるが、これに限定されることなく、他の方法でもよい
例: いくつかのaの値に対して、nを増加させながらxnの値を表示する実験を行う
よろしくお願いします。
0103デフォルトの名無しさん
2011/11/08(火) 16:18:09.76#include <stdio.h>
double mysqrt(double a, int n)
{
double xn, xn_1;
int i;
xn=1.0;
for(i=0;i<n;i++)
{
xn_1=xn;
xn=1.0/2.0*(xn_1+a/xn_1);
}
return xn;
}
int main(void)
{
double a;
printf("Input a : ");
scanf("%lf", &a);
printf("%f\n", mysqrt(a, 20));
return 0;
}
0104デフォルトの名無しさん
2011/11/08(火) 17:03:20.99#include <stdio.h>
double X(double a, int n)
{
if (n < 1)
return 1.0;
return 0.5 * (X(a, n - 1) + a / X(a, n - 1));
}
int main(void)
{
int i;
double a;
printf("input a: ");
scanf("%lf", &a);
for (i = 1; i <= 20; i++) {
printf("X(%d):%f\n", i, X(a, i));
}
return 0;
0105デフォルトの名無しさん
2011/11/08(火) 17:06:32.94[2] 問題文(含コード&リンク):
問題1 プリントの線形合同法により乱数を作って,200 個の値を出力しなさい。
問題2 プリントのラグ付きフィボナッチ法により乱数を作って,200 個の値を出力しなさ
い。ただし、x[0]~x[31] は、線形合同法により初期化する
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:11/9 6:00
よろしくお願いします
0106デフォルトの名無しさん
2011/11/08(火) 17:09:27.36プリントってなんぞ?
0107デフォルトの名無しさん
2011/11/08(火) 17:24:55.84http://ideone.com/3zekC
0109デフォルトの名無しさん
2011/11/08(火) 18:25:28.37プリントの内容か、画像プリーズ。
0110デフォルトの名無しさん
2011/11/08(火) 19:16:05.410111デフォルトの名無しさん
2011/11/08(火) 20:13:28.980112デフォルトの名無しさん
2011/11/08(火) 20:19:13.11こんなんでいい?
http://codepad.org/O4RrPX0Q
0113デフォルトの名無しさん
2011/11/08(火) 20:21:29.840114デフォルトの名無しさん
2011/11/08(火) 21:06:23.44[2] 問題文
main関数の中で char cs[] [6] = {"Turbo","NA","DOHC"};
と配列cs が設定されている 文字列を逆順にし大文字の英字を小文字に変換させ表示させるプログラム
例st[0] ==>" obrut のような感じで
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:11:9 19時まで
[5] その他の制限: ポインタは無しで
よろしくおねがいします
0115デフォルトの名無しさん
2011/11/08(火) 21:21:37.29#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(void)
{
char cs[][6] = {"Turbo", "NA", "DOHC"};
const int N = sizeof cs / sizeof cs[0];
int i, j;
for (i = 0; i < N; ++i) {
printf("cs[%d] ==> \"", i);
for (j = strlen(cs[i]) - 1; 0 <= j; --j) {
putchar(tolower(cs[i][j]));
}
printf("\"\n");
}
return 0;
}
0116114
2011/11/08(火) 21:29:16.95関数 void put reverse void put_toupper put_strary を使ったのをお願いします
0117デフォルトの名無しさん
2011/11/08(火) 21:41:51.930118デフォルトの名無しさん
2011/11/08(火) 22:04:01.95[2] 問題文(含コード&リンク):
配列の中の文字列にいくつ単語が出てきたかをカウントする
例 a[]="バナナ リンゴ スイカ バナナ"
バナナ 2回
リンゴ 1回
スイカ 1回
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:指定なし
[3.3] 言語:C言語
[4] 期限: 11/9
[5] その他の制限: 特に無いです
よろしくお願いします
0119デフォルトの名無しさん
2011/11/08(火) 22:20:04.78[2] 問題文(含コード&リンク):
奇数で初期化した配列を動的に確保する関数
書式
int *oddalloc(size_t n);
動作
長さnのintの配列をmalloc()で確保し、最初のn個の正の奇数で初期化する。
返り値
確保した配列の先頭を指すポインタを返す。 確保できなかった場合はNULLを返す。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:無期限
[5] その他の制限: 関数を使ってください
できれば、詳しい解説もほしいです(><)
0120デフォルトの名無しさん
2011/11/08(火) 22:39:19.50int *oddalloc(size_t n)
{
int *p;
size_t i;
p = (int *) malloc(sizeof(int) * n);
if (p)
for (i = 0; i < n; i++)
p[i] = 2 * i + 1;
return p;
}
0121デフォルトの名無しさん
2011/11/08(火) 22:49:00.35http://ideone.com/KYIRL
0122デフォルトの名無しさん
2011/11/08(火) 23:05:06.04#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct tag_wordlist_t{
char *word;
int count;
struct tag_wordlist_t *next;
}wordlist_t;
int main(void){
char a[]="バナナ リンゴ スイカ バナナ", *p, buf[100+1];
int n;
wordlist_t *first=NULL, *last=NULL, *list_new, *it;
for(p=a;sscanf(p, "%100s%n", buf, &n)>=1;p+=n){
for(it=first;it;it=it->next){
if(strcmp(it->word, buf)==0){
it->count++;
break;
}
}
if(it==NULL){
list_new=malloc(sizeof(wordlist_t));
list_new->word=strdup(buf);
list_new->count=1;
list_new->next=NULL;
if(last) last=last->next=list_new;
else first=last=list_new;
}
}
for(it=first;it;it=it->next) printf("%s %d\n", it->word, it->count);
return 0;
}
0123デフォルトの名無しさん
2011/11/08(火) 23:09:44.76/* size_tは符号無しの整数型、Cなら元を辿るとただのunsigned intだけど
長ったらしいし符号無しの標準として使えるように定義されてる、
正の整数を使うのが分かってる場合はsize_tを使う場合が多い、
また、コードへの意味合いとしても役立つ、
個数という意味で名前に n を使ってるからintでいいじゃん、最大値超えるデータも扱わないし、
なんて声もたまにあるが、型に意味を持たせるのも非常に大事 */
int *oddalloc(size_t n)
{
int *p;
size_t i;
p = (int *) malloc(sizeof(int) * n);
if (p)
for (i = 0; i < n; i++)
p[i] = 2 * i + 1;
/* malloc()関数は成功すると確保した配列の先頭アドレスを返すが、失敗するとNULLを返す、
配列への代入は失敗時は通らないので問題ない、
またコードの美しさの点でも分岐が少ない方が良い事からこのような書き方になってる、と思う。 */
return p;
}
0124デフォルトの名無しさん
2011/11/08(火) 23:11:57.79もっとよく調べるんだ
0125デフォルトの名無しさん
2011/11/08(火) 23:54:51.28有難う御座います
0126デフォルトの名無しさん
2011/11/09(水) 07:36:40.36[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク): 与えられた任意の長さのアルファベットの文字列(ただし
重複する文字は含まないとする)に対して、文字を任意の順番に入れ替えてできる
文字列のパターンをすべて出力する関数permute()を作成せよ。
例:
permute("ABC");
ABC ACB BAC BCA CAB CBA
[3] 環境
[3.1] OS:Mac OS X
[3.2] コンパイラ名とバージョン:gcc 4.2.1
[3.3] 言語:C
[4] 期限:不明
[5] その他の制限:
0127デフォルトの名無しさん
2011/11/09(水) 10:18:43.25ttp://codepad.org/281U66WI
もう少しなんとかなりそうな気はするんだが....
0128デフォルトの名無しさん
2011/11/09(水) 15:38:27.96力技
http://ideone.com/2UIi2
0130デフォルトの名無しさん
2011/11/09(水) 18:00:00.64http://ideone.com/wmJKd
0132デフォルトの名無しさん
2011/11/09(水) 18:50:26.83[2] 問題文(含コード&リンク)
main関数の中で
char cs[] [6] = {"Turbo", "NA", "DOHC"};
と配列csが初期設定されています。このとき
$ gcc -o report3 report3.c
$ ./report3
st[0] ==> "obrut"
st[1] ==>"an"
st[2] ==>"chod"
と画面に表示するCプログラムreport3.cを書いてください。
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:11月9日(出来れば早めにお願いします)
よろしくお願いします。
0133デフォルトの名無しさん
2011/11/09(水) 19:02:37.00>>114,130
0134デフォルトの名無しさん
2011/11/10(木) 00:20:48.601:キーボードから自然数 m と n を読み込む. 2:0 以上 1 未満の一様乱数 n 個の平均値を計算して、実行例ように表示. 3:この 2:の操作を m 回繰り返す.
実行例
> ./ex06-3
繰り返し回数を入力: 10
乱数の個数を入力: 100
回 平均
1 0.509034
2 0.488603
3 0.485044
4 0.473806
5 0.503660
6 0.519470
7 0.477955
8 0.536236
9 0.516652
10 0.467380
>
この動作をするプログラムを作成せよ。乱数は疑似乱数発生関数 drand48 を用いる.この関数は呼び出すたびにdrand48() を 3 回呼び出すと,drand48() の生成した三つの乱数がそれぞれ変数 x, y, z に格納される.
double x, y, z; x = drand48(); y = drand48(); z = drand48();
この関数を用いるプログラムは,冒頭に #include <stdlib.h> と記述
[3] 環境
[3.1] OS: Mac
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 2011年11月14日
[5] その他の制限:for文while文の範囲です。
0135デフォルトの名無しさん
2011/11/10(木) 00:26:24.28漸化式を考える.x_n+1 = (x_n + a / x_n) / 2
初項 x_0 = a
double 型変数 xn と xn1 を用意する.キーボードから正の実数 a と e を読み込む.初項 a の値を変数 xn に代入し,実行例のように 0 回目の繰り返しの途中経過を指数形式で小数点以下 16 桁まで表示する.漸化式に従って xn の次項を求め,
その値を変数 xn1 に代入する.x_n1 と x_n の差を調べ,漸化式が収束したかどうかを判定する.x_n1 と x_n の差の絶対値が e 以上であれば,漸化式はまだ収束していないと考える.
この場合には,x_n1 の値を x_n に代入してから以下の実行例のように繰り返しの途中経過を表示する.漸化式に従って x_n の次項を求め,その値を変数 x_n1 に代入し,5. を繰り返す.
x_n1 と x_n の差の絶対値が e よりも小さければ,漸化式は収束したものとみなす.この場合には xn1 と sqrt(a) を表示する.
実行例
> gcc -o ex06-4 ex06-4.c -lm
> ./ex06-4
正の実数を入力: 1.234567890
解の精度を入力: 1.0e-15
回 近似値
0 1.2345678899999999e+00
1 1.1172839450000001e+00
2 1.1111281580953725e+00
3 1.1111111061864010e+00
4 1.1111111060555556e+00
5 1.1111111060555556e+00
sqrt 1.1111111060555554e+00
>
この動作をするプログラムを作成せよ
[3] 環境
[3.1] OS: Mac
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2011年11月14日
[5] その他の制限:for文while文の範囲です。
0136デフォルトの名無しさん
2011/11/10(木) 00:29:12.30[2] 問題文(含コード&リンク):
整数型の変数 i の値を 1 から k まで順に変化させ,以下を繰り返す.
n に i の値を代入する.
n が偶数のときは n を 2 で割った値を n に代入する.
n が奇数のときは n を 3 倍して 1 を加えた値を n に代入する.
n の値が 1 になるまで b. の操作を繰り返す.
i ごとに繰り返した回数を以下の実行例のように出力する.
実行例
>./extra06-2
自然数を入力: 4
1: 0
2: 1
3: 7
4: 2
>
この動作をするプログラムを作成せよ
[3] 環境
[3.1] OS:Mac
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2011年11月14日
[5] その他の制限:for文while文の範囲です。
0137デフォルトの名無しさん
2011/11/10(木) 00:30:18.39[2] 問題文(含コード&リンク):
キーボードから自然数 n を読み込む.
読み込んだ自然数 n の階乗を計算する.
計算結果を以下の実行例のように出力する.
実行例
>./extra06-1
自然数を入力: 5
5! = 1 x 2 x 3 x 4 x 5 = 120
>./extra06-1
自然数を入力: 6
6! = 1 x 2 x 3 x 4 x 5 x 6 = 720
>
この動作をするプログラムを作成せよ
[3] 環境
[3.1] OS:Mac
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2011年11月14日
[5] その他の制限:for文while文の範囲です。
0138デフォルトの名無しさん
2011/11/10(木) 00:52:43.14#include <stdio.h>
int main(void)
{
int i, j, k, n;
printf("自然数を入力:");
scanf("%d", &k);
for(i = 1; i <= k; i++) {
for(j = 0, n = i; n != 1; j++) n = n & 1 ? n * 3 + 1 : n >> 1;
printf("%d: %d\n", i, j);
}
return 0;
}
0139デフォルトの名無しさん
2011/11/10(木) 01:29:20.31[1] 授業単元: 授業ではないのですが学校で使用するための勉強中
[2] 問題文(含コード&リンク):
////A.h////
class A{
private: int a;
public:void set();}
void A::set(){
A A1;
a = 1; }
////B.h//////
#include "A.h"
class B{
public:void get();}
void::get(){
ここで以前宣言したクラスAのA1のa=1を呼び出したいです。}
[3] 環境
[3.1] OS: windows7
[3.2] コンパイラ名とバージョン: visual c++ 2010?(無料のです)
[3.3] 言語: c++
[4] 期限: 本日中
[5] その他の制限: 特になし(なるべく簡単でお願いします)
0140デフォルトの名無しさん
2011/11/10(木) 01:33:55.33[2] 問題文(含コード&リンク):
3行3列の行列aを入力後、余因子行列で行列値|a|を求める
[3] 環境
[3.1] OS: (WindowsXP)
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:AM6時までに。
[5] 余因子行列でお願いします
0141デフォルトの名無しさん
2011/11/10(木) 01:44:13.72早乙女博士にゲッターを開発してもらう
0142デフォルトの名無しさん
2011/11/10(木) 02:12:44.48class B内で
A A1;
A1.get();
ですか?
0143デフォルトの名無しさん
2011/11/10(木) 02:28:31.10#include <stdio.h>
int main(void){
int m[3][3], i, det;
for (i = 0; i < 3; i++) {
printf("a%d1 a%d2 a%d3 = ", i + 1, i + 1, i + 1);
scanf("%d %d %d", &m[i][0], &m[i][1], &m[i][2]);
det = m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1])
- m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0])
+ m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]);
printf("%d", det);
}
return 0;
}
0145デフォルトの名無しさん
2011/11/10(木) 03:56:29.23#include<stdio.h>
int main(void)
{
int n,i;
double ret=1;
printf("自然数を入力: ");
scanf("%i",&n);
printf("%d! = 1",n);
for (i=2 ; i<=n ; i++) {
ret *= i;
printf(" x %d",i);
}
printf(" = %-14.0lf¥n",ret);
return 0;
}
0146デフォルトの名無しさん
2011/11/10(木) 09:58:01.38どういう誤解をしているのか理解できない
A1.a に値はセットされていないし、A1 自体 A.set() のスコープ内にしか存在しない
何を目指しているのか判らないのでどうすれば良いかも判らない
0147デフォルトの名無しさん
2011/11/10(木) 14:19:07.55[2] 問題文(含コード&リンク):文字列st の中に含まれる文字ch の個数(含まれて
いなければ0 とする)を返す関数
int str_chnum(const char st[], int ch)
を作成せよ.
以下の実行例のように,関数の動作を確認
できるmain 関数も作成して完成させよ
【実行例】文字列を入力してください:Koukka
検索する文字を入力してください:k
その文字は2 個含まれています。
(注意)】scanf で文字列を入力させた後にgetchar 関
数で文字を入力させたい場合,getchar で文字を入力
させる前に
scanf("%*c");
などとして,バッファに残った改行コードを読み捨て
ておく必要がある.
[3] 環境
[3.1] OS: (WindowsXP)
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:AM7時までに。
[5] ポインタはなしでお願いします
0148デフォルトの名無しさん
2011/11/10(木) 14:42:59.75http://ideone.com/79UPu
0149デフォルトの名無しさん
2011/11/10(木) 14:44:24.11前スレくらいにやったな
#include <stdio.h>
#include <string.h>
int str_chnum(const char *st,int ch){
int index=0, count=0;char *p = 0;
do{p = strchr(&st[index],ch);}while
(p&&(count++,index=p-st+1));return count;}
int main(void){char buf1[100];int buf2;
printf("文字列を入力してください:");fgets(buf1,100,stdin);putchar('\n');
printf("検索する文字を入力してください");buf2 = getc(stdin);putchar('\n');
printf("その文字は%d個含まれています。\n",str_chnum(buf1,buf2));
}
0151デフォルトの名無しさん
2011/11/10(木) 15:20:09.53det = m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1])
- m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0])
+ m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]);
↓
for(det = m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1])
- m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0])
+ m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]);0;);
0152デフォルトの名無しさん
2011/11/10(木) 15:31:36.45#include <stdio.h>
int
main(void)
{
int m[3][3] = {}, i, det = 0;
for (i = 0; i < 3; i++) {
printf("a%d1 a%d2 a%d3 = ", i + 1, i + 1, i + 1);
scanf("%d %d %d", &m[i][0], &m[i][1], &m[i][2]);
}
for (i = 0; i < 3; i++)
det += m[0][i] * (m[1][(i + 1) % 3] * m[2][(i + 2) % 3] - m[1][(i + 2) % 3] * m[2][(i + 1) % 3]);
printf("%d¥n", det);
return 0;
}
0153デフォルトの名無しさん
2011/11/10(木) 15:38:47.45こっちのほうが見やすいか。
#include <stdio.h>
int main(void){
int m[3][3] = {}, i, det = 0;
for (i = 0; i < 3; i++) {
printf("a%d1 a%d2 a%d3 = ", i + 1, i + 1, i + 1);
scanf("%d %d %d", &m[i][0], &m[i][1], &m[i][2]);
}
for (i = 0; i < 3; i++) {
det += m[0][i] * (m[1][(i + 1) % 3] * m[2][(i + 2) % 3]);
det -= m[0][i] * (m[1][(i + 2) % 3] * m[2][(i + 1) % 3]);
}
printf("%d¥n", det);
return 0;
}
0154デフォルトの名無しさん
2011/11/10(木) 15:51:44.21int型整数 x に対して、その3乗の値 x3 を返す関数 int cube(int x) を作成せよ。
そしてcubeを用いて、1から10までの整数の3乗値を出力するプログラムを作成せよ。
[2]
一つの行に、n個の “ “(空白)に続いてm個の “*”を順番に出力する関数 void putzs(int n, int m)を作成せよ。
更にこれを用いて no段のピラミッドを描くプログラムを作成せよ。
no=3の場合
*
***
*****
よろしくお願いします。
0155デフォルトの名無しさん
2011/11/10(木) 16:18:09.06http://ideone.com/NPbCp
0156デフォルトの名無しさん
2011/11/10(木) 16:26:10.39[1]
#include <iostream>
int cube(int x){return x*x*x;}
main(){for(int x=1;x<=10;x++){std::cout << cube(x) <<std::endl;}}
[2]
#include <string>
#include <iostream>
void putzs(int n,int m){n&&std::string s;s.append(n,' ');m&&s.append(m,'*');
std::cout << s << endl;}
main(){int no=3;for(int m=1;m<=no*2-1;m+=2){putzs(0,m);}}
0157 ◆SCJwtK.IhE
2011/11/10(木) 19:31:50.61[2] 問題文(含コード&リンク):
char str[] = "Hello!\n";
と宣言している状態で、
printf(&str[i]);
(iは0〜8)のようにprintf関数を使用した際の&strは何を意味しているか
[3] 環境
[3.1] OS:unix
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:c
[4] 期限:11/10 22:00までに
[5] その他の制限:出来るだけ具体的に
0158 ◆SCJwtK.IhE
2011/11/10(木) 19:34:41.53[2] 問題文(含コード&リンク):C言語プログラムにおける「文字列」の
実態は何か答えよ。
[4] 期限: 11/10 22:00
[5] その他の制限:具体的に
0159デフォルトの名無しさん
2011/11/10(木) 19:40:33.13文字列
0160デフォルトの名無しさん
2011/11/10(木) 19:47:36.20&str[8]は悪魔を召喚するコード
0161デフォルトの名無しさん
2011/11/10(木) 19:48:24.88文字の配列
ってか、入門書に載ってるだろ
0162 ◆SCJwtK.IhE
2011/11/10(木) 19:48:30.77[2] 問題文(含コード&リンク):
char str[] = "Hello!\n";
と宣言している状態で、
printf("Hello!\n");
printf("%s",str);
printf(str);
とprintf関数を使用した際の結果を、類推されるprintf関数の処理の流れに基づいて説明せよ。
(全て Hello! と出力された)
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: c
[4] 期限: 今日中
[5] その他の制限:具体的に
0163デフォルトの名無しさん
2011/11/10(木) 19:51:40.13マルチすると嫌われるぞ
0164デフォルトの名無しさん
2011/11/10(木) 20:55:05.20ありがとうございました。助かりました。
0165デフォルトの名無しさん
2011/11/10(木) 21:58:57.86別に配列である必要もないだろ
0166デフォルトの名無しさん
2011/11/10(木) 22:10:13.85教師の求めてる答えとしては、これが妥当だと思うが…
代わりに答えてくれろ
0167デフォルトの名無しさん
2011/11/10(木) 22:29:04.37文字が連続したメモリ領域
0168デフォルトの名無しさん
2011/11/10(木) 22:39:09.860169126
2011/11/10(木) 22:50:15.11すごいです。過去の経験からコードのパターンのいろんな引き出しをお持ちなのか、
あるいはいきなりできてしまうものなのか...
で、一応自分に出された課題なのでw アルゴリズムを理解する努力をしてみましたw
>>127さんのは、順列組み合わせの列挙を再帰で実現する感じですかね? 既に選択した
文字を記録する配列を保持しておくと... なるほど。
>>128さんのは、進数と桁数がある値(この場合はどちらも入力した文字列の長さ)の
数字を網羅するループで、全ての桁の数が異なる場合出力する、みたいな感じですかね?
ただ、各桁の3乗の和? みたいのを比較してなぜうまくいくのかよくわからないのですが...
もしかしてこれって数学的な定理かですか? 例えば
x, y, zはそれぞれ 0,1,2のどれかで互いに異なる <=> x^3+y^3+z^3 = 0^3+1^3+2^3
みたいな?
0170デフォルトの名無しさん
2011/11/10(木) 22:55:06.72「K&R第二版p.189可変引数リスト」の内容そのまんま答えればOK。
第二引数移行は可変引数として一括したバイト列として取得され、
第一引数の文字列内に現れる変換仕様に従って
1変数とみなされるバイトサイズとその型ごとに切り刻まれる。
取り出された値は文字に変換され、変換仕様と置換された後、
標準ストリームに出力される。
printf("Hello!\n");は第一引数のみなので
文字列がそのまま標準ストリームに出力される。
printf("%s",str);は第一引数の変換仕様%sにより
第二引数(以降)の最初のデータは終端文字を持つ文字の配列とみなされ、
文字列に変換され%sと置換された後、標準ストリームとやらないか。
printf(str);は str が第一引数であり、変換使用をふくまないため、
そのまま文字列として標準ストリームに出力されまみた。
0171デフォルトの名無しさん
2011/11/10(木) 23:04:43.340172デフォルトの名無しさん
2011/11/10(木) 23:09:42.172乗和だと、例えば05と34とが互いに区別不可。
3乗和なら、少なくとも9桁内で目的の数値間で区別出来る。
0173デフォルトの名無しさん
2011/11/10(木) 23:13:52.22JISのサイト、最新のAdobe Readerだと見られないんだもん。
あとは英語で書くしかない。俺は英語ぺらぺーラだけど三流大学の教授なんて
日本語もあやしかろ? つかどうせ教授じゃなくて臨時講師とか。ワロス
0174デフォルトの名無しさん
2011/11/11(金) 00:09:48.65[2] 問題文(含コード&リンク):
入力した時間と分を長針と短針で示す
アナログ時計を作れ。
[3] 環境
[3.1] OS: windows7
[3.2] コンパイラ名とバージョン: bcc5.11
[3.3] 言語: c
[4] 期限: 11月14日
[5] その他の制限:windouwsAPIなどは使わずに、
普通のC言語でお願いします。
0175デフォルトの名無しさん
2011/11/11(金) 01:24:42.17http://ideone.com/lwiT8
0176デフォルトの名無しさん
2011/11/11(金) 01:33:44.98まともにやったら、すげー手間かかると思うのだが、なんか間違ってないか?
0177デフォルトの名無しさん
2011/11/11(金) 01:39:18.62丸時計を50×50位のAAで出力?
0178デフォルトの名無しさん
2011/11/11(金) 03:30:35.12そうですかー。興味深いですね。
もしかして楕円曲線上の整数解がどうたらとかと関係あるのかなあ。
0179デフォルトの名無しさん
2011/11/11(金) 11:15:00.50電文なんかの固定長データに含まれる文字列は NULL 終端である必要も無い
NullTerminated strings は文字列の一種に過ぎない
0180デフォルトの名無しさん
2011/11/11(金) 11:21:41.78設問は、
>C言語プログラムにおける「文字列」の実態は何か答えよ。
0181デフォルトの名無しさん
2011/11/11(金) 11:33:28.68[2] 問題文(含コード&リンク):
ファジィ推論のプログラム
[3] 環境
[3.1] OS: (Windows7 32bit)
[3.2] コンパイラ名とバージョン: Ms Visual Web Developer 2010)
[3.3] 言語: (C++)
[4] 期限: 無期限)
[5] その他の制限:
http://www.sist.ac.jp/~suganuma/cpp/3-bu/18-sho/18-sho.htm#e-18-5
こちらのプログラムをビルドしたら以下のエラーが出ました。
1>fz.obj : error LNK2019: 未解決の外部シンボル "public: __thiscall Fuzzy::~Fuzzy(void)" (??1Fuzzy@@QAE@XZ) が関数 _main で参照されました。
1>fz.obj : error LNK2019: 未解決の外部シンボル "public: __thiscall Fuzzy::Fuzzy(char *)" (??0Fuzzy@@QAE@PAD@Z) が関数 _main で参照されました。
1>C:\Users\2ch\Documents\Visual Studio 2010\Projects\fuzzy\Debug\fuzzy.exe : fatal error LNK1120: 外部参照 2 が未解決です。
main関数でエラーが出たのは分かるんですが・・・ソースは次レスにて
宜しくお願いします
0182デフォルトの名無しさん
2011/11/11(金) 11:37:19.47#include <stdlib.h>
#include "fuzzy.h"
int main(int argc, char *argv[])
{
double *x, **xx, y; int i1, i2, n_d, n_val;
FILE *in, *out;
if (argc == 4) {Fuzzy fz(argv[1]);
in = fopen(argv[2], "r");
fscanf(in, "%*s %d %*s %d", &n_val, &n_d);
x = new double [n_val]; xx = new double * [n_val];
for (i1 = 0; i1 < n_val; i1++) {fscanf(in, "%*s");
xx[i1] = new double [n_d];
for (i2 = 0; i2 < n_d; i2++)
fscanf(in, "%lf", &xx[i1][i2]);}
fclose(in);
out = fopen(argv[3], "w");
for (i1 = 0; i1 < n_d; i1++) {for (i2 = 0; i2 < n_val; i2++) {
x[i2] = xx[i2][i1]; fprintf(out, "%f ", x[i2]);}
y = fz.Inf(x); // 推論
fprintf(out, "%f\n", y);}
fclose(out);}
else {printf("***error 入力データファイル名を指定して下さい\n");
exit(1);}
return 0;}
0183デフォルトの名無しさん
2011/11/11(金) 11:49:52.36class Fuzzy {
double ***left; // [i][j][0] : 中心
// [1] : 幅
double **right; // [i][0] : 中心
// [1] : 幅
double *omega; // ωの値
int bun; // 積分の分割数
int method; // 推論方法
// =0 : and,or
// =1 : *,or
// =2 : *,+
int n_rule; // 規則の数
int n_val; // 変数の数
int **rule; // [i][j] =0 : i番目の規則はj番目の変数を使用しない
// =1 : i番目の規則はj番目の変数を使用する
public:
Fuzzy(char *); // コンストラクタ
~Fuzzy(); // デストラクタ
double Cross(double, double, double, double);
double Height(double, double *);
double Inf(double *); // 推論の実行
double Result(double *);
};
0184デフォルトの名無しさん
2011/11/11(金) 11:58:24.84電文を扱うプログラム等では NULL 止めではない文字領域も文字列として扱ってるって話なんだけど?
0185デフォルトの名無しさん
2011/11/11(金) 12:03:54.18標準関数が、電文の事を考慮して作ってあるなら、それでいいよ
0186デフォルトの名無しさん
2011/11/11(金) 12:05:35.477.1.1 Definitions of terms
1 A string is a contiguous sequence of characters terminated by and including the first null
character. The term multibyte string is sometimes used instead to emphasize special
processing given to multibyte characters contained in the string or to avoid confusion
with a wide string. A pointer to a string is a pointer to its initial (lowest addressed)
character. The length of a string is the number of bytes preceding the null character and
the value of a string is the sequence of the values of the contained characters, in order.
0187デフォルトの名無しさん
2011/11/11(金) 12:06:41.67Str255だってC言語プログラムにおける「文字列」だな
Null終端だけがCの文字列ってのは思い違いじゃね?
0188デフォルトの名無しさん
2011/11/11(金) 12:08:03.88ソースファイルをプロジェクトフォルダ内に移動したところ
無事にビルド出来ました。
スレ汚しみません。
0189デフォルトの名無しさん
2011/11/11(金) 12:08:43.38やっぱり思い違いだな
0190デフォルトの名無しさん
2011/11/11(金) 12:09:11.88約束事を決めれば、どう言う形式でも文字列としては処理できるけど、
文字列を処理する標準関数で、そういうフォーマットを扱っているかどうかでしょ
0191デフォルトの名無しさん
2011/11/11(金) 12:12:39.97コンストラクタとデストラクタをリンクしてないんだろ
0192デフォルトの名無しさん
2011/11/11(金) 12:14:12.73面倒だからcharの配列でいんじゃね?
0193デフォルトの名無しさん
2011/11/11(金) 12:21:28.44VSにソースファイルをD&Dしてビルドしようとしていたのが原因だったみたいです。
ファイルをプロジェクトフォルダに移動したらエラーは解消しました。
レス有難う御座います。
0195デフォルトの名無しさん
2011/11/11(金) 12:24:52.22どうでもいいけど、ここで聞く前に隣の人に聞くとかできなかったん?
0197デフォルトの名無しさん
2011/11/11(金) 12:46:35.54C言語なら俺に聞け(入門編)Part 92
http://hibari.2ch.net/test/read.cgi/tech/1320933306/
0198デフォルトの名無しさん
2011/11/11(金) 12:57:37.51標準関数になんて束縛されないだろ
0199デフォルトの名無しさん
2011/11/11(金) 13:00:08.37ここは宿題スレ
0200デフォルトの名無しさん
2011/11/11(金) 13:11:28.27そんなこと関係ないぞ
0201デフォルトの名無しさん
2011/11/11(金) 13:13:31.92てか、自分の思い違いを「世間ではそう教えてる」みたいな言い訳でごまかそうという方がおかしいだろ。
ちょっと齧ればNull終端じゃない文字列なんてあちこちのライブラリで使われてるぞ。
Null終端だけがCの文字列なんて教える講師はいないだろ。
0202デフォルトの名無しさん
2011/11/11(金) 13:15:16.590203デフォルトの名無しさん
2011/11/11(金) 13:18:35.09>>158
ずっと宿題の話ですよ
0204デフォルトの名無しさん
2011/11/11(金) 13:23:38.56結論と根拠を明示すればいいだけの事。
0205デフォルトの名無しさん
2011/11/11(金) 13:25:38.75「実態」という言葉の解釈で答えに幅が出る。
0206デフォルトの名無しさん
2011/11/11(金) 13:26:08.38>>180に言えよ。事の発端だろ。
0207デフォルトの名無しさん
2011/11/11(金) 13:33:16.96>>157と>>162もセットで考えたら
NULL終端文字列についてで正解だろうな
0208デフォルトの名無しさん
2011/11/11(金) 14:03:18.24問題が大雑把だし、講師がちゃんと理解してるんだろうかって思う
ちゃんと『実態』を理解してたらこんな設問しないだろ
0209デフォルトの名無しさん
2011/11/11(金) 14:11:44.99気の利いた解答を考えるものではないって、ワンバーグちゃんがいってただろ^^
ここはナル文字終端を持つchar配列って答えとけばいいんだよ
そして心のなかで「設問がクソだなぁ、ああこの人に学んでも何もエルモのないんだろうなぁ。セントエルモ」
って思っときゃいーんだよ。
0210デフォルトの名無しさん
2011/11/11(金) 14:13:19.300211デフォルトの名無しさん
2011/11/11(金) 14:16:13.58[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] その他の制限:
0212デフォルトの名無しさん
2011/11/11(金) 14:37:17.47{
*sp = sec % 60; sec /= 60;
*mp = sec % 60; sec /= 60:
*hp = sec % 24; *dp = sec / 24;
}
0213デフォルトの名無しさん
2011/11/12(土) 00:01:18.2930×30くらいでお願いします><
>>176
間違ってませんよ
0214デフォルトの名無しさん
2011/11/12(土) 00:15:58.15http://codepad.org/KDteTozL
0215デフォルトの名無しさん
2011/11/12(土) 00:36:41.54ありがとうございます><
ところでどうして長針を@、短針を*にされたのですか?
0216デフォルトの名無しさん
2011/11/12(土) 00:39:19.40[2] 問題文(含コード&リンク):sinカーブを縦に描画するプログラムを作れ。0度から360度までの範囲を描画し、
縦軸と横軸も描画すること。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gccなのは確かなのですが、具体的には分かりません
[3.3] 言語: C
[4] 期限:2011年11月16日まで
[5]その他の制限:ポインタ使用不可
よろしくお願いします
0217デフォルトの名無しさん
2011/11/12(土) 00:41:38.89その話を聞きたくば1000万円用意しろ
用意が出来たら写真うp!
0218デフォルトの名無しさん
2011/11/12(土) 00:44:00.91嫌です(^q^)
0219デフォルトの名無しさん
2011/11/12(土) 01:13:37.71main(){
puts("--*--");
puts(" | *");
puts("--*--");
puts("* | ");
puts("--*--");
}
0220デフォルトの名無しさん
2011/11/12(土) 04:47:04.02あれを20回繰り返すと答えは-20になります。それで式もちゃんと表示させなくては
いけないんです・・・つまり1-3+5-7•••=-20ってかんじです。出来れば<stdio.h>でfor
とifで組んでください。
0221デフォルトの名無しさん
2011/11/12(土) 05:10:38.29http://codepad.org/eaM3XA2N
こんな時間だから答えちゃうけど
次からは>>1-2読んでテンプレ使おうな
0222デフォルトの名無しさん
2011/11/12(土) 13:06:03.64#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;
}
0223デフォルトの名無しさん
2011/11/12(土) 13:49:23.38ありがとうございます!
0224デフォルトの名無しさん
2011/11/12(土) 13:55:24.64出題の条件は満たしてる
出題の不備を問う意味で提出するのは面白いかもしれない
0225デフォルトの名無しさん
2011/11/12(土) 16:30:41.410226デフォルトの名無しさん
2011/11/12(土) 22:48:21.79[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] その他の制限:特にありません。
問題文として文章があったわけではないので、説明が分かりにくい部分がありましたら申し訳ありません。
よろしくお願いします。
0227デフォルトの名無しさん
2011/11/12(土) 23:10:26.88#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;
}
0228デフォルトの名無しさん
2011/11/12(土) 23:27:00.58#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;
}
0229デフォルトの名無しさん
2011/11/12(土) 23:53:04.81#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;
}
}
}
0230デフォルトの名無しさん
2011/11/13(日) 00:21:48.57関数を呼び出す度に組み合わせを順に作り出す関数を設計して欲しい^o^
この関数、予めソートされた集合に対して適用すると、
ぐるっと一周した時点で戻り値が false となる。すごい^^
0231デフォルトの名無しさん
2011/11/13(日) 00:36:40.57あるなら使えば?
0232デフォルトの名無しさん
2011/11/13(日) 01:34:13.190233デフォルトの名無しさん
2011/11/13(日) 01:41:45.83っていうか、Boostライブラリの中身を見てさえ理解出来ない。
0234デフォルトの名無しさん
2011/11/13(日) 01:43:38.89中身を見て絶望しろ
0235デフォルトの名無しさん
2011/11/13(日) 01:46:07.590236デフォルトの名無しさん
2011/11/13(日) 05:27:45.69#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;
}
0237デフォルトの名無しさん
2011/11/13(日) 06:51:45.30要素数と並べる数逆になってた
#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;
}
}
}
0238デフォルトの名無しさん
2011/11/13(日) 07:00:14.93どうせなら、
#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;
}
0239デフォルトの名無しさん
2011/11/13(日) 07:13:50.520240デフォルトの名無しさん
2011/11/13(日) 07:17:10.56再帰で。
#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;
}
0241デフォルトの名無しさん
2011/11/13(日) 07:29:14.09などの
とある以上要素をどう入力するかの問題を含むのではないか。
0242デフォルトの名無しさん
2011/11/13(日) 07:55:47.24どんな要素をだね。
0243デフォルトの名無しさん
2011/11/13(日) 08:03:51.59これなら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;
}
0244226
2011/11/13(日) 12:47:17.09みなさんありがとうございます。
ちなみに、後付になってしまい申し訳ないのですが、
更にこれの結果をテキストファイルなどで、1パターン1行として
出力するにはどういったコードを追加すれば良いか、教えていたいてもよろしいでしょうか。
よろしくお願い致します。
0245デフォルトの名無しさん
2011/11/13(日) 12:49:14.33このまま、出力をファイルにリダイレクト
0246デフォルトの名無しさん
2011/11/13(日) 14:09:41.63[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の値を評価するプルグラムを作る
どうかよろしくお願いします
0247デフォルトの名無しさん
2011/11/13(日) 19:19:06.60rowp, columnpってポインタにする必要ある?
0249デフォルトの名無しさん
2011/11/13(日) 20:18:11.15そういう課題なんだろ
得てして、そういう制限された課題は急に難易度が上がりがち
0250デフォルトの名無しさん
2011/11/13(日) 20:47:14.170251デフォルトの名無しさん
2011/11/14(月) 00:29:42.21おまっとさんでした
http://codepad.org/4IS3H70G
0252デフォルトの名無しさん
2011/11/14(月) 00:32:39.29[2]
0253デフォルトの名無しさん
2011/11/14(月) 01:45:16.38[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文、ポインタ変数・演算子*と&は習いました。
宜しくお願いします。
0254デフォルトの名無しさん
2011/11/14(月) 02:15:28.47謎の仕様だ
0255デフォルトの名無しさん
2011/11/14(月) 02:22:31.80変数n1はポインタnp1を使って交換する
変数n2はポインタnp2を使って交換するって事だと思います。
0256デフォルトの名無しさん
2011/11/14(月) 02:41:30.94設問1-2
http://codepad.org/EafccM3B
0257デフォルトの名無しさん
2011/11/14(月) 02:48:32.86設問1-1もお願いします。
0259デフォルトの名無しさん
2011/11/14(月) 05:06:07.27設問1-1
http://ideone.com/4srZT
0260デフォルトの名無しさん
2011/11/14(月) 11:59:23.36[2] 問題文(含コード&リンク):
sinのグラフを次のように描くプログラムを作成せよ
ただしsin90°とsin270°に対するアスタリスクの数は20個とする。
http://beebee2see.appspot.com/i/azuYk7KSBQw.jpg
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: visual studio 2010
[3.3] 言語: C
[4] 期限: [2011.11.3]
[5] その他の制限:
よろしくお願いいたします。
0261デフォルトの名無しさん
2011/11/14(月) 12:26:14.30#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;
}
0262片山博文MZ
2011/11/14(月) 16:30:05.350263デフォルトの名無しさん
2011/11/14(月) 19:13:54.88>>259
有難う御座います
0264デフォルトの名無しさん
2011/11/15(火) 12:59:42.31[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にはアドレスを用いるそうです。
問題文がわかりにくいかもしれませんがよろしくお願いします。
0265デフォルトの名無しさん
2011/11/15(火) 13:23:24.38明日でいいならやってみようと思います。
0266デフォルトの名無しさん
2011/11/15(火) 13:23:58.75問題文を端折ってねぇか?
重力加速度gはどうすんの?
軌道を計算しろっていうのはグラフとして軌道を表示しろってことか?
与えられた時刻tにおける小球の位置(x、y)を計算して表示しろってことだと思うけど、
計算結果二つってどういう意味?
計算結果はx座標、y座標の組(x、y)一つしかないように思うけど。
0267デフォルトの名無しさん
2011/11/15(火) 13:35:40.591、回答者が試作を公開する。
2、質問者が悪い部分を指摘する。
3、完全な製品が完成する。
1と2を繰り返すことで3に到達できるのではないでしょうか?
0268デフォルトの名無しさん
2011/11/15(火) 13:39:17.47できたよ
http://codepad.org/9C6ZWSPl
0269デフォルトの名無しさん
2011/11/15(火) 13:39:35.46int hoge(double *x, double *y, double t);
0270デフォルトの名無しさん
2011/11/15(火) 13:53:26.58仕事早いな。
というか、それでいいのか?
Message = ((>>264 == >>267 || >>264 == >>269 ) ? ("情報は小出しにしない方が・・・") : ("(#^ω^)"));
0271デフォルトの名無しさん
2011/11/15(火) 14:16:26.030272デフォルトの名無しさん
2011/11/15(火) 14:27:51.49問題文にない重力加速度Gを勝手に定義して使っちゃってるし。
問題文がアレな>>264の質問にも問題あるけど。
0273デフォルトの名無しさん
2011/11/15(火) 14:41:22.94修正しました
http://codepad.org/wJLUYAeE
0274デフォルトの名無しさん
2011/11/15(火) 14:54:59.40http://ideone.com/MH6fk
適当に作ったやつ。
というか、これで合っているのか不安になってきた。
物理なんて高校卒業して以来ほとんど勉強してない(;´Д`)
問題文に重力加速度gについて書かれていないのがおかしい。
どこかに「重力加速度gはXXXXとする」等の文があるはず。
0275デフォルトの名無しさん
2011/11/15(火) 15:08:43.93書いてない場合は勝手に常識から外れない範囲内で決めていいって事だろ
0276デフォルトの名無しさん
2011/11/15(火) 15:14:42.57>>273は double vy = vy0 - 1 / 2 * G * t; のように修正で。
0277デフォルトの名無しさん
2011/11/15(火) 15:15:15.82というか、この場合勝手に決めないと問題解けないけど。
いやらしい講師なら「おいお前、勝手に決めるんじゃねぇ!」というのもありえる。
0278デフォルトの名無しさん
2011/11/15(火) 15:40:47.14double vx0 = v0 * cos( θ * 2 / π ); は double vx0 = v0 * cos( θ * π / 180);
の誤りでは? ・・・あれ????俺の方が間違ってる?うーん????
0279デフォルトの名無しさん
2011/11/15(火) 15:40:49.18横槍すまんけど -1 / 2 ってゼロになってしまわね?
-1.0 / 2.0ならわかるけど
確か乗算演算子と除算演算子の評価順は左から右だよね?
もちろん - は優先度が低いので後回しにされる
0280デフォルトの名無しさん
2011/11/15(火) 15:43:06.730281デフォルトの名無しさん
2011/11/15(火) 15:45:58.630282デフォルトの名無しさん
2011/11/15(火) 16:08:59.530283デフォルトの名無しさん
2011/11/15(火) 16:29:31.05自分で手計算した結果を比較してみてからうpするのが筋だな
間違った答えを出すプログラムをうpする位なら何もしない方がいい
迷惑を掛けるだけだ
0284デフォルトの名無しさん
2011/11/15(火) 16:38:12.61>迷惑を掛けるだけだ
迷惑かかるのは質問者だけだからいいでしょw
0285デフォルトの名無しさん
2011/11/15(火) 16:42:29.99ごめんなさい。
>>274は無かった事にして下さい。
0286デフォルトの名無しさん
2011/11/15(火) 16:42:30.15良くねーよ
他のスレならまだしも、このスレの存在意義を考えてみろ
0287デフォルトの名無しさん
2011/11/15(火) 16:44:21.31しらねw
他の人がどんなつもりでこのスレにいるのかは知らないけど
自分は自分の勉強のために回答しているわけだし^^
いやならスルーすればぁ?
0288デフォルトの名無しさん
2011/11/15(火) 16:45:37.080289デフォルトの名無しさん
2011/11/15(火) 17:08:53.820290デフォルトの名無しさん
2011/11/15(火) 17:34:44.51お前みたいな奴はこのスレに来るなカス
0291デフォルトの名無しさん
2011/11/15(火) 17:57:17.65合ってると思うが?
0292デフォルトの名無しさん
2011/11/15(火) 17:59:28.48合ってますか。どうもありがとう!
人の答えと違っていると自分が間違っているんじゃないかと思う今日この頃。
0293デフォルトの名無しさん
2011/11/15(火) 18:11:37.68初速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
0294デフォルトの名無しさん
2011/11/15(火) 18:15:24.99大体は合ってるっぽいですね。
わざわざ計算してくれてどうもありがとうございます。
0295デフォルトの名無しさん
2011/11/15(火) 18:41:23.23はいはい、カスカス^^
じゃあお前が答えてやればぁ?w
平日の昼間から勉強にもならない問題を解いて何が楽しいのだw
0296デフォルトの名無しさん
2011/11/15(火) 18:43:45.17上から目線で問題を解いて自己満足に浸るスレですよ?
0297デフォルトの名無しさん
2011/11/15(火) 18:58:01.01つまらないことで喧嘩するなよ
0298デフォルトの名無しさん
2011/11/15(火) 19:09:01.54数値積分ではないのでその手の誤差はないけど、時間刻みが0.01だから、
水平到達距離とかはおおざっぱに初速度×時間刻み = 50 *.0.01 = 0.5(m)
程度は値がずれる可能性があるよね。
しかし初速度50m/sって、例えばテニスのサーブとかそんな感じ?
空気抵抗がない状態で割と上向きに打ったら200mぐらいは飛ぶとw
0299デフォルトの名無しさん
2011/11/15(火) 19:29:45.22[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] その他の制限:お手数ですが、コメントのほうお願いします。
0300デフォルトの名無しさん
2011/11/15(火) 21:55:36.22[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]
0301デフォルトの名無しさん
2011/11/15(火) 22:53:23.99#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);
}
こんな感じかな?
エラーあったら直しておいて。
0302デフォルトの名無しさん
2011/11/15(火) 23:08:37.78全部が 回転前 だった。
2回目の回転前→右回転
3回目の回転前→左回転
にそれぞれ変更しといて。
0303デフォルトの名無しさん
2011/11/15(火) 23:13:33.20[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://iup.2ch-library.com/i/i0478317-1321365328.jpg
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2011年11月17日
[5] 問題に書いてある通りです。
よろしくお願いします。
0304デフォルトの名無しさん
2011/11/15(火) 23:40:24.76delByName() も findByName() も削除関数って書いてるなw
findByName() が検索関数ならば戻り値が void じゃ駄目だし...
0305デフォルトの名無しさん
2011/11/15(火) 23:52:34.66100万回読んで恋
0306デフォルトの名無しさん
2011/11/15(火) 23:55:03.52これ、基底クラスに何かを追加して良いとは書いてないけど、
最低ゲイ、virtual ~CBaseMonster() がないと、
new した派生クラスを delete する時に面白いことになりかねなくない?
まあ、派生クラスにデータメンバ持たせなければいいんだけど…。
0307303
2011/11/15(火) 23:56:02.93[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://iup.2ch-library.com/i/i0478374-1321368771.jpg
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2011年11月17日
[5] 問題に書いてある通りです。
問題文にミスがありましたので訂正版をうpしました。
よろしくお願いします。
0308デフォルトの名無しさん
2011/11/16(水) 01:26:25.37sizeof(int) * 8
0309デフォルトの名無しさん
2011/11/16(水) 01:36:47.88…ビット数に変更し忘れとるw
指摘thx
0310デフォルトの名無しさん
2011/11/16(水) 01:40:38.53ゴミすぎる
質問者にはふさわしいのかもしれんがw
0311デフォルトの名無しさん
2011/11/16(水) 01:43:29.35コードの提示してみたら?
0312デフォルトの名無しさん
2011/11/16(水) 01:45:06.68>>301 の要訂正箇所数えてみなよ
0313デフォルトの名無しさん
2011/11/16(水) 01:49:26.71ttp://codepad.org/YXrybH3k
0314デフォルトの名無しさん
2011/11/16(水) 02:01:29.90ビット操作を使用する理由が判らん
0315デフォルトの名無しさん
2011/11/16(水) 02:05:47.71こんなひどいのは滅多に見れない
0316デフォルトの名無しさん
2011/11/16(水) 03:05:10.30の間違いじゃなかろうか?
0317デフォルトの名無しさん
2011/11/16(水) 03:29:39.320318デフォルトの名無しさん
2011/11/16(水) 03:31:22.34ああ、そうだね。間違ってるね。俺もアホだw
0319デフォルトの名無しさん
2011/11/16(水) 05:26:06.06ゴミみたいなソース書くな
実行結果も間違ってるし
>エラーあったら直しておいて。
エラーだらけじゃボケ
>>300
http://codepad.org/EF5yOofu
intの大きさは環境依存なので出題とは違う出力結果になるかもしれんが
少なくともビットの出力は正しい
0321デフォルトの名無しさん
2011/11/16(水) 06:48:09.86findNameやらを作りたかっただけ
戻り値で複数の組み合わせの意味を持たせる方法ってビット以外でどうすればいいかなあ
0322デフォルトの名無しさん
2011/11/16(水) 07:20:16.77住所録に何故住所データがないんだ。
0323デフォルトの名無しさん
2011/11/16(水) 07:47:43.42ファンレターなら学校宛でお願いします
0324デフォルトの名無しさん
2011/11/16(水) 08:53:01.88§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の幅以上シフトした場合の動作は未定義、つまり鼻から悪魔
でもこれを気にするとプログラムが組めなくなってしまう
0325デフォルトの名無しさん
2011/11/16(水) 08:59:48.970326デフォルトの名無しさん
2011/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.
環境依存って事で
0327デフォルトの名無しさん
2011/11/16(水) 11:57:09.650328デフォルトの名無しさん
2011/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
0329デフォルトの名無しさん
2011/11/16(水) 12:49:20.93#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;
}
0330デフォルトの名無しさん
2011/11/16(水) 12:50:30.94http://ideone.com/i5cIr
0331デフォルトの名無しさん
2011/11/16(水) 12:52:48.26int 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;
}
0332デフォルトの名無しさん
2011/11/16(水) 13:15:49.94299です。すいませんよろしくお願いします。
0333デフォルトの名無しさん
2011/11/16(水) 13:29:18.60[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="http://dummy/url/1" target="main">Title 1</a></p>
<p><a href="http://dummy/url/2" target="main">Title 2</a></p>
<p><a href="http://dummy/url/3" target="main">Title 3</a></p>
<p><a href="http://dummy/url/4" target="main">Title 4</a></p>
</div>
...
<div class="block">
<p class="first"><a href="http://dummy/url/5" target="main">Title 5</a></p>
<p><a href="http://dummy/url/6" target="main">Title 6</a></p>
<p><a href="http://dummy/url/7" target="main">Title 7</a></p>
<p><a href="http://dummy/url/8" target="main">Title 8</a></p>
</div>
...
</html>
0334デフォルトの名無しさん
2011/11/16(水) 15:06:38.44regex使えるから結構簡単に行けるかも
0335デフォルトの名無しさん
2011/11/16(水) 15:51:40.76[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
0336デフォルトの名無しさん
2011/11/16(水) 16:14:54.59#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;
}
0337デフォルトの名無しさん
2011/11/16(水) 16:17:53.83http://ideone.com/4ypX1
0338デフォルトの名無しさん
2011/11/16(水) 16:18:37.14どちらでもお好きな方でどうぞ。
http://codepad.org/RYTPLotN
http://codepad.org/Qwj9AuPK
0339デフォルトの名無しさん
2011/11/16(水) 16:19:05.50こっちで
http://ideone.com/tLidg
0340デフォルトの名無しさん
2011/11/16(水) 16:22:47.75http://ideone.com/70L8D
0341デフォルトの名無しさん
2011/11/16(水) 16:51:30.94[2] 問題文(含コード&リンク): 20×20程度のエリアを作り
その中でキャラクターを動かすプログラムを作れ。
移動キーの割当
↑:ジャンプ
→:右へ移動
← : 左へ移動
[3.1] OS: windows7 32bit
[3.2] コンパイラ名とバージョン: bcc5.11
[3.3] 言語: C
[4] 期限:2011年11月18日
[5] その他の制限: できるだけ簡単なプログラムでお願いします。
例
■■■■■■■■■■■■■■■■■■■■
(・∀・) ←動かすキャラ
| |
■■■■■■■■■■■■■■■■■■■■
0342デフォルトの名無しさん
2011/11/16(水) 17:23:28.24[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
0343デフォルトの名無しさん
2011/11/16(水) 18:38:46.71>>335-337
0344デフォルトの名無しさん
2011/11/16(水) 19:35:25.71[2] 問題文(含コード&リンク): 3問 http://ideone.com/kXOZ8
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 今日午後8:15まで
[5] その他の制限: 基礎の基礎なので、難しいプログラミングは含まれていないと思います。ついでに説明も付け加えてくださると助かります。
時間がないですが、よろしくお願いします。
0345デフォルトの名無しさん
2011/11/16(水) 20:28:00.06帰納じゃなくて再帰じゃね?
0346デフォルトの名無しさん
2011/11/16(水) 20:33:48.99再帰、だと思います。
英語をそのまま日本語にしたので、正確な呼称がわからなくて、帰納と訳してました。
ありがとうございます。
0347デフォルトの名無しさん
2011/11/16(水) 21:16:38.362個目はC++11だろ
コンパイルエラーだらけ
0348345
2011/11/16(水) 21:51:31.38遅れちゃいるけど、
http://ideone.com/Zf96U
入力値のチェックは入れてないので、適宜修正してくださいな。
0349デフォルトの名無しさん
2011/11/16(水) 21:53:33.90出遅れたけど。
http://ideone.com/dz41U
0350デフォルトの名無しさん
2011/11/16(水) 22:49:14.14ttp://codepad.org/dhygvLxO
0351デフォルトの名無しさん
2011/11/16(水) 23:00:39.45うん。もともと二個目は出題の要求に従ってない部分があるし。
無理やり従わせたためにCBaseMonsterクラスの派生クラスにおけるAction関数が無意味だし、
スマポ使えばすむところをこれまた無理やり従わせるために new delete にしてるし
あと、UML図書かないで鼻ほじりながら脳内仕様で作ったから設計があやしいw
どっちにしても二個目は宿題としては提出できないので一個目で。
こっちは出題の要求通り(のはず)。
0352デフォルトの名無しさん
2011/11/17(木) 00:48:48.87ありがとうございます!
0353デフォルトの名無しさん
2011/11/17(木) 04:42:32.57もしかして外国の学校に通ってる人? だったら大変だね。
一般的には recursion -> 再帰 induction -> 帰納 かなと。
あと偶数と奇数が逆? odd -> おかしい、奇妙な
0354デフォルトの名無しさん
2011/11/17(木) 04:44:36.150355デフォルトの名無しさん
2011/11/17(木) 17:41:06.65[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
0356デフォルトの名無しさん
2011/11/17(木) 17:59:43.63http://codepad.org/zpCewO0B
0357デフォルトの名無しさん
2011/11/17(木) 19:52:54.65[2] 問題文(含コード&リンク):
以下の部分の処理(意味)の把握
*((unsigned int *)&a)・・・・・・・・aはfloat型変数
[3] 環境
[3.1] OS:unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: c
[4] 期限: 11月17日 22:00 まで
0358デフォルトの名無しさん
2011/11/17(木) 20:16:31.83[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] その他の制限:どれもできるだけ引数で与えられた文字列の上で処理をするようにして無駄なメモリを使わないように心がけよ(よって関数の引数には常に編集可能な文字列を渡すこととする)。
0359デフォルトの名無しさん
2011/11/17(木) 20:20:42.61こういう渡され方はしないという前提かな?
0360デフォルトの名無しさん
2011/11/17(木) 20:54:15.62aへのポインタをunsigned int型変数へのポインタだと解釈した時の値 = aのバイト表現をunsigned int型の表現だとキャストせずに解釈した時の値
で大丈夫かな
0361デフォルトの名無しさん
2011/11/17(木) 20:55:34.05こうか
0362デフォルトの名無しさん
2011/11/17(木) 20:56:29.84なんでそう思うんだ?
0363デフォルトの名無しさん
2011/11/17(木) 20:58:49.06書き換えが発生するからだろ
0364デフォルトの名無しさん
2011/11/17(木) 22:17:50.64失敗の条件が無いので適当に組んだ。
http://ideone.com/F7RJy
0365デフォルトの名無しさん
2011/11/17(木) 22:24:48.17http://codepad.org/y113LZPc
Joel on Software の試験問題みたいなやつじゃな… xor 交換法使えってやつ
0366デフォルトの名無しさん
2011/11/17(木) 23:31:30.50C99か
0367デフォルトの名無しさん
2011/11/18(金) 01:32:33.72[2] 問題文(含コード&リンク):
http://codepad.org/4cU7vXcT
リンク先のコードを新規データをリストの最初にする
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:VS2008
[3.3] 言語:C
[4] 期限:早めにお願いします
0368デフォルトの名無しさん
2011/11/18(金) 02:02:37.5867-78行を以下に変更でいいような?
pointer_student = (struct student *)malloc( sizeof(struct student) );
pointer_student->next = root;
pointer_student->number = in_number;
strcpy(pointer_student->name, in_name);
0369デフォルトの名無しさん
2011/11/18(金) 02:08:43.360370368
2011/11/18(金) 02:59:54.66てか、データ構造も大事だけど先に関数を習いたいねぇ・・・。
>>299 解答がないのは資料不足。エスパーではないので情報は全部だしてもらわんと。
基本モンスタのクラスがあるはずだが(^^;;
0371デフォルトの名無しさん
2011/11/18(金) 03:14:47.98関数習う前にlinked listを宿題で出すかね
0372デフォルトの名無しさん
2011/11/18(金) 05:13:55.78データの登録先を全てリストの先頭にするということだと解釈した。
http://ideone.com/GRvzx
0373デフォルトの名無しさん
2011/11/18(金) 08:44:46.32> [1] 授業単元:実数型変数の精度
> [2] 問題文(含コード&リンク):実数型変数の形式は以下のものとする。
符号部(1ビット)、指数部(nビット)、仮数部(mビット)
�@指数部を符号なし整数としてオフセットを用いて表現する方法の調査
�A以下のコードによるプログラムの実行結果から実数型変数の形式を類推する方法の検討
http://codepad.org/wFSNTRCM
> [3] 環境
> [3.1] OS:unix
> [3.2] コンパイラ名とバージョン: gcc
> [3.3] 言語: C
> [4] 期限: (11月18日13:00まで
0375デフォルトの名無しさん
2011/11/18(金) 10:56:57.75??? 自動的に反転とは? 何を求めているのか分からない。なんか例を出してよ。
0376デフォルトの名無しさん
2011/11/18(金) 12:36:02.25上下、左右反転だとエスパーしてみた。
http://codepad.org/5Ja0STCQ
0377デフォルトの名無しさん
2011/11/18(金) 12:58:06.53朝鮮人出身の孫正義に対し、日本人として産まれ育った皆さんが何か勝てる要素あります?
ないですよねえ(笑)
とすると、、
…あれあれ〜?
「日本人の方が朝鮮人より優れている!」というネトウヨの主張、矛盾が生じますよ?(笑)
▼ 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
0378デフォルトの名無しさん
2011/11/18(金) 13:55:25.95例えば
123
456
789
という3×3の行列をscant()で読み取ると
対照線を軸に反転出来たらいいんだ
上の例でいくと
987
654
321
みたいな感じになればおk
0379デフォルトの名無しさん
2011/11/18(金) 14:12:13.75左右反転してから上下反転すれば出来るな
0380デフォルトの名無しさん
2011/11/18(金) 15:27:48.74#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;
}
0381デフォルトの名無しさん
2011/11/18(金) 15:28:40.700382デフォルトの名無しさん
2011/11/18(金) 18:47:50.77(1) 参考:http://ja.wikipedia.org/wiki/IEEE_754
(2) ヒント:出力の2つめのフィールドが偶数になっているときに、情報落ちしている。
これで仮数部が表現できるビット数がわかる。注意:けち表現も考慮に入れよ。
・・・というか出題のコードが悪いよ。
0383デフォルトの名無しさん
2011/11/18(金) 19:32:43.34[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
http://codepad.org/bMCs37CD
[3] 環境
[3.1] OS:Linux Ubuntu 10.04
[3.2] コンパイラ名とバージョン:不明ですが恐らくgccだと思います。
[3.3] 言語:C
[4] 期限:11/25
0384デフォルトの名無しさん
2011/11/18(金) 19:46:58.93ごめん。>358じゃないんだけど、reverse_wordってちゃんと動く?
少なくとも俺の環境だとダメ。VC2010(に入ってるcl.exe)とMinGWのgccの両方で試したけどダメ。
>366の発言が関係してる?
0385デフォルトの名無しさん
2011/11/18(金) 20:07:37.69VC2010のC++はC89なのでC99はコンパイル通らないよ
gccならバージョンにも寄るがだいたい通る
つーか宿題にC99書くなって
Linux上のgccならC99でもいいっていう考えだろうけど、使うなよ
こんなクソ言語
0386デフォルトの名無しさん
2011/11/18(金) 20:58:29.77採草地w ちゃんと写せよ
0387デフォルトの名無しさん
2011/11/18(金) 21:00:22.810388デフォルトの名無しさん
2011/11/18(金) 21:14:54.23変数宣言を移動しても、s3の処理で落ちる
0389デフォルトの名無しさん
2011/11/19(土) 00:28:11.38[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
ttp://www.dotup.org/uploda/www.dotup.org2278003.txt.html
設問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文、ポインタ変数・演算子*と&は習いました。
宜しくお願いします。
0390384
2011/11/19(土) 00:37:32.01reverse_wordだけ自分で書いてみた。stdioだけしか使わないようにしてみた。
ttp://ideone.com/dgWQN
Cはほぼ初心者に近いけど、この問題はポインタとかアルゴリズムとかの勉強になって良いね。
無駄な部分が多分あると思うから、それは是非指摘してほしい。
0391デフォルトの名無しさん
2011/11/19(土) 00:59:42.73設問1-1 http://codepad.org/YMBKM27k
設問1-2
(1) http://codepad.org/aW6BDwnv
(2) http://codepad.org/FqIcl9T7
(3) http://codepad.org/rtJfysnl
0392デフォルトの名無しさん
2011/11/19(土) 02:44:15.53うーんreverse_word()の中でqがオーバーランしてるかな。
最後のreverse(s, q - 2 - s)で壊す。
0393デフォルトの名無しさん
2011/11/19(土) 03:00:00.820394384, 390
2011/11/19(土) 06:00:57.11確認なんだけど、
このレスはあくまでも>384へのレスであって、>390へのレスじゃないよね?
0395デフォルトの名無しさん
2011/11/19(土) 06:57:01.70>>392は>>364のコードのことです。
0396394
2011/11/19(土) 09:58:09.26了解です。
0397デフォルトの名無しさん
2011/11/19(土) 19:01:13.51int 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;
}
0398デフォルトの名無しさん
2011/11/19(土) 19:02:06.45[2] 問題文(含コード&リンク):
アフィン変換で画像を変換せよ。ただし回転の中心は画像の中心であるである
http://codepad.org/i8K01zBM
ここまでできたのですが画像の中心で回転してくれません。
[3] 環境
[3.1] OS:windowsxp
[3.2] コンパイラ名とバージョン:windows visual studio 2008
[3.3] 言語:c
[4] 期限:11/20
[5] その他の制限:見づらいプログラムですいません。画像を中心に回転するようにしたいです
0399デフォルトの名無しさん
2011/11/19(土) 21:59:36.82[2] 問題文(含コード&リンク):http://i.imgur.com/UwzPZ.jpg
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 11/15 10:00
[5] その他の制限: そこまで複雑な関数は習ってません
詰んでます
お願いします
0400デフォルトの名無しさん
2011/11/19(土) 23:23:18.68[2] 問題文(含コード&リンク):
入力された数値が素数か否かを判定し,結果を画面に出力せよ.ただし
�@ループ命令を使う方法
�A再帰処理を使う方法
�B上記のどちらも使わない方法
のいずれについても解答する事.
[3] 環境
[3.1] OS: windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 11/27 23:00
[5] その他の制限: 初心者向けにお願いします
0401デフォルトの名無しさん
2011/11/19(土) 23:51:01.44�B だけ
http://codepad.org/tL8dq6HD
�@ http://ideone.com/bj1AE
�A http://ideone.com/favuB
�B うーん、困りました。わかりません。
0403デフォルトの名無しさん
2011/11/20(日) 00:13:49.80>>401 を縮めた
http://codepad.org/4JFt7VJ5
0404デフォルトの名無しさん
2011/11/20(日) 00:15:58.06有難う御座います
0405デフォルトの名無しさん
2011/11/20(日) 00:31:18.161] 授業単元: 画像処理
[2] 問題文(含コード&リンク):
アフィン変換で画像を変換せよ。ただし回転の中心は画像の中心であるである
http://codepad.org/7p9bZmsA
ここまでできたのですが画像の中心で回転してくれません。
[3] 環境
[3.1] OS:windowsxp
[3.2] コンパイラ名とバージョン:windows visual studio 2008
[3.3] 言語:c
[4] 期限:11/21 20:00
[5] その他の制限:見づらいプログラムですいません。画像を中心に回転するようにしたいです
0406デフォルトの名無しさん
2011/11/20(日) 01:35:45.40奇数だけチェックするようにしてビットパターンの方も間引いたわけですか
0407デフォルトの名無しさん
2011/11/20(日) 01:41:02.34src_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
0408デフォルトの名無しさん
2011/11/20(日) 01:41:20.745以上の素数は 6n±1 に限られるから、もっと少なくできるんじゃない?
0410デフォルトの名無しさん
2011/11/20(日) 01:46:53.92死んでもgoto使いたくないのか
そんなことはないんですけど、今回はやめときました。
http://hibari.2ch.net/tech/kako/1289/12897/1289715349.html >>479
http://codepad.org/RMU1H5jZ
0412デフォルトの名無しさん
2011/11/20(日) 02:05:23.270413デフォルトの名無しさん
2011/11/20(日) 02:22:04.60放置されたら諦めろ。
http://codepad.org/DnUikRHF
0414デフォルトの名無しさん
2011/11/20(日) 03:48:44.47[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文使用でお願いします
0415デフォルトの名無しさん
2011/11/20(日) 04:40:23.12main(i,n){scanf("%d",&n);_:if(n*(n>1)%++i)goto _;puts("not prime"+(i==n)*4);}
0416デフォルトの名無しさん
2011/11/20(日) 04:53:30.16トリッキー過ぎるだろw
>(n>1)
細やかな心遣いですね。
0419デフォルトの名無しさん
2011/11/20(日) 05:03:56.45413 名前:デフォルトの名無しさん[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のごとくスルーしてます ><;
スクリーンショットマダァ?(・∀・ )っ/凵⌒☆チンチン
0420デフォルトの名無しさん
2011/11/20(日) 05:05:33.45[2] 問題文:ガウスの消去法を使ってn元連立方程式を解け
http://ideone.com/2GwBp
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C言語
[4] 期限:11月21日まで
[5] その他の制限:math.h や #difine などは習っていないので使えません。
アップロダに初めてソースを上げてみたのですが、学校では値が出ました、
あとは、ゼロを入力した場合、値がおかしくなるので、行交換?などをしたいのですが
どうすればいいのかわかりません。
0422デフォルトの名無しさん
2011/11/20(日) 06:30:24.070423デフォルトの名無しさん
2011/11/20(日) 06:34:32.94例えばこんな感じ
http://ideone.com/Hr2yj
0424デフォルトの名無しさん
2011/11/20(日) 06:36:11.32それから#defineが使えないならC99の可変長配列を使わないといけない
配列ぐらいまでの範囲しか習っていませんので、、、
友人はif文を使うなどと言っているのですが、どこに入れれば良いのかもわかりません。
0426デフォルトの名無しさん
2011/11/20(日) 07:05:27.87いや、
>あとは、ゼロを入力した場合、値がおかしくなるので、行交換?などをしたいのですが
>どうすればいいのかわかりません。
なんでしょ?じゃピボット選択をするしかない
fabsの自作をしてはいけないというのなら三項演算子でも使ってプログラム内でやるよ
if文でもいいけど
0427デフォルトの名無しさん
2011/11/20(日) 07:11:29.83>対角成分が 0 になる場合には、枢軸選択(ピボット選択)という式の交換を行う必要がある。
>対角成分が 0 になる場合以外でも、対角成分が絶対値が最大の係数になるように枢軸選択を
>行ったほうが、解の丸め誤差が少なくなる。ただし、これは行列要素の絶対値が同程度の大きさの
>場合のみ成り立ち、スケーリングを行わずに枢軸選択を行うとむしろ精度が悪化する場合もあるため、
>注意が必要である
つまり絶対値が最大の係数になるようにピボット選択をしなければならない
そのためにはfabs()が必要不可欠であるが、使用不可、自作も不可というのならプログラム内に
関数ではなく直書きするしかない
先ほど私がロダにあげたソースに付け足していただけるとありがたいのですが、、
0429デフォルトの名無しさん
2011/11/20(日) 07:23:42.07いやできるよ
ちょっと待って今他の作業をしてるもんで
他の人があげてくれるかもしれんし
それより心配なのはC99の可変長配列を関数間で受け渡し出来るのかという問題だ
可変長配列はalloca()の糖衣構文だと聞いているので、受け渡した時の書き方が
よくわからん
C89/C++ばかりやってるもんで
0430デフォルトの名無しさん
2011/11/20(日) 07:29:00.82(3) 関数引数での使用
関数ブロックの中に、可変長配列を宣言することができますが、もちろん関数の引数にも
使うことができます。例えば、(1)のようにして使用します。可変長配列の中に使う変数は、
そこで使用する以前に他で宣言されていて、コンパイラに対して可視になっている必要が
あります。したがって、void sumup(int data[m][n], int m, int n){ ... } のような関数定義は、
ファイルスコープレベルで m や n という整数変数が宣言されていない限りエラーになります。
なんじゃこりゃ
使えんなー
全部main()内に書くか
うーん、よくわからないですけど
C言語ならったばっかりの学生に
作らせているので、main()のなかまでは
干渉しないとは思うのですが、、
すいません、よくわからないことをいって
しまって
0432デフォルトの名無しさん
2011/11/20(日) 07:48:27.24http://codepad.org/h8G8ODH3
妥当な短さで汚いコードどうぞ。
0433デフォルトの名無しさん
2011/11/20(日) 09:09:40.18>>421
http://ideone.com/VPNB0
c99でかつfabs()を使わない部分ピボット選択ならこんな感じになるよ
作業お疲れ様です。
学校で試してみます!
本当にありがとうございました
0435デフォルトの名無しさん
2011/11/20(日) 09:15:02.50書いてあるようにvoid sumup(int m, int n, int data[m][n])ならおkって意味だろ
0436デフォルトの名無しさん
2011/11/20(日) 09:15:49.91出力結果が変だぞ
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
0437デフォルトの名無しさん
2011/11/20(日) 09:18:42.28void sumup(int data[*][*]. int m, int n);
プロトタイプ宣言で先に可変長配列を持ってきたい時はこう書く必要があるみたいだな
0438デフォルトの名無しさん
2011/11/20(日) 09:21:00.62>>436の原因が分かった
sumSubjectの初期化がされていない
double sumSubject[4] = {0.0, 0.0, 0.0, 0.0};
0439デフォルトの名無しさん
2011/11/20(日) 18:05:09.98for(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];}}
一応こんな感じにやって見ましたが大丈夫でしょうか?
0440デフォルトの名無しさん
2011/11/20(日) 18:29:15.040441デフォルトの名無しさん
2011/11/20(日) 18:53:36.30逆にしないと絵に穴が開くのと
有効範囲かどうかのチェックが必要
0442デフォルトの名無しさん
2011/11/20(日) 19:01:35.94>>407 で -theta にしてるのは dest を基準に考えると逆回転になるよって意味だからね
0443デフォルトの名無しさん
2011/11/20(日) 22:04:08.540444デフォルトの名無しさん
2011/11/20(日) 22:14:59.92ありがとうございます。理解しました
0445デフォルトの名無しさん
2011/11/20(日) 23:20:51.73#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;
}
0446デフォルトの名無しさん
2011/11/20(日) 23:54:05.16そういう処理ならエラトステネスのふるいを使ってみるとか
0447デフォルトの名無しさん
2011/11/21(月) 00:06:21.94累積が間違ってるな
0448デフォルトの名無しさん
2011/11/21(月) 00:16:15.20とってもありがとうございます
>>447
多分合ってると思います。15入力してちゃんと41とでるので
0449デフォルトの名無しさん
2011/11/21(月) 00:34:47.740450デフォルトの名無しさん
2011/11/21(月) 00:34:49.52X printf("素数:");
O printf("素数:2 ");
0451デフォルトの名無しさん
2011/11/21(月) 01:01:05.52小さいコードなんで処理を追えるから勉強になります。
0452デフォルトの名無しさん
2011/11/21(月) 01:34:13.40エラトステネスのふるいで。
http://ideone.com/7CjRm
0453デフォルトの名無しさん
2011/11/21(月) 02:19:10.47ありがとうございます!
0454デフォルトの名無しさん
2011/11/21(月) 02:32:02.30[2] 問題文(含コード&リンク):
線形リスト構造で、整数を1つ入れる度にソートし、出力するプログラムを作成せよ
配列はitem[11]とnext[11]を用意する。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C言語
[4] 期限:22日まで
[5] その他の制限:構造体はなるべく分かりやすくお願いします
よろしくお願いします
0455デフォルトの名無しさん
2011/11/21(月) 02:58:47.20問題に書き写し間違いは無い?
>配列はitem[11]とnext[11]を用意する。
なら
int item[11];
int next[11];
>[5] その他の制限:構造体はなるべく分かりやすくお願いします
だと
struct list{
int item;
strruct list *next;
}data[11];
のように、やり方が互いに違うと思うんだが。
0456デフォルトの名無しさん
2011/11/21(月) 03:06:24.45structとポインタ習ってます?
0457デフォルトの名無しさん
2011/11/21(月) 08:40:13.50すみません。構造体云々は間違えてす
ポインタでした。
構造体はまだ習ってないです。
0458デフォルトの名無しさん
2011/11/21(月) 08:56:51.980459デフォルトの名無しさん
2011/11/21(月) 09:04:00.57それだと配列nextの扱いはどうなるんだ?
配列itemと内容が同じになりそうなんだが。
0460デフォルトの名無しさん
2011/11/21(月) 09:13:04.92勘違いした。
0461デフォルトの名無しさん
2011/11/21(月) 09:15:29.05保持するとかなするんじゃ?
とにかくリストのデータ構造が実現されていれば別に構造体じゃなくてもいい。
0463デフォルトの名無しさん
2011/11/21(月) 10:39:56.99ポインター(int *p など)は使っていない。
http://ideone.com/bBX9r
0464デフォルトの名無しさん
2011/11/21(月) 11:12:33.86C99じゃないとコンパイルエラーが出るな
0465デフォルトの名無しさん
2011/11/21(月) 13:54:05.05理解したと思っていましたが出できた画像が回転でなくせん断された画像なんですがこのdestっていうのはなんですか?
0466デフォルトの名無しさん
2011/11/21(月) 14:45:31.32dest は destination の略
式に変なアレンジしなければ大丈夫
0467デフォルトの名無しさん
2011/11/21(月) 15:20:30.58変にアレンジしてました。今度こそ大丈夫です。ありがとうございました
0468デフォルトの名無しさん
2011/11/21(月) 16:20:09.76gcc -std=c89
でコンパイル通るけど、エラーメッセージは?
0469デフォルトの名無しさん
2011/11/21(月) 18:08:42.75初期化の部分で最低一個データを入れないとエラーになった
Eclipse CDTからMinGWで -std=c89 でやると確かにエラーが出ない
bcc32が間違ってるのか
0470デフォルトの名無しさん
2011/11/21(月) 18:25:16.15void 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"
0471デフォルトの名無しさん
2011/11/21(月) 18:55:57.69src = "0012500" pos = 3 の場合は?
0472デフォルトの名無しさん
2011/11/21(月) 20:11:39.05引数にchar使うよーなのは・・・・かなり特殊な環境に思うんだが。
flg=1だと・・・"\0" "\0" "\000" "01"と解釈でいいんかしら?
0473デフォルトの名無しさん
2011/11/21(月) 20:20:05.80宿題ではなさそうってのは同意だが、NULLで埋めて右詰って用途が謎だ
nullnullnull0001 って話だと思うよ
でもなんか仕様が良く判らんな、 >>471 への回答も無いし flg による動作に一貫性が無い
上司に要求仕様をちゃんと確認した方が良い
0474デフォルトの名無しさん
2011/11/21(月) 20:39:29.037セグメントLED(小数点付き)の出力用。。。
nulは非表示・・・。
文字数固定。
0475454
2011/11/21(月) 21:32:43.27ありがとうございます。
諸事情で今はWinVCしか使用出来ないのですが、
これだとiとjとnextが定義されないのですが、iとjとnextを初期化してもエラーになるのはどうしてでしょうかね?
0476デフォルトの名無しさん
2011/11/21(月) 21:50:35.50Bがある場合と、0埋めが判らないので、作りかけ。
http://ideone.com/ntI1q
[2] 問題文:3*3の逆行列Aをもとめよ
http://ideone.com/erZBk
[3] 環境
[3.1] OS: linux
[3.2] コンパイラとバージョン: gcc
[3.3] 言語:C言語
[4] 期限:11月22日まで
[5] その他の制限:math.h や #difine などは習っていないので使えません。
アップロダにてソースを上げてみたのですが、学校では値が出ました、
あとは、ゼロを入力した場合、値がおかしくなるので、行交換?などをしたいのですが
どうすればいいのかわかりません。
先日、ガウスの消去法で、行交換のしかたを教えてもらったのですが、上記にあげた
ソースにも行交換をしていただけるとありがたいです
0478デフォルトの名無しさん
2011/11/21(月) 22:54:28.633x3 の逆行列なら公式を使うという手もあるぞ
使っちゃダメかもしれないがw
0479454
2011/11/21(月) 23:11:12.33お騒がせしてすみません
0480デフォルトの名無しさん
2011/11/21(月) 23:31:31.09[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] その他の制限:お願いします
0481デフォルトの名無しさん
2011/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
0482デフォルトの名無しさん
2011/11/22(火) 00:53:34.84http://ideone.com/JDaXT
>>481
テキストの仕様は一行なのか、複数行なのか、また数字は必ず3つの組?
一つの配列として表示とはどのように? 書きこみとはどこに?
0483デフォルトの名無しさん
2011/11/22(火) 00:59:30.49すみません。
数字は必ず三つの組で、テキストは(1,10,5)改行(1,20,10)と続いていきます。
一つの配列として表示とは、「1,1,1,1,1,1,1,1...]みたいな感じだと思います。
書きこみ先は、新規のファイルにだと思います。
0484デフォルトの名無しさん
2011/11/22(火) 01:46:05.56#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);
}
0485デフォルトの名無しさん
2011/11/22(火) 03:21:57.86まさかこんなに手間取るとは思わなかった…。
http://ideone.com/2tvoW
0486デフォルトの名無しさん
2011/11/22(火) 03:31:32.09すまない。>>485はバグ有り。
http://ideone.com/Vd969
0487デフォルトの名無しさん
2011/11/22(火) 03:41:11.76http://ideone.com/IyhAO
./a.out <input で画面出力
./a.out <input >output でファイル出力
テケトーですまん。
0488デフォルトの名無しさん
2011/11/22(火) 04:03:58.50本当にありがとうございます。
すみませんが、./a.out [infile] [outfile]で実行しても、outfileに書きこまれないのですがやり方が悪いのでしょうか?
0489デフォルトの名無しさん
2011/11/22(火) 04:05:37.40本当にありがとうございます。
申し訳ないのですが、配列の表示の仕方は縦ではなくて横が良かったのですが変更はできますか?
0490デフォルトの名無しさん
2011/11/22(火) 04:08:39.61付けたしになってしまって本当に申し訳ないのですが、書きこみは左、真ん中、右と一つずつ分けてそれぞれ3つのファイルに出力しないといけないみたいです。すみません。
0491デフォルトの名無しさん
2011/11/22(火) 04:16:00.35http://ideone.com/U8KVy
ファイル開けない理由はよくわからない。
残念ながらこっちの環境では成功してる。
0492デフォルトの名無しさん
2011/11/22(火) 04:18:56.73初期化部分修正。
http://ideone.com/jnTTi
0493デフォルトの名無しさん
2011/11/22(火) 04:25:23.29ありがとうございます!
空のテキストファイルをoutfileにしてるのですが、実行しても何も書きこまれません。
環境は同じはずなのに何でだろう・・・
0494デフォルトの名無しさん
2011/11/22(火) 04:35:10.99int 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
で文字は入ります?
0495デフォルトの名無しさん
2011/11/22(火) 04:35:28.81http://ideone.com/ezAg8
0496495
2011/11/22(火) 04:37:35.160497デフォルトの名無しさん
2011/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;
}
0498495
2011/11/22(火) 04:40:25.34http://ideone.com/WW4aX
0499デフォルトの名無しさん
2011/11/22(火) 04:51:13.82文字入りました!
0500デフォルトの名無しさん
2011/11/22(火) 05:27:12.86これでダメならもうお手上げです…。
http://ideone.com/feTX0
485=486=491=492=494=497でした。
0501デフォルトの名無しさん
2011/11/22(火) 05:36:36.47何度もありがとうございます。
ただ、上手くいきません・・・
自分で変える部分は、13行目のfilenameとmodeの部分だけですよね?
0503デフォルトの名無しさん
2011/11/22(火) 05:55:11.87fcloseをfix。
http://ideone.com/C01UB
何も変更せずにそのままコンパイルしてください。
コンパイル後の使用方法 (読み込みファイルがtest.txtの場合)
./a.out text.txt test1.txt test2.txt test3.txt
0504デフォルトの名無しさん
2011/11/22(火) 05:56:03.12コンパイル後の使用方法 (読み込みファイルがtest.txtの場合)
./a.out test.txt test1.txt test2.txt test3.txt
0505デフォルトの名無しさん
2011/11/22(火) 07:42:39.22http://ideone.com/OeQkS
一応行列Aが潰れていないか(正則であるか)のチェックを入れた
不要だったらカットして下さい
0506デフォルトの名無しさん
2011/11/22(火) 07:44:39.27遅れてすみません
昨晩早く寝たもんで
0507デフォルトの名無しさん
2011/11/22(火) 08:48:51.75src = "0012500" pos = 3 → dst = "12500"
flg = 1なら"\0\012500"
>>474
すごいです。当たりです。
0508デフォルトの名無しさん
2011/11/22(火) 08:51:53.71posが何を意味しているのかわからない。
0510デフォルトの名無しさん
2011/11/22(火) 09:13:37.55クイズかよw
0511デフォルトの名無しさん
2011/11/22(火) 09:36:01.49posは小数点が挿入される位置です。
src = "0012500" pos = 3 → dst = "12500"
これだと12.500となるため頭の02つは消えます。
flg=1だと\0でうめるので0が\0になります。
0513デフォルトの名無しさん
2011/11/22(火) 12:08:22.93'Bとそれ以降は無視'が不明なので作りかけ。
・英字が含まれていたらpos,flg無効?
http://ideone.com/30Kn3
0514デフォルトの名無しさん
2011/11/22(火) 12:17:09.18数字以外だとその文字とそれ以降を無視します。
たとえば
"0234YB00"だと"0234"の文字数4として扱います。
flgは有効です。このときposが1なら"234"
posが3なら"0234"となります。
0515デフォルトの名無しさん
2011/11/22(火) 12:59:18.96もしかしたら、'n桁目'というのは右から数えてる?
0516デフォルトの名無しさん
2011/11/22(火) 13:06:07.92yes
0517デフォルトの名無しさん
2011/11/22(火) 13:09:30.49了解。
>>数字以外だとその文字とそれ以降を無視します。
これで左からだと解釈してた。
ありがとうございます
0519デフォルトの名無しさん
2011/11/22(火) 16:10:22.23http://ideone.com/jXo2w
0520デフォルトの名無しさん
2011/11/22(火) 16:39:34.64バグ修正
http://ideone.com/YquJW
0522デフォルトの名無しさん
2011/11/22(火) 17:21:51.36ありがとう。
0523デフォルトの名無しさん
2011/11/22(火) 18:04:19.44>>484
ありがとうございました
0524デフォルトの名無しさん
2011/11/22(火) 18:13:37.81おーいバグってるぞ
ポインタがさかのぼりすぎ
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)
0525デフォルトの名無しさん
2011/11/22(火) 18:18:09.52どうしても「5」ではなく「0」と出力されてしまいます
教えて下さい
0526デフォルトの名無しさん
2011/11/22(火) 18:49:35.28X Jissu(double j) : Fukusosu() {}
O Jissu(double j) : Fukusosu(j,0) {}
0527デフォルトの名無しさん
2011/11/22(火) 19:52:24.02なるほど!そういうことでしたか
ありがとうございます
0528デフォルトの名無しさん
2011/11/22(火) 20:06:47.97[2] 問題文(含コード&リンク):
http://iup.2ch-library.com/i/i0484725-1321959355.jpg
http://iup.2ch-library.com/i/i0484726-1321959355.jpg
http://iup.2ch-library.com/i/i0484737-1321959884.jpg
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2011年11月24日
[5] 解答例がある課題はそれをそのまま使っていただけたらと思います。
よろしくお願いします。
0529デフォルトの名無しさん
2011/11/22(火) 20:20:47.320530デフォルトの名無しさん
2011/11/22(火) 20:46:07.43そのまま使っていただけたらって、打ち込めって事?
0531デフォルトの名無しさん
2011/11/22(火) 20:48:23.68[2] 問題文(含コード&リンク):角度0度から90度までのsin(x)の値を1度刻みで表示する
プログラムを作りなさい。
πの値は3.141592ではなく、M_PIを用いること。
[3] 環境
[3.1] OS: (Windows/Linux/等々) windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか) c言語
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 2011年11月22日 23:50まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) for文またはwhile文を用いて答える。
プログラミング初心者です。いろいろ調べたのですが、答えが出ないので教えてください。お願いします。
0532デフォルトの名無しさん
2011/11/22(火) 20:51:53.690533528
2011/11/22(火) 20:54:47.30すいません!訂正しました。よろしくお願いします。
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
http://iup.2ch-library.com/i/i0484725-1321959355.jpg
http://iup.2ch-library.com/i/i0484726-1321959355.jpg
解答例等>>534
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2011年11月24日
[5] 解答例がある課題はそれをそのまま使っていただけたらと思います。
0534528
2011/11/22(火) 20:55:47.56struct cell *makeNullList(void)
{
struct cell *list;
list = (struct cell*)malloc(sizeof(struct cell));
if (list == (struct cell*)NULL) {
fprintf(stderr, "makeNullList: can not allocate memory for new list.\n");
exit(1);
}
list->next = (struct cell*)NULL;
return list;
}
課題3 解答例
struct cell *nextCell(struct cell *target, struct cell *list)
{
struct cell *next = (struct cell*)NULL;
if (target != (struct cell*)NULL) {
next = target->next;
}
return next;
}
0535デフォルトの名無しさん
2011/11/22(火) 20:55:52.15[2] 問題文(含コード&リンク):
逆アフィン変換で幾何学変換を行うプログラムを作成せよ。2つの補間法(バイリニア,バイキュービック)を使用すること
http://codepad.org/W47NMmWq
[3] 環境
[3.1] OS:windows xp
[3.2] コンパイラ名とバージョン: windows visual studio2008
[3.3] 言語: c++
[4] 期限:2011年11月24日 13:00
[5] バイリニアはなんとか作成ができたのですがバイキュービックが全然理解できません。
貼ってあるのはバイリニアのプログラムです。
0536528
2011/11/22(火) 20:56:42.46課題9 解答例
struct cell *locateCell(int data, struct cell *list)
{
struct cell *current;
current = firstCell(list);
while ((current != (struct cell*)NULL)
&& (retrieveCell(current, list) != data)) {
current = nextCell(current, list);
}
return current;
}
プロトタイプ宣言
struct cell *makeNullList(void);
struct cell *nextCell(struct cell *, struct cell *);
struct cell *firstCell(struct cell *);
struct cell *endCell(struct cell *);
struct cell *previousCell(struct cell *, struct cell *);
struct cell *insertCell(int, struct cell *, struct cell *);
struct cell *deleteCell(struct cell *, struct cell *);
int retrieveCell(struct cell *, struct cell *);
struct cell *locateCell(int, struct cell *);
void deletelist(struct cell *);
void printlist(struct cell *);
0537デフォルトの名無しさん
2011/11/22(火) 20:58:22.39こういうこと?
http://ideone.com/Rjktr
0538デフォルトの名無しさん
2011/11/22(火) 21:06:46.15はい!これを探してました!
助かりました、ありがとうございます。
0539デフォルトの名無しさん
2011/11/22(火) 21:07:26.570540デフォルトの名無しさん
2011/11/22(火) 21:11:39.21出遅れた orz
一応貼っておく。 http://ideone.com/0x4zz
0541デフォルトの名無しさん
2011/11/22(火) 21:28:37.68[2]問1 キーボードからUser構造体の情報(ID、ニックネーム、生年月日)を1名分入力し、
その内容を表示するプログラムを作成せよ
注:ニックネームにスペースを含めてはいけない
scanf()中の文字列変数の指定方法に注意
指定方法
User A;
scanf("%s %s %d/%d/%d",
A.ID, A.name,
&A.year, &A.month, &A.day);
問2 問1のプログラムを改造し、複数名のユーザー情報をキーボードから入力し、
最初のユーザーと同じ誕生月のユーザーの、「生年月」とニックネーム
の一覧を出力するプログラムを作成せよ
注:入力するユーザー数は固定値でよい(5名程度)
入力する情報はダミーでよい
[3] 環境
[3.1] W7
[3.2] Visual C++ 2010 Express
[3.3] どちらでも可
[4] 2011年11月25日22:00
よろしくお願いします。
0542デフォルトの名無しさん
2011/11/22(火) 21:44:21.02#include <math.h>
#ifndef M_PI
#define M_PI 3.1415926
#endif
int main(void)
{
int i;
for (i = 0; i <= 90; i++)
printf("%d %f\n", i, sin(i / 180.0 * M_PI);
return 0;
}
コンパイルはgcc a.c -o a.out -lm
実行は./a.outで。
0543542
2011/11/22(火) 21:45:54.210544デフォルトの名無しさん
2011/11/22(火) 21:55:34.15[2] 問題文(含コード&リンク):5 つの要素を持つdouble 型配列vx[] に対し
て,その各要素の正負を反転するプログラムを,
ポインタ演算を用いて作成せよ.例えばvx[] が
{1.1, 2.2, -3.3, 4.4, -5.5}であったとき,プログ
ラムの結果vx[] は{-1.1, -2.2, 3.3, -4.4, 5.5}
となる.ただし,プログラムは以下の要件を満たすこと
とする.
解答例等
5 つの実数を入力してください
vx[0] = 1.1
vx[1] = 2.2
vx[2] = -3.3
vx[3] = 4.4
vx[4] = -5.5
正負を反転させました。
vx[0] = -1.100000
vx[1] = -2.200000
vx[2] = 3.300000
vx[3] = -4.400000
vx[4] = 5.500000
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2011年11月24日 9:00
[5] double 型配列vx[] はmain 関数内で宣言し,以下
の実行例のように各要素の値をユーザに入力させよ
0545デフォルトの名無しさん
2011/11/22(火) 21:56:30.19続き
[5]
• main 関数内でポインタ変数vxp を宣言し,vxp を
用いたポインタ演算によって配列vx[] の各要素の
値を書きかえること.
• ポインタ演算で正負を反転させる際には,添字演
算子[] は使用しないこと.
• vx[] の5 つの要素すべてを書きかえてから,最後
にその結果を表示すること
0546デフォルトの名無しさん
2011/11/22(火) 21:58:59.180547デフォルトの名無しさん
2011/11/22(火) 22:03:42.97値チェック無し。
1. http://ideone.com/xw2qm
2. http://ideone.com/JQLbB
0548デフォルトの名無しさん
2011/11/22(火) 22:07:29.00[2] 問題文(含コード&リンク):
text.txtを読み取って0なら空白を、1なら*を表示するプログラム(test.c)がある。
これを改良してtest.txtをtext.bmpに変換するプログラムを作れ。
(ただし、0を白色、1を黒色とする。)
test.c
http://codepad.org/Xk3b2CZq
/********test.txtの中身**********
11 6
0 1 1 1 1 1 0 0 0 0 0
0 1 0 1 1 0 1 0 0 0 1
0 1 1 1 1 1 0 0 0 0 0
0 1 0 0 1 1 0 1 0 0 1
0 1 1 1 0 1 0 0 0 0 0
0 1 1 0 0 1 0 0 0 0 0
******************************/
[3] 環境
[3.1] OS:windows7 32bit
[3.2] コンパイラ名とバージョン: Borland5.51
[3.3] 言語: c
[4] 期限:2011年11月27日 17:00
[5] windouwsAPIなど、複雑なものは使わずにお願いします。
0549デフォルトの名無しさん
2011/11/22(火) 22:08:00.42明日休みだからじゃね?
0550デフォルトの名無しさん
2011/11/22(火) 22:15:56.77こんな感じでどうでしょう?
http://ideone.com/z9cu3
0551デフォルトの名無しさん
2011/11/22(火) 22:28:27.170552デフォルトの名無しさん
2011/11/22(火) 22:34:44.64bmpのフォーマットは?
0553デフォルトの名無しさん
2011/11/22(火) 22:35:54.81http://ideone.com/85dMC
0554デフォルトの名無しさん
2011/11/22(火) 22:36:46.02http://ideone.com/vQJxc
0555デフォルトの名無しさん
2011/11/22(火) 22:38:21.08http://ideone.com/9sV1I
0556デフォルトの名無しさん
2011/11/22(火) 22:41:05.684bitでお願いします
0557デフォルトの名無しさん
2011/11/22(火) 23:10:52.76http://ideone.com/8If4Q
0558デフォルトの名無しさん
2011/11/22(火) 23:15:30.35構造体は自前?ヘッダ?
0559デフォルトの名無しさん
2011/11/23(水) 00:03:06.03borland5.11にあるヘッダファイルなら使ってもいいと思います
0560デフォルトの名無しさん
2011/11/23(水) 00:04:33.19自前で簡単にできそうなら、できればそれでお願いします
0561デフォルトの名無しさん
2011/11/23(水) 00:46:12.24いや、嫌がらせだよ。
0562デフォルトの名無しさん
2011/11/23(水) 01:26:51.10一応聞いておくけどbmpのフォーマットはwindows用でいいんだよね…?
0563デフォルトの名無しさん
2011/11/23(水) 01:41:41.66はい、windowsでお願いします
0564デフォルトの名無しさん
2011/11/23(水) 04:30:34.72http://ideone.com/V1cI0
bcc32コンパイル動作確認済み。
0565デフォルトの名無しさん
2011/11/23(水) 04:44:13.43すまない、白と黒が逆だった
http://ideone.com/jXvdI
0566デフォルトの名無しさん
2011/11/23(水) 09:05:42.47[2] 問題文(含コード&リンク)
行列の積を計算する関数multの関数プロトタイプ宣言が以下のように記述されている
void mult(double *ma, double *mb, double *mc, int n);
いま、定数Nの値がmain関数の外で#define N 3 と定義されている。N×Nの正方行列maとmb,そしてmcはmain関数の中で
double ma[N][N];
double mb[N][N];
double mc[N][N] = { 0.0 } ;
と定義されている。このとき関数multを次のように呼び出して行列の積mc=ma • mb を計算したい。
mult((double *)ma, (double *)mb, (double *)mc, N);
関数multをブラケット演算子[]なしで書き上げなさい。
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:11月23日(出来れば早めにお願いします)
0567デフォルトの名無しさん
2011/11/23(水) 10:54:47.22ありがとうございます!
でもそのプログラムはどうやって使えばいいのでしょうか?
test.txtと同じディレクトリでコンパイルして実行しても
usage: program.exe file-IN file-OUTと出るだけです。
0568デフォルトの名無しさん
2011/11/23(水) 11:41:40.55http://ideone.com/XJ1QR
0569デフォルトの名無しさん
2011/11/23(水) 11:50:38.44>>568さんのとは少し違う方法で
http://codepad.org/zc9gRFSd
0570デフォルトの名無しさん
2011/11/23(水) 11:55:56.47ありがとうございます!
0571デフォルトの名無しさん
2011/11/23(水) 14:46:23.20変えました…。これでいけるはずです…。
http://ideone.com/hScrG
ちなみに前のは、cmd.exeから、
cd [プログラムの入ってるフォルダの絶対パス]
[プログラムの名前] test.txt test.bmp
とやることで入力、出力を指定できます。
0572デフォルトの名無しさん
2011/11/23(水) 15:17:02.93できました、ありがとうございます!
ちなみにwindef.hを使えばもっと簡単にできるのですか?
0573デフォルトの名無しさん
2011/11/23(水) 15:23:35.21WindowsSDKが入ってるならWingdi.hにBITMAPINFOHEADER等が用意されているけど。
0574デフォルトの名無しさん
2011/11/23(水) 16:30:43.65そうなんですか、ありがとうございました!
0575デフォルトの名無しさん
2011/11/23(水) 17:39:05.18[2] 問題文(含コード&リンク):変数内の文字列変換
http://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4878
[3] 環境
[3.1] OS:指定なし
[3.2] コンパイラ名とバージョン:指定なし
[3.3] 言語:C
[4] 期限:2011年11月24日
[5] その他の制限:
よろしくお願いします
0576デフォルトの名無しさん
2011/11/23(水) 17:54:22.29こういうこと? http://codepad.org/f5RIxMUG
0577デフォルトの名無しさん
2011/11/23(水) 17:55:04.04解いてみようと思ったけど、shift-JIS?みたいで読めないな。
テンプレにあるアップローダーならokだと思うが。
0578デフォルトの名無しさん
2011/11/23(水) 19:49:44.56>解いてみようと思ったけど、shift-JIS?みたいで読めないな。
んなこたぁない
0580デフォルトの名無しさん
2011/11/23(水) 20:04:22.37[2] 問題文(含コード&リンク): 実数型の形式は以下のものとする
符号部(1ビット) 指数部(nビット) 仮数部(mビット)
以下のプログラムの実行結果から実数型変数の形式を類推する方法の検討
http://ideone.com/cLgGK
[3] 環境
[3.1] OS:unix
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: c
[4] 期限:
0581デフォルトの名無しさん
2011/11/23(水) 20:09:52.13http://ideone.com/RSqST
0582デフォルトの名無しさん
2011/11/23(水) 20:26:29.99>>373,382
0583デフォルトの名無しさん
2011/11/23(水) 21:47:07.73ありがとうございます
あと、指数部を符号なし整数としてオフセットを用いて
表現する方法を教えてください。
0584デフォルトの名無しさん
2011/11/23(水) 21:55:45.61新規にフォームアプリケーションプロジェクトを作成すると
左のソリューションエクスプローラーの中に、
「ソースファイル」と「ヘッダーファイル」があります。
map関数を使いたいのですが、
#include <map>は「stdafx.h」に書けばいいですか?
また、
「Debug::WriteLine」を使いたいので「using namespace System::Diagnostics;」と書きたいのですが、
「stdafx.h」に書けばいいですか?
0585デフォルトの名無しさん
2011/11/23(水) 21:56:48.69>>1
0586584
2011/11/23(水) 22:03:04.020587583
2011/11/23(水) 22:08:10.250588デフォルトの名無しさん
2011/11/23(水) 23:02:02.66(宿題を提出する上では理解する必要なない)
2)奇数から偶数になるときの値から-1〜+1で提出すればよし。
だいぶ噛み砕いたつもり。
0589デフォルトの名無しさん
2011/11/23(水) 23:15:45.09wikiのだとオフセットを用いて表現する、という条件が満たされていないような・・・
0590デフォルトの名無しさん
2011/11/23(水) 23:17:50.190591デフォルトの名無しさん
2011/11/23(水) 23:36:01.60ありがとうございます
あと、
>>580
のfloatをlong doubleに変えた場合も同じやり方でいいんでしょうか?
0592デフォルトの名無しさん
2011/11/23(水) 23:56:39.38あたり前だけど、試してから質問すればいいんでないかい?
0593デフォルトの名無しさん
2011/11/24(木) 00:05:41.71試してみたら、仮数部が63ビットとかになったんですが。
多分合ってないと思うんですけど、どうでしょうか?
0594デフォルトの名無しさん
2011/11/24(木) 00:14:38.70X wiki
O Wikipedia
0595デフォルトの名無しさん
2011/11/24(木) 00:26:01.85がおいらの環境で16(128ビット)なんでアリなんじゃないですかねぇ。
0596デフォルトの名無しさん
2011/11/24(木) 00:32:53.27printf("%Lf", long_double_value);
ってしないと正しく表示しないかも。
0597デフォルトの名無しさん
2011/11/24(木) 00:33:59.93[2]
以下の関数を作成しなさい。
llist_t reverse(const llist_t ls);
連結リストlsの要素を逆順に並べ替えた連結リストを新たに作成して返す。
補足:
typedef struct node {
int data;
struct node *next;
} node_t;
typedef node_t *llist_t;
[3] Windows
[3.1]windows 7
[3.2] EasyIDEC Ver 0.0.9.0
[3.3] C言語
[4] 11月25日
[5] 再帰呼び出しを必ず用いる。
0599デフォルトの名無しさん
2011/11/24(木) 00:41:48.28多分、ノード作成用の関数を教わっているはずなので教えてくださいな。
0600デフォルトの名無しさん
2011/11/24(木) 00:43:33.70すみません書き忘れてました。
int *allocInt(void){
return (int *)malloc(sizeof(int));
}
です。
0601デフォルトの名無しさん
2011/11/24(木) 00:44:02.73printf("%f", [floatかdouble]);
printf("%Lf", [long double]);
ということ。
0602デフォルトの名無しさん
2011/11/24(木) 00:49:48.21ごめんなさい
node_t *allocNode(){
return (node_t *)malloc(sizeof(node_t));
}
でした。
0603デフォルトの名無しさん
2011/11/24(木) 00:54:38.19%Lf でやっても変わりませんでした。
0604デフォルトの名無しさん
2011/11/24(木) 00:57:50.54コードの良し悪しの場合はコード全部UPすべし
0605デフォルトの名無しさん
2011/11/24(木) 01:01:44.88[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):標準出力から文字型の配列str[3][20]に3つの文字列を入力し入力した順番に標準出力する。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: 不明
[3.3] 言語: C
[4] 期限: 2011年11月4日8時まで
[5] その他の制限: 入力ではscanfでなくfgetsとsscanfを利用しないといけないみたいです。
それでは宜しくお願いします
0606デフォルトの名無しさん
2011/11/24(木) 01:05:18.97http://ideone.com/hLWBm
0607デフォルトの名無しさん
2011/11/24(木) 01:06:17.350608デフォルトの名無しさん
2011/11/24(木) 01:22:09.73マルチ?
C言語なら俺に聞け(入門編)Part 92
http://hibari.2ch.net/test/read.cgi/tech/1320933306/
#545,557
0609デフォルトの名無しさん
2011/11/24(木) 01:26:14.15http://ideone.com/vfLZJ
ちなみにunixで実行したらsizeofは16ビットでした
0610デフォルトの名無しさん
2011/11/24(木) 01:50:27.64[1] 授業単元:情報技術�U
[2] 問題文(含コード&リンク):
以下の2つの要件を満たす、3行3列の行列の積を計算し、表示するプログラムmultiply.cを作成せよ。
(1)整数型の行列A,Bおよびそれらの行列積A*Bを、以下の配列名で宣言する(A,Bの値は各個人で自由に設定)。
int matrix_a[3][3]={{1,2,3},{4,5,6},{7,8,9}};/*行列A*/
int matrix_b[3][3]={{10,11,12},{13,14,15},{16,17,18}};/*行列B*/
int matrix_multiply_a_by_b[3][3]={{0,0,0},{0,0,0},{0,0,0}};/*計算結果代入用の行列*/
(2)行列の積A*Bのi行j列目の要素の計算を、for文を用いて行うこと。
[3] 環境
[3.1] OS: Wiンdows Vista
[3.2] 不明
[3.3] 言語: C
[4] 期限: 11月25日
お願いします
0611575
2011/11/24(木) 02:37:26.92作成ありがとうございました
でもこれって型を変えて表示しているだけですよね
ASCIIコードから対応する文字に変換ってできませんかね?
0612デフォルトの名無しさん
2011/11/24(木) 03:13:22.18#include <stdio.h>
#define f(x) for (x = 0; x < 3; x++) {
int main(void)
{
int matrix_a[3][3]={{1,2,3},{4,5,6},{7,8,9}};/*行列A*/
int matrix_b[3][3]={{10,11,12},{13,14,15},{16,17,18}};/*行列B*/
int matrix_multiply_a_by_b[3][3]={{0,0,0},{0,0,0},{0,0,0}};/*計算結果代入用の行列*/
int i,j,k;
f(i)f(j)f(k)
matrix_multiply_a_by_b[i][j] = matrix_a[i][k] * matrix_b[k][j];
}}}
f(j)f(i)printf("%5d", matrix_multiply_a_by_b[i][j]);}
printf("\n");}
}
0613デフォルトの名無しさん
2011/11/24(木) 03:25:54.90ttp://ideone.com/rojQm
なんか美しくない
0614デフォルトの名無しさん
2011/11/24(木) 03:36:23.35こんな夜中までありがとうございます
参考にさせてもらいます
0615デフォルトの名無しさん
2011/11/24(木) 06:01:53.55>>373のコードだけではわかりにくいと思うので自分の勉強も兼ねて以下のような
コードを書いてみた
http://ideone.com/aAWMf
(dec)はdecimal(10進数)、(bin)はbinary(2進数)の意味なのでよろしく
0616デフォルトの名無しさん
2011/11/24(木) 07:28:18.76宿題片付けますwiki なんてものが存在するのかと一瞬勘違いした
0617デフォルトの名無しさん
2011/11/24(木) 10:06:41.81こういう事?
#include <stdio.h>
int main(void){
char str[3][20], s[100];
int i, w;
printf("3つの文字列を入力して下さい(例:abc defgh ijkl)¥n");
fgets(s, sizeof(str[i]), stdin);
w = sscanf(s, "%s %s %s", str[0], str[1], str[2]);
printf("¥n");
for (i = 0; i < 3 && i < w; i++)
printf("入力した文字列の%d番目は%sです¥n", i, str[i]);
return 0;
}
0618デフォルトの名無しさん
2011/11/24(木) 10:17:07.280619デフォルトの名無しさん
2011/11/24(木) 10:30:42.17なんか例外吐いて落ちるんですけど(Windows XP + VC)
0620デフォルトの名無しさん
2011/11/24(木) 11:04:01.58snprintfとprintfを使う問題ですよね?
ASCIIコードから対応する文字に直接変換出来ないこともないけど、
それだとsnprintfを使う必要性がないと思います。
問題の趣旨がsnprintfを使って変換することなので、これでいいのではないのですか?
0621デフォルトの名無しさん
2011/11/24(木) 11:33:34.44どんな例外かわかる? 数値があふれるのを放置してあるからかなあ?
ループの範囲を小さくしてあふれない程度でやってみるとか...
0622デフォルトの名無しさん
2011/11/24(木) 11:35:08.39例外ハンドラーを組み込むとかすれば良いんじゃね?
0623デフォルトの名無しさん
2011/11/24(木) 11:49:19.50CodeGuardのログ貼ってみますね
Error 00001. 0x400000 (Thread 0x0780):
Exception 0xC0000091:
| dai52.c line 75:
| printf("%.1f => frac (bin) 1+.%s, exp (dec) %d-127=%d\n",
| x, fracstr, ie3f.ff.exp, decexp);
|> printf("((dec) %.1f = (bin) 1.%s*10^%s)\n\n", x, fracstr, expstr);
| }
|
Call Tree:
0x00401378(=dai52.exe:0x01:000378) dai52.c#75
0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA)
Exception 0xC0000091というのは浮動小数点オーバーフロー
0624デフォルトの名無しさん
2011/11/24(木) 17:52:48.94[2] 問題文(含コード&リンク):
enqueue()とdequeue()を用いて実行結果が
Please input E(登録) or D(削除): E
Input number and name: 8 Nakamura
Please input E(登録) or D(削除): E
Input number and name: 3 Saito
Please input E(登録) or D(削除): D
Number=8 Name=Nakamura
Please input E(登録) or D(削除): D
Number=3 Name=Saito
Please input E(登録) or D(削除): D
No Data!
Please input E(登録) or D(削除): E
・
・
・
のように動作するプログラムを作成せよ
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:VC2008
[3.3] 言語:C
[4] 期限:11月25日
[5] その他の制限:
0625デフォルトの名無しさん
2011/11/24(木) 17:55:25.48[2] 問題文:123, 1.23, 1.2.3という数字を入力したとき、
整数、小数、使用できない数字という分類に分けよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: 不明
[3.3] 言語: C言語
[4] 期限:[2011/12/5]
よろしくお願いいたします
0626デフォルトの名無しさん
2011/11/24(木) 18:40:10.39http://ideone.com/unLuq
0627デフォルトの名無しさん
2011/11/24(木) 19:53:51.73ありがとうございます!
ちなみに、もしC++の場合だとどう変更になりますでしょうか?
出来たらやるという課題としてC++の場合があるのですが……
0628デフォルトの名無しさん
2011/11/24(木) 19:55:21.14FIFOだな
・ポインタリンクで書くべきか配列のリングバッファで書くべきか判断できる?
・名前の文字数は無制限?
0629デフォルトの名無しさん
2011/11/24(木) 20:18:55.27ポインタリンクで
名前の文字数は半角10文字までです
リスト構造体って難しい
0630デフォルトの名無しさん
2011/11/24(木) 21:58:51.42http://ideone.com/OEtpd
0631デフォルトの名無しさん
2011/11/24(木) 21:59:41.37重ね重ね感謝いたします
ありがとうございました!
0632デフォルトの名無しさん
2011/11/24(木) 22:06:39.78見ての通りFIFOのルートをグローバル変数としている
回避するには enqueue() と dequeue() に node** pptop を渡せば良い、お勉強する気が有るなら書き直すのも良いだろう
ttp://codepad.org/bSCAqAQ7
0634デフォルトの名無しさん
2011/11/24(木) 22:23:40.74なるほど
さて、明日参考書を買ってくるか
0635デフォルトの名無しさん
2011/11/24(木) 22:25:41.16処理系によってはdoubleとlong double(さらに、処理系によってはfloatとdoubleとlong double)の形式が同一のものがあるが、そのようにするメリットについて述べよ。
0636デフォルトの名無しさん
2011/11/24(木) 22:28:26.920637デフォルトの名無しさん
2011/11/24(木) 22:38:05.90>例外ハンドラーを組み込むとかすれば良いんじゃね?
確かにそうなんだがかなり環境依存っぽいので、やる気なくしたw
詳しい人がいたら、例外処理を加えていただけるとw
>>623
なんか行数が変わってるw Winでコンパイルするのに#includeとか足してある?
もしprintfを呼んだ時点で死んでるなら、FLT_MAXと比較してprintfを呼ばないように
すればいいかも?
0638635
2011/11/25(金) 00:10:19.22レポートにまとめるんで、出来れば具体的にお願いします。
0639デフォルトの名無しさん
2011/11/25(金) 00:43:20.24そういうコンパイラあるの?
0640デフォルトの名無しさん
2011/11/25(金) 01:17:29.831)C言語は処理系依存
2)処理系が自然に扱える不動小数点数が限られている場合がある。
3)C言語処理系の作成者は環境にな形式を選択できる。
↓
4)コンパイラ製作者が楽をでき、処理系も素直になる。
5)どーしても特定のフォーマットが欲しければプログラマが作ればよい。
具体的に書いた。プログラム書く以外はあまりコメしたくないのん。
まとめるのは>>638さんがやるよーに受け取った。
「処理系依存」とか「未定義」がなぜC言語に存在するかも調べると、
理解深まるよ。
0641デフォルトの名無しさん
2011/11/25(金) 03:22:56.80[2] 問題文(含コード&リンク):
半径5cmの円の面積[cm^2]を求めるプログラムを作成し、
小数点以下5桁まで解を求めよ。
[3] 環境
[3.1] OS: Windows7
[3.2] gcc
[3.3] 言語:C
プログラミング初心者です。よろしくお願いいたします。
0642デフォルトの名無しさん
2011/11/25(金) 04:00:13.58#include <stdio.h>
#define PI 3.14159265358979323846
#define menseki(r) ((PI)*r*r)
int main()
{
double r = 5;
printf("半径5cmの円の面積 = %.5lf\n",menseki(r));
return 0;
}
>%.5lf\n
l は不要。
>printf("3つの文字列を入力して下さい(例:abc defgh ijkl)¥n");
>fgets(s, sizeof(str[i]), stdin);
i が未初期化。
というかループに書くのわすれたんですね。
>printf("\n");
普通 putchar('\n'); とかく。
というか、なんだかすごいマクロの使い方ですね。せめて { の数をあわさないと、うちのくそエディタが狂うんですけど。
0646デフォルトの名無しさん
2011/11/25(金) 10:15:23.240647デフォルトの名無しさん
2011/11/25(金) 10:25:45.130648デフォルトの名無しさん
2011/11/25(金) 10:28:52.98・ポーカーの点数計算
・七並べで、複数プレーヤーが最善手を選択した時の順位
・神経衰弱で、3手前しか覚えてないPCとの対戦
0649デフォルトの名無しさん
2011/11/25(金) 10:29:19.46どうやればうまくいきます?
0650デフォルトの名無しさん
2011/11/25(金) 10:31:09.31その中だったら七並べやりたいんですけど初心者で。詳しく教えてください。
0651デフォルトの名無しさん
2011/11/25(金) 10:34:28.82【初心者歓迎】C/C++室 Ver.76【環境依存OK
http://hibari.2ch.net/test/read.cgi/tech/1312621728/
0652デフォルトの名無しさん
2011/11/25(金) 10:41:11.26C言語でトランプゲームを作りたい
http://hibari.2ch.net/test/read.cgi/tech/1189892773/
0653デフォルトの名無しさん
2011/11/25(金) 11:14:40.01644 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
645 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
へー、そういう書き込みでレス削除されたことになる専用ブラウザがあるんだ?
0655デフォルトの名無しさん
2011/11/25(金) 12:35:27.210656デフォルトの名無しさん
2011/11/25(金) 12:38:34.340657デフォルトの名無しさん
2011/11/25(金) 12:49:05.54餌をやるな
0658デフォルトの名無しさん
2011/11/25(金) 12:56:53.68http://aakitekucha.seesaa.net/?1322190425
0659デフォルトの名無しさん
2011/11/25(金) 13:58:28.16[2] 問題文(含コード&リンク):文字列st の中に含まれる文字ch の個数(含まれて
いなければ0 とする)を返す関数
int str_chnum(const char st[], int ch)
を作成せよ.以下の実行例のように,関数の動作を確認
できるmain 関数も作成すること.
【注意】scanf で文字列を入力させた後にgetchar 関
数で文字を入力させたい場合,getchar で文字を入力
させる前に
scanf("%*c");
などとして,バッファに残った改行コードを読み捨て
ておく必要がある.
のように動作するプログラムを作成せよ
[3] 環境
[3.1] OS:linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:11月25日 17:00
[5]例 文字列を入力してください:KoKo
検索する文字を入力してください:o
その文字は2 個含まれています。
その他の制限: ポインタは習っていません
0660デフォルトの名無しさん
2011/11/25(金) 14:06:32.01int str_chnum(const char st[], int ch)
{
int i, num;
for(i = num = 0; st[i]; i++) if(st[i] == ch) num++;
return num;
}
int main(void)
{
char st[256];
int num, ch;
printf("文字列を入力してください:");
scanf("%s", st);
scanf("%*c");
printf("検索する文字を入力してください:");
ch = getchar();
num = str_chnum(st, ch);
printf("その文字は");
if(num) printf("%d 個含まれています。\n", num);
else printf("含まれていません。\n");
return 0;
}
0661デフォルトの名無しさん
2011/11/25(金) 15:23:02.55問題張る前にスレの中読まないの?
0662デフォルトの名無しさん
2011/11/25(金) 15:59:16.98[1] 授業単元:プログラミング入門(C)
[2] 問題文(含コード&リンク):
無限ループを用い、 1〜100までの数値を任意に10回分だけ入力し、その度数分布を求めよ。
ただし、for文は用いず、while文で。度数分布は5等分して表示せよ。(例えば1~20に4個 21~40に3個 41~60に2個 61~80に1個 81~100に0個)
[3] 環境
[3.1] OS:(Windows/Linux/等々)
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 今週末
[5] その他の制限:for文を使わずwhile文でやれと言われています。度数分布は5等分で
始めたばかりなので、初心者同然の知識しかなく、プログラミング入門レベルです。
よろしくお願いします。
0663デフォルトの名無しさん
2011/11/25(金) 16:00:50.48OS環境はおそらくLinuxではないかと思うのですが、よくわかりません
よろしくお願いします。
0664デフォルトの名無しさん
2011/11/25(金) 16:50:21.43http://ideone.com/C4Qdi
0665デフォルトの名無しさん
2011/11/25(金) 19:08:07.59[2] 問題文(含コード&リンク):
図のように33個の節点が抵抗で繋がれた電気回路がある。 ただし、全ての抵抗の抵抗値は同じである。
ここで、AB間に5Vの電源を接続し、Aの電位を5V、Bの電位の0Vとしたとき、残りの31点の電位を計算せよ。
ttp://iup.2ch-library.com/i/i0487130-1322215626.jpg
(注)
回答は、
V0=ww
V1=xx
V2=yy
V3=zz
...
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2011/12/01
[5] その他の制限: キルヒホッフの法則・ガウスの消去法を使う
0666デフォルトの名無しさん
2011/11/25(金) 22:38:13.87[2] 問題文(含コード&リンク):
為替レート(rate)、円(yen)、ドル(doll)、セント(cent)(いずれも整数)からなる構造体moneyの
ポインタを引数とし円からドルへの変換を行う関数exchangeを作成せよ.
関数exchangeのプロトタイプ宣言
void exchange(struct money *mp);
上の関数を使ってrateが80円のときの25800円のドルとセントを求めるプログラムを作成せよ。
なお、メインプログラム内に以下のような初期値つきの構造体変数宣言を使うこと.
struct money m = { 80, 25800, 0, 0 };
実行例
$./kadai1
322 doll 50 cent
ヒント
「
struct money {
// メンバー
};
exchange(&m); // 擬似的参照渡しになるので,結果はmoneyに返る
」
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2011年11月27日まで
[5] その他の制限:
問題文で使われている宣言とヒントとして提示されているものを使っての解答をよろしくお願いします。
0667デフォルトの名無しさん
2011/11/26(土) 00:04:26.81#include <stdio.h>
#include <string.h>
const int kParameter = 100;
const int kRange = 20;
#define NELEMS(array) (sizeof(array) / sizeof(array[0]))
int main() {
int i;
int count = 0;
int dist[kParameter / kRange];
memset(dist, 0, sizeof(dist));
while (1) {
int n = rand() % kParameter;
printf("%d\n", n + 1);
++dist[n / kRange];
if (++count >= 10) break;
}
for (i = 0; i < NELEMS(dist); ++i) {
printf("%3d - %3d: %d\n", kRange * i + 1, kRange * (i + 1), dist[i]);
}
return 0;
}
0668デフォルトの名無しさん
2011/11/26(土) 00:04:41.67#include <stdio.h>
struct money {
int rate;
int yen;
int doll;
int cent;
};
void exchange(struct money *mp) {
mp->doll = mp->yen / mp->rate;
mp->cent = 100 * (mp->yen % mp->rate) / mp->rate;
}
void print(struct money *mp) {
printf("%d doll %d cent\n", mp->doll, mp->cent);
}
int main() {
struct money m = { 80, 25800, 0, 0 };
exchange(&m);
print(&m);
return 0;
}
0669デフォルトの名無しさん
2011/11/26(土) 00:43:55.98[2] 問題文(含コード&リンク):16f819にてAD変換せよ
[3] 環境
[3.1] OS: Windows
[3.2] 不明(PicKit2でPICに書き込みしてます)
[3.3] 言語: C
[4] 期限: 11/28
[5] その他の制限
#include<16f819.h>
#device ADC=10
#use delay (clock=8000000)
#define A_ANALOG 0x80
void port_ini(void);
float data;
void main()
{
#byte OSCCON=0x8f
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(A_ANALOG);
port_ini();
while(1)
{
省略
}
void port_ini(void)
{
set_tris_a(0b00000110);
set_tris_b(0b00000000);
}
コンパイルしたら成功しますがPICに書き込み成功後、AD変換できてません。
プログラム上の間違いがありましたら指摘お願いします。
0670デフォルトの名無しさん
2011/11/26(土) 00:49:19.04[2] 問題文(含コード&リンク):
#include<stdio.h>
int main(void)
{
int i=0;
char *ptr;
char str[128];
ptr = str;
scanf("%s",&str);
while(*ptr++){
i++;
}
printf("%d\n",i);
}
上記の入力したテキストの文字数を表示するプログラムの読み込み部分をファイル処理に変更せよ。
fgetc() 関数を使用し、コマンドラインにファイル名が指定できるようにすること。
ただし、ファイル名を指定しない場合は標準入力とする。
ファイルが見つからなかった時はエラーメッセージを出し、プログラムを終了する。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ:gcc
[3.3] 言語:C言語
[4] 期限:2011年11月27日(日曜) 23:59
[5] その他の制限:読み込むテキストファイル数は1つです。よろしくお願いします。
0671デフォルトの名無しさん
2011/11/26(土) 01:28:58.74#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i = 0;
char *ptr;
char str[128];
FILE *fin;
if (argc == 1) {
ptr = str;
scanf("%s", str);
while (*ptr++) i++;
} else {
if ((fin = fopen(argv[1], "r")) == NULL) {
fprintf(stderr, "Input file open error\n");
exit(EXIT_FAILURE);
}
while (fgetc(fin) != EOF) i++;
fclose(fin);
}
printf("%d\n", i);
return 0;
}
0672デフォルトの名無しさん
2011/11/26(土) 10:36:19.21[2] 問題文(含コード&リンク):
以下の実行例のように,姓と名を入力すると,2 つの
間にスペースを入れて連結した文字列を生成するプロ
グラムを作成せよ.姓と名はそれぞれ配列family[] と
first[] に,連結した文字列は配列fullname[] に格納
すること.入力できる姓と名の長さはそれぞれ30 字ま
でとする.
実行例.
Family name: Roku
First name: Dai
Roku Dai
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2011年11月27日まで
[5] その他の制限:
問題文で使われている宣言とヒントとして提示されているものを使っての解答でお願いします
ポインタは習っていません
0673デフォルトの名無しさん
2011/11/26(土) 10:50:35.35http://ideone.com/Pi7F7
0674デフォルトの名無しさん
2011/11/26(土) 11:58:04.62scanf で30文字以上入力されたらどうなる?
0675デフォルトの名無しさん
2011/11/26(土) 12:27:39.4830文字以上入れた奴が悪い
それをいうと、題意から一歩踏み出してポインタを使わざるを得ない。
http://ideone.com/OyyrC
0677デフォルトの名無しさん
2011/11/26(土) 12:48:08.850678デフォルトの名無しさん
2011/11/26(土) 12:51:46.10http://ideone.com/2nwgU
0679デフォルトの名無しさん
2011/11/26(土) 12:57:59.65fgets() でもバッファサイズは有限だよ
0680デフォルトの名無しさん
2011/11/26(土) 13:03:52.87サイズをはみ出してるかをチェックして、捨てればいい。
0681デフォルトの名無しさん
2011/11/26(土) 13:09:48.96http://ideone.com/CLzp9
0682デフォルトの名無しさん
2011/11/26(土) 15:44:28.74そういう意味じゃなくてバッファより入力文字数が多かったらストリームにゴミが残るからって話なんだけど...
fflush() すれば良いだけの話だなw
0683デフォルトの名無しさん
2011/11/26(土) 15:45:19.56バカは手に負えないな
0684デフォルトの名無しさん
2011/11/26(土) 15:52:29.48fflush() では入力ストリームに対しては未定義。
ISO/IEC 9899:1999 7.19.5.2.2
0686デフォルトの名無しさん
2011/11/26(土) 16:05:07.02そうだっけ?
ttp://msdn.microsoft.com/ja-jp/library/9yky46tz.aspx
stdin からの入力なんて滅多に使わないから細かい仕様に興味がないもんでねw
0687686
2011/11/26(土) 16:12:07.34少なくとも捨てて良いデータの為に realloc() を繰り返す様なコードは書きたくないなw
0688デフォルトの名無しさん
2011/11/26(土) 16:22:21.62その環境で大丈夫かどうか、だな
realloc() の繰り返しを避けたいのであれば、避けたいというその気持ちの強さに応じて、static char 配列のサイズを大きめにすればよい、そういう風には作ったつもり。
http://ideone.com/OyyrC
#define BUFFSIZE 65536 /* >= 2 */
char *mygetline(FILE *fp) {
static char inbuff[BUFFSIZE];
0690デフォルトの名無しさん
2011/11/26(土) 17:44:30.69とはいえ malloc() も realloc() も使う必要が無い処理であることには変わりない
0692デフォルトの名無しさん
2011/11/26(土) 17:54:45.480693デフォルトの名無しさん
2011/11/26(土) 17:57:34.69興味があるなら、あぼーん設定を外してみれ
0694デフォルトの名無しさん
2011/11/26(土) 18:03:12.92不定長に対応する必要が無い処理に使うのは無駄だと言っている
自己満足のコードはサンデープログラマの特権だけど現場では迷惑
0695デフォルトの名無しさん
2011/11/26(土) 18:03:14.25ああ、またQか
こいつ文句を垂れ始めたな
0696デフォルトの名無しさん
2011/11/26(土) 18:14:10.63餌やんな
ま、C++ の考え方に慣れきったものでして、string クラスやvector/deque/map コンテナの思想くらいは、C で書くときも心がけているだけだけどね。
これは業務に携わっている方にお聞きしたいのではあるが、固定長のプロトコルを前提にコードを製造することは、今でもあるものだろうか?
>>695
fflush(stdin) のまずさを指摘された >>682 が逆切れしているだけなのでは?
0698デフォルトの名無しさん
2011/11/26(土) 18:22:13.970699デフォルトの名無しさん
2011/11/26(土) 18:52:46.55C/Sなら可変長電文の方が少ないよ
IP電話の制御電文や音声データも固定長だ
データファイルも構造体をバイナリで出力することが多いから固定長が多い、レコード数は可変だけどね
0700デフォルトの名無しさん
2011/11/26(土) 19:20:23.14[2] 問題文(含コード&リンク):
問題1で作成したプログラムに、スライド番号8にあるトーンカーブ(ネガポジ)を、画像の濃度値を変換する関数としてを追加し、任意の画素数をもつpgm画像のコントラストを変更するプログラムを作成せよ.コントラスト変換後の画像はpgm画像として保存すること.
http://codepad.org/76qGL5Cb
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:windows visual studio2008
[3.3] 言語:C++
[4] 期限:2011年11月28日まで
[5] その他の制限:
よろしくお願いします
0701デフォルトの名無しさん
2011/11/26(土) 20:20:29.44途中まで書いたが、力尽きた。
エロイ人頼む。
http://ideone.com/Fa8bL
ありがとうございます。
0703デフォルトの名無しさん
2011/11/26(土) 20:41:55.58これ直すと動くんじゃね?
Error 00001. 0x130700 (Thread 0x0814):
Access overrun: Attempt to access 8 byte(s) at 0x0012DBDC+8712, that is at
offset 0+8712 in local block 0x0012DBDC(=[ebp-0x23B0] @dai57.exe:0x01:000585)
which is only 8712 bytes long.
| dai57.c line 104:
| for (i = 0; i <= N; i++) {
| for (j = 0; j <= N; j++) {
|> m[i][j] = 0;
| v[i]=0;
| }
Call Tree:
0x00401585(=dai57.exe:0x01:000585) dai57.c#104
0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA)
------------------------------------------
Error 00002. 0x130700 (r) (Thread 0x0814):
Access overrun: Attempt to access 8 byte(s) at 0x0012DBDC+8712, that is at
offset 0+8712 in local block 0x0012DBDC(=[ebp-0x23B0] @dai57.exe:0x01:000585)
which is only 8712 bytes long.
| dai57.c line 104:
| for (i = 0; i <= N; i++) {
| for (j = 0; j <= N; j++) {
|> m[i][j] = 0;
| v[i]=0;
| }
Call Tree:
0x00401585(=dai57.exe:0x01:000585) dai57.c#104
0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA)
0704デフォルトの名無しさん
2011/11/26(土) 20:44:41.65Error 00003. 0x130700 (Thread 0x0814):
Access overrun: Attempt to access 8 byte(s) at 0x0012FDE8+264, that is at
offset 0+264 in local block 0x0012FDE8(=[ebp-0x1A4] @dai57.exe:0x01:00059F)
which is only 264 bytes long.
| dai57.c line 105:
| for (j = 0; j <= N; j++) {
| m[i][j] = 0;
|> v[i]=0;
| }
| }
Call Tree:
0x0040159F(=dai57.exe:0x01:00059F) dai57.c#105
0x32C9C8AA(=CC32120MT.DLL:0x01:09B8AA)
0705デフォルトの名無しさん
2011/11/26(土) 21:02:15.66便乗質問で申し訳ないですが、このエラーメッセージは何かツールを使って出してるんでしょうか?
自分の環境(Mac,gcc4.1)では出なかったもので。
0706デフォルトの名無しさん
2011/11/26(土) 21:02:42.59ありがとうございました
0707デフォルトの名無しさん
2011/11/26(土) 21:04:37.08[2] 問題文(含コード&リンク):
名前(char name[20])と点数(int score)からなる構造体の配列を作る.
件数(10以下)をキーボード入力後、その件数だけ名前と点数をキーボード入力して配列に格納し,
点数の平均点と、平均点以上の学生の名前を表示するプログラムを作成せよ.
なお,文字列aと整数bを同時にキーボード入力するには、scanf("%s %d",a,&b)とすればよい(文字列変数には&がいらない).
実行例
$./kadai
n? 5
name score? taro 52
name score? jiro 84
name score? saburo 38
name score? hanako 63
name score? youko 72
Average:61
Above average:jiro hanako youko
ヒント
struct student {
char name[20];
int score;
} student;
scanf("%s %d",student.name, &student.score);
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] その他の制限:
問題文で使われている宣言とヒントとして提示されているものを使っての解答をよろしくお願いします。
0708デフォルトの名無しさん
2011/11/26(土) 21:15:37.03これはDelphi/C++Builder XE2に付属しているCodeGuardというバグ検出ツール
これだけのために買い続けてる
実際の仕事はVC10でやってるけど
多分、Borland C/C++ ver 6 の codeguard
評価版をインストールして、 bcc32 -v -vG (だったかな)でコンパイルし、生成したバイナリを実行すればよいはず。
0710デフォルトの名無しさん
2011/11/26(土) 21:20:09.71無職は金ないから買えないもんな
0711デフォルトの名無しさん
2011/11/26(土) 21:39:12.20[2] 問題文(含コード&リンク):
malloc関数とリスト構造を使い、ファイルから二行の多桁整数を読み取る。
それを4桁ずつリスト構造に格納し、加算を行うプログラムを作れ。
口頭で出題された問題なので、おかしい部分があったらすみません。
[3] 環境
[3.1] OS:windowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 11/28の正午まで
[5] その他の制限: ありません
0712デフォルトの名無しさん
2011/11/26(土) 22:04:54.33[2] 問題文(含コード&リンク):
整数値を読み取り,4桁毎に 兆,億,万 を挿入して表示せよ.
例
入力:114514
出力:11万4514
入力:810
出力:810
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2011年11月27日まで
[5] その他の制限:
初心者ですが頑張ります
0713デフォルトの名無しさん
2011/11/26(土) 22:15:45.51ココに投げてる時点でがんばってない気がするけどまあ良いか
0714デフォルトの名無しさん
2011/11/26(土) 22:23:32.35>多分、Borland C/C++ ver 6 の codeguard
Version6は体験版のダウンロードはしてないはずだが
誰にコピーしてもらったか知らないけどライセンス違反ですね
犯罪ですよ
0715デフォルトの名無しさん
2011/11/26(土) 22:26:17.12http://ideone.com/XqPD9
0716デフォルトの名無しさん
2011/11/26(土) 22:30:47.59こんなんを puts で表示すればよくね?
3.266968 3.123636 2.855417 2.500000 2.144583 1.876364 1.733032
3.410299 3.248523 2.942614 2.500000 2.057385 1.751477 1.589701
3.715407 3.517544 3.166518 2.500000 1.833482 1.482456 1.284593
4.218378 3.939727 3.705912 1.294088 1.060273 0.781622
5.000000 4.317073 4.011493 0.988507 0.682927 0.000000
0717デフォルトの名無しさん
2011/11/26(土) 22:59:41.72有難うございました。
やはり本格的にプログラミングするなら、ツールが必要ですね。
0718デフォルトの名無しさん
2011/11/26(土) 23:24:48.14#include <stdio.h>
int
main()
{
char s[20], *p = s, k[][10] = {"", "万", "億", "兆"};
int n = 0;
printf("n=");
scanf("%s", s);
while (*p++)
n++;
for (p = s; *p; p++) {
putchar(*p);
if (--n % 4 == 0)
printf("%s", k[n / 4]);
}
return 0;
}
0719デフォルトの名無しさん
2011/11/26(土) 23:39:52.72http://ideone.com/5E3Ix
0720デフォルトの名無しさん
2011/11/26(土) 23:50:50.28http://ideone.com/Mpnkn
0721デフォルトの名無しさん
2011/11/27(日) 00:09:08.29ありがとうございましたー
0722デフォルトの名無しさん
2011/11/27(日) 00:40:54.91[2] 問題文(含コード&リンク):
設問1-1
プログラム例10.1.3で関数sumとdiffereceの中に適当なprintf文を追加しなさい、又「s=sum(a,b); d=difference(a,b); printf("%7.3fと%7.3fの和は%7.3f差は%7.3f\n",a,b,s,d);」の3ステートメントを、変数s,dを使わずに1ステートメントで記述しなさい。
プログラム例10.1.3
ttp://www.dotup.org/uploda/www.dotup.org2311990.txt.html
設問1-2
2つの整数型変数の和、差、積、商を求めて表示するプログラムを作成せよ。ただし、4つの演算それぞれを関数化すること。
設問1-3
設問1-2で被演算数の「2つの整数型変数」をxとyとし(「int x, y;」と宣言する)、xとyの値をキーボードから入力するようにしなさい。
和、差、積と商を表示するprintf文はmain関数中に記述すること。変数はすべて局所変数を用いること。
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:[2011年12月2日8:00まで]
[5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文
繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数
条件分岐if文、要素番号idx使用の書換、データの入れ替え
条件分岐・論理演算子を用いたif文の条件、if文、else if文
switch文、ポインタ変数・演算子*と&、関数・プロトタイプ宣言と関数定義
引数と戻り値は習いました。
宜しくお願いします。
http://hibari.2ch.net/test/read.cgi/tech/1313183984/26
>>716 と結果が一致しました。
>>714
前は評価版をダウンロードできていたんですけれどもね。
http://hibari.2ch.net/test/read.cgi/tech/1304410950/827
0724デフォルトの名無しさん
2011/11/27(日) 01:08:17.90http://ideone.com/no3O4
http://ideone.com/IDWlO
http://ideone.com/xm2N3
0725デフォルトの名無しさん
2011/11/27(日) 02:46:28.09fpuがlong double未サポートの時、doubleにtypedefしてfpuエミュレーションしないですむってことかえ?
0726デフォルトの名無しさん
2011/11/27(日) 02:48:30.030727デフォルトの名無しさん
2011/11/27(日) 03:53:52.46そりゃDelphi/C++ Builder XE/XE2の評価版だろうが
C++ Builder6 の評価版はダウンロード出来ないという意味で言ったんだ
出来たのはDelphi6 Personalのみ
で、使用期限が切れたにも関わらず(15日間)、CodeGuardを使い続けて
いるのだったらそれもライセンス違反だ
0728デフォルトの名無しさん
2011/11/27(日) 04:12:28.78昔は代替計算ライブラリをリンクしてやってました。ちょっとしたトリックですりかわるようになっていました。
さすがに pentium 以前で win32 を動かすことはもうないでしょうから、今はこんなトリックは廃れてしまったでしょうね。
>>723
ふむ。確かに「C++Builder XE2 Architect - 30 day trial」というのが正確な呼び方ですね。
でも 30日試用可なんですけど。あと IDE とかは起動しませんが、bcc32 6.31 は今でも使えますけれども?
それも契約違反なんですかね?
0731デフォルトの名無しさん
2011/11/27(日) 07:19:50.13FileMaker 買ったばっかりで金欠なんです。
0733デフォルトの名無しさん
2011/11/27(日) 08:18:16.97>ふむ。確かに「C++Builder XE2 Architect - 30 day trial」というのが正確な呼び方ですね。
>でも 30日試用可なんですけど。あと IDE とかは起動しませんが、bcc32 6.31 は今でも使えますけれども?
30日なんてとっくに過ぎてるだろうが
>>723の書き込みは7/4だぞ
bcc32等のツールも30日を過ぎたら試用期間が切れるとlicence_ja.rtfに書いてある
4. 終了。 ライセンサは、次の場合に、追加の義務や責任を負うことなく本契約をただちに
終了することができます。(a) 使用権に関して、お客様が以下に定める使用権の料金を
支払わず、支払期限の最後の日から 30 日間を過ぎても滞納し続けている場合
犯罪を自分で告白しておいてこれだけ厚顔無恥な奴もめずらしい
Embarcaderoに報告しておこうかねえ
「***追加の***義務や責任を負うことなく本契約をただちに終了することが***できます***。」
どこにもアンインストールしろとは書いていませんけれども、それでも試用期限がきれたらアンインストールしなければならないのでしょうか?そう主張するのならまず、その根拠を示してください。
こういうソフトウェアパッケージは情報提供・バグ修正やなにかあったときのサポートが不可欠でありそのためにお金をだすものと思っているのですが、それが受けられないことを承知で試用版を使い続けることになにか問題でもあるのでしょうか?
あと IDE はとっくの昔に起動できなくなっています。bcc32 でコンパイルは今でもできます。ただ、bcc32 にバグはあるかもしれませんし、そのバグも修正してもらえるあてはありませんが。
0735デフォルトの名無しさん
2011/11/27(日) 08:41:11.47裁判所から内容証明郵便が届いてから真っ青になっても遅いわ
0736デフォルトの名無しさん
2011/11/27(日) 08:45:14.98なんのためのスターターエディションなんだよ
0737デフォルトの名無しさん
2011/11/27(日) 09:21:37.15◇◇ / ̄| ◇◇
◇◇ \ |__| ◇◇
彡 O(,,゚Д゚) /
( P `O
/彡#_|ミ\
</」_|凵_ゝ
【ラッキーAA】
このAAを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
0738デフォルトの名無しさん
2011/11/27(日) 09:32:00.25裁判所から内容証明郵便が届くというのは、初めて聞いた
0739デフォルトの名無しさん
2011/11/27(日) 09:52:34.09「受け取った」「受け取ってない」で揉めないためだってさ
有無を言わせず引っ張り出せる
0740デフォルトの名無しさん
2011/11/27(日) 10:04:00.430741デフォルトの名無しさん
2011/11/27(日) 10:08:37.10裁判を起こした相手が裁判所から出すんだろうな
0742デフォルトの名無しさん
2011/11/27(日) 10:14:41.99裁判所が郵便業務をしているというのは、初めて聞いた。
0743デフォルトの名無しさん
2011/11/27(日) 10:17:28.290744デフォルトの名無しさん
2011/11/27(日) 10:20:52.750745デフォルトの名無しさん
2011/11/27(日) 10:21:55.21裁判所が郵便局を経営してるの?
郵便を扱う事を、裁判所が、業務としてしているの?
0746デフォルトの名無しさん
2011/11/27(日) 10:23:54.64裁判所の建物の中に郵便局がある
裁判所が業務として郵便をやってるわけじゃない
0747デフォルトの名無しさん
2011/11/27(日) 10:24:13.69他の人の迷惑になる
自分でぐぐって調べろ
0748デフォルトの名無しさん
2011/11/27(日) 10:25:31.48警察はしばらく2chを監視してると思うぞ
おかしな事は書かない方がいい
0749デフォルトの名無しさん
2011/11/27(日) 10:29:34.36裁判所の中に郵便局があるなら、
誰でも、誰にでも、どんな内容でも、裁判所から内容証明郵便出せるぞ
0750デフォルトの名無しさん
2011/11/27(日) 11:02:40.83で、未回答の宿題どれだっけ?
0751デフォルトの名無しさん
2011/11/27(日) 11:08:44.65無視すると自動的に原告の勝訴が確定して原告のいいなりにならなければならないのにな
強制執行されるぞ
0752デフォルトの名無しさん
2011/11/27(日) 11:10:59.57気に入らなければNG設定出来る分、コテの方が良心的とも言える。
0753デフォルトの名無しさん
2011/11/27(日) 11:13:45.85未解答は>>700と>>711かな?
レスついてないの見ただけだから他にもあるかも知れんが
0754デフォルトの名無しさん
2011/11/27(日) 11:59:46.16>>700は俺が画像処理わからんからパスするとして、
>>711はリスト構造ってどのリスト構造だよって感じでパスだな
0755デフォルトの名無しさん
2011/11/27(日) 12:04:31.57民事と刑事をごっちゃにしてるレベルで法律を語ると恥をかくだけ
0756デフォルトの名無しさん
2011/11/27(日) 12:09:25.57ずっと民事の話だけどなに必死になってんの?
0757711 ◆oYsh4lFZVQ
2011/11/27(日) 12:10:53.38すみません、自分自身リスト構造というものが良く分かっていないので変な書き方になってしまったかもしれないです。
123456789という数値を1、2345、6789というように配列に格納し、その後加算が出来るプログラムを考えています。
後付説明になってしまい申し訳ありません…
0758デフォルトの名無しさん
2011/11/27(日) 12:18:04.52>Embarcaderoに報告しておこうかねえ
何という犯罪なんだろう?
0759デフォルトの名無しさん
2011/11/27(日) 12:25:38.55終了することができます。(a) 使用権に関して、お客様が以下に定める使用権の料金を
支払わず、支払期限の最後の日から 30 日間を過ぎても滞納し続けている場合。
(b) 支払不能の申立てがお客様によって、もしくはお客様に対してなされて 60 日間
停止されなかった場合、お客様の業務のいずれかの部分に対して破産管財人が
任命された場合、または債権者のために財産が譲渡された場合。(c) お客様が
本契約に対する重大な違反をし、かかる違反についてライセンサから書面で通知された後
30 日の間に当該違反を是正しなかった場合。本契約の終了は、次のいずれにも影響を
及ぼさないものとします。(i)終了しておらず、そのためその条件により効力が存続している
使用権によるいずれかの当事者の義務。(ii)本契約に定める表明および保証の存続。
使用権の終了後 60 日以内に、お客様は、使用権が終了した製品、関連文書および
そのコピーをライセンサに返却するものとします。お客様はライセンサに対して、本製品が
インストールされたすべてのコンピュータから本製品のすべてのコピーが削除されたこと、
および、返却しなかったコピーがすべて破棄されたことを、ただちに書面で通知するものとします。
あれれ、アンインストールしないさとちゃんと書いてあるよ?
0760デフォルトの名無しさん
2011/11/27(日) 12:30:42.080761デフォルトの名無しさん
2011/11/27(日) 12:34:24.900762デフォルトの名無しさん
2011/11/27(日) 12:37:56.33いやそうじゃないんだけど、「当たり前の法律を順守する」という事も出来ない馬鹿が
若干一名いるようでこれだけ荒れてるかと
0763デフォルトの名無しさん
2011/11/27(日) 12:40:17.45通報するなら黙ってすればいいだけだし
0764デフォルトの名無しさん
2011/11/27(日) 12:40:52.35くわしく
0765デフォルトの名無しさん
2011/11/27(日) 12:49:05.75http://edn.embarcadero.com/article/41526
21. 準拠法。 本契約は、法の抵触に関する原則を問わず、カリフォルニア州法に準拠し、
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
それに従って解釈されるものとします。国際物品売買契約に関する国連条約の条項は
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
適用されないものとします。
22. 評価使用権。 ライセンサは、本第 22 条の条項に従ってお客様がテストおよび評価
しようとしている専売権付きソフトウェアおよび文書(以下「ソフトウェア」)の所有者および
供給者です。ライセンサの書面による許可がない場合は 14 日を超えない期間(以下
「評価期間」)の間、お客様自身による内部使用の評価(以下「評価」)目的でのみ
ソフトウェアが提供され、お客様は本契約書によって、かかる評価のためにソフトウェアを
操作および使用する、譲渡不能で非独占的な限定的権利を付与されます。評価期間は、
お客様がソフトウェアをダウンロードまたは開封した日に開始します。評価期間が終了すると、
~~~~~~~~~~~~~~~~~~~~~~~~
お客様は使用を中止し、ソフトウェアを元の状態で Embarcadero に返却するものとします。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0766デフォルトの名無しさん
2011/11/27(日) 12:49:13.74びコンピュータ メモリの上の、あらゆる形式(部分的または完全)のソフトウェアのコピーに適用
されます。お客様は、ソフトウェアのリバースエンジニアリング、逆アセンブル、改変、翻訳または
逆コンパイルを行ったり行わせたりしないことに同意するものとします。お客様は、ソフトウェアを
コピーしたり、派生ソフトウェアを作成または開発してはなりません。お客様は、本第 22 条の
~~~~~~~~~~~~~~~~~~~~~~~
もとで実施したソフトウェアの評価テストの結果またはその他の実行結果を、そのたびに書面に
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
よるライセンサの事前の同意を得ないまま、第三者に公開してはなりません。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0767デフォルトの名無しさん
2011/11/27(日) 12:54:41.500768デフォルトの名無しさん
2011/11/27(日) 12:57:01.59契約不履行による民事訴訟
0769デフォルトの名無しさん
2011/11/27(日) 13:00:09.740770デフォルトの名無しさん
2011/11/27(日) 13:01:26.79とやかく首を突っ込む問題ではない
ただ明らかに契約違反の使い方だという書き込みを見つけたら通報は
しても意味はあると思う
0771デフォルトの名無しさん
2011/11/27(日) 13:05:31.14割れ厨理論展開する?
0772デフォルトの名無しさん
2011/11/27(日) 13:07:24.21>ふむ。確かに「C++Builder XE2 Architect - 30 day trial」というのが正確な呼び方ですね。
>でも 30日試用可なんですけど。あと IDE とかは起動しませんが、bcc32 6.31 は今でも使えますけれども?
>それも契約違反なんですかね?
14日間なんですけど
それに今でも使ってるって自分で言っちゃってるしアイタタタ
0773デフォルトの名無しさん
2011/11/27(日) 13:08:28.67>しても意味はあると思う
これは同意するが、明らかに契約違反の使い方だと断定する為には、
当人を特定した上で、その証拠がいるよ
0774デフォルトの名無しさん
2011/11/27(日) 13:10:33.66http://edn.embarcadero.com/article/41522
では
登録が完了していない製品を起動すると、登録ダイアログ ボックスが表示されます。
14 日の猶予期間が経過したら、製品を Embarcadero Technologies に登録する
必要があります。登録が完了していないと、製品はシャットダウンし、動作が停止し
ます。製品を登録するには、次の項目が必要です。
と書いてあるしどっちが正しいんだろう?
俺試用せずに買ったから分からないんだよ
0775デフォルトの名無しさん
2011/11/27(日) 13:11:38.42それもコンパイラメーカーの仕事でしょ
向こうが本気になれば警察でもFBIでも動かしてすぐ割り出せるから心配すんな
逆に「この程度の些細な事なら放置」となればそのままだろうし
0776デフォルトの名無しさん
2011/11/27(日) 13:15:37.520777デフォルトの名無しさん
2011/11/27(日) 13:18:43.76コテを外したQの相手をしていると俺も立派な荒らしだ
0778デフォルトの名無しさん
2011/11/27(日) 13:36:40.200779デフォルトの名無しさん
2011/11/27(日) 13:42:42.350780デフォルトの名無しさん
2011/11/27(日) 13:51:49.140781デフォルトの名無しさん
2011/11/27(日) 13:53:04.81どいつもこいつも釣られ杉だろ。
0782デフォルトの名無しさん
2011/11/27(日) 13:59:12.06‖スレ | ∨
‖タイ ∧_∧ .ヘ∧
‖ \ ( ・∀・) (゚A●)
|| ̄ ̄⊂ ) ( と)
凵 し`J U U
0783デフォルトの名無しさん
2011/11/27(日) 14:00:07.770784デフォルトの名無しさん
2011/11/27(日) 14:02:45.94http://ideone.com/AG1AH
0785711 ◆oYsh4lFZVQ
2011/11/27(日) 14:40:11.37コンパイル、起動、結果全て完璧でした
これから全て読んで勉強させて貰います。どうもありがとうございました!
>>665 の回答 >>723 を作るのに疲れてうとうとしていたら、なんだか盛況ですねえ。
そんなに試用版を無断使用されるのが嫌ならメーカーが期限を超えての起動不可となるようにつくりこめればいいだけのことなのにね。
bcc32 -v -vG は便利なのでこれからも使わせていただきます。
それとも >>682 は >>683-685 と袋叩きにあって頭が沸いてしまったか?
0787デフォルトの名無しさん
2011/11/27(日) 16:59:58.66上達したでしょう?
0789デフォルトの名無しさん
2011/11/27(日) 17:38:50.29ただ煽ってるだけだろ
誰も彼も小学生の口げんかレベルだな
0790デフォルトの名無しさん
2011/11/27(日) 17:56:03.51上達したよw
0791デフォルトの名無しさん
2011/11/27(日) 18:30:59.890792デフォルトの名無しさん
2011/11/27(日) 18:35:44.44檻に収監すべきレベル
0793デフォルトの名無しさん
2011/11/27(日) 18:42:07.450794デフォルトの名無しさん
2011/11/27(日) 18:48:24.240795デフォルトの名無しさん
2011/11/27(日) 18:50:10.620796デフォルトの名無しさん
2011/11/27(日) 18:56:35.19[2] 問題文(含コード&リンク):
置換インデックスを作成するプログラムを作成しなさい。
例)
入力
The quick brown fox
jumped over the fence
出力
The quick brown fox
jumped over the fence
The quick brown fox
jumped over the fence
jumped over the fence
The quick brown fox
jumped over the fence
The quick brown fox
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: g++ 4.5.3
[3.3] 言語: C++
[4] 期限: 2011年12月02日07:00まで
[5] その他の制限: algorithm,cctype,iostream,string,vectorヘッダを習いました。
struct,typedef,using namespace_name::nameも習いました。
classやtemplateキーワードを使ったプログラムはまだ習っていません。
ポインタもまだ習っていません。教科書はAccelerated C++です。
ブラウザからだと見づらいかもしれませんが、出力行の順に
brown fence fox jumped over quick the Theが縦に揃っています。
http://ideone.com/OeQkS
38行めから55行目の間に
ピポッド選択と行の交換をしているのはわかるのですが
この部分を文章で説明する場合どうすれば良いのでしょうか
あと53行目と54行目の カンマの意味が分からないのですが
カンマを使わないで交換をできないでしょうか
一行に=が3つもあるのがよくわからないので・・・
長文失礼しました
0798デフォルトの名無しさん
2011/11/27(日) 19:09:39.85全然分からん
0799デフォルトの名無しさん
2011/11/27(日) 19:11:39.43Accelerated C++にやり方かいてあるけど、どこがわからないの?
0800796
2011/11/27(日) 19:34:48.071語ずつローテートした文字列を作る←できる
2)ソートする←できる
3)元に戻して適当な空白を入れる←できない
すみません、出来上がった分のソースを綺麗にしてからupします。
0801デフォルトの名無しさん
2011/11/27(日) 19:50:02.37「部分ピボット選択」だから、行を交換して係数が一番大きな行で割るテクニック
係数がゼロの行があっても解ける場合が多い
また、どうして行を交換しても良いのかと聞かれたら、「連立一次方程式は行を
交換しても解は変わりません」と答えて置けば良い
53〜54行目は
t = a[i][j]; a[i][j] = a[k][j]; a[k][j] = t; // 行の交換
t = inv_a[i][j]; inv_a[i][j] = inv_a[k][j]; inv_a[k][j] = t; // 単位行列も行の交換を行う
と書き換えてください
これは、カンマ演算子を使うと要素の交換が一行で書けるために多用されるのですが
今回は二行になっているためカンマ演算子の意味が無くなっています
0802デフォルトの名無しさん
2011/11/27(日) 19:51:39.81×係数が一番大きな行で
○係数の絶対値が一番大きな行で
本当はfabs()を使えば綺麗に書けるのだが、今回は使えないので
40〜51行のように負だったら符号を反転している
0803デフォルトの名無しさん
2011/11/27(日) 20:15:47.14設問1-3なのですが、「int x, y;」と宣言されていないので、「int x, y;」と宣言されているプログラムをお願いします。
0804デフォルトの名無しさん
2011/11/27(日) 20:42:07.0338行から51行では、自分が入力した値で対角成分に0があった場合に、なにかしら
しているという処理なのでしょうか?
いまいちなにをしているのかがわからないので、プログラムに対する考えが
かけなくて困っています、、、すいません
fabsとかの代わりと書いていますが、調べてみたら絶対値を取るとかって書いて
いました、以上のことからあまり0が〜とかっっていうのは考えてないのでしょうか?
長くなってすいません、、、
トリップつけ忘れました
0806デフォルトの名無しさん
2011/11/27(日) 20:50:15.54http://ideone.com/ZeUlG
スニペット?を4語選択するルールがよく分からなかったので適当にやりました。
0807デフォルトの名無しさん
2011/11/27(日) 20:54:24.06掃き出し法を手でやる場合を考えてみるとわかり易い
もし係数がゼロの場合に出くわしたらどうなる?割れないでしょ?
だから絶対値の一番大きな行で割るように入れ替えている
これは計算誤差を小さくするという利点もある
もし係数がゼロの行が3行あると行列式がゼロとなってしまい
正則行列ではなくってしまうから、逆行列が定義出来なくなため
23〜24行で予め調べている
まず手で何かの行列の逆行列を求めて見るとすぐに理解出来る
http://ideone.com/uvcXB
Accelerated C++ の章末問題 5-1 (p98) ですね。当時作ったものをあげておきます。
0809796
2011/11/27(日) 21:36:16.57ありがとうございます。読ませていただいて勉強します。
自分のコードを綺麗にしようとして、動かなくなっていますので、自分の分はupできなさそうです(^^;;
名無しにもどります。
自分がいうのもなんですが、コードをアップすると得られる利益は大きいですよ。糞よばわりされて終わることもあるけれども、まあそれはそれ。
0811デフォルトの名無しさん
2011/11/27(日) 22:49:48.630812デフォルトの名無しさん
2011/11/27(日) 23:12:16.050813デフォルトの名無しさん
2011/11/27(日) 23:15:16.940814デフォルトの名無しさん
2011/11/27(日) 23:21:51.34それは突っ込み側の問題では?
0815デフォルトの名無しさん
2011/11/27(日) 23:24:05.850816デフォルトの名無しさん
2011/11/27(日) 23:28:30.54では突っ込み対象のソースコードと突っ込みの内容を具体的に
0817デフォルトの名無しさん
2011/11/27(日) 23:33:17.720818デフォルトの名無しさん
2011/11/27(日) 23:35:42.20見当違いもいい所だな
0819デフォルトの名無しさん
2011/11/27(日) 23:36:27.93その手には二度と乗りませんよ
0820デフォルトの名無しさん
2011/11/27(日) 23:55:39.08ttp://ideone.com/8T0t1
冗長だけど。
0821デフォルトの名無しさん
2011/11/28(月) 00:03:08.66具体的な話ができないのでは寝言をほざいているのと見分けがつかない
>>819
一度として突っ込めないのに「二度」?
0822デフォルトの名無しさん
2011/11/28(月) 00:50:57.86[2] 問題文(含コード&リンク):(1,2,3) (1,2,4)...といった数列が続くのlist.txtを読み込み、
左の数字が同じかつ真ん中の数字も同じとき、右の数字が大きいものを削除し、link2.txtに書きこむプログラムを作りなさい。
(この場合、左が1と1かつ真ん中が2と2で右が3と4なので4の方が大きいので(1,2,4)を削除する)
[3] 環境
[3.1] OS: (Windows/Linux/等々)Linux debian
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか) C言語
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)11月30日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)特にありません。お願いします。
0823デフォルトの名無しさん
2011/11/28(月) 00:50:58.970824デフォルトの名無しさん
2011/11/28(月) 01:04:33.10[2] 問題文(含コード&リンク):
初速v、仰角θを入力。着弾距離、着弾するまでの時間を求める。
<問題の意味>
vx=vcos(θ),vy=-gt+vsin(θ)
x=vtcos(θ),y=-gt^2/2+vtsin(θ)+y0
y=0,y0=0のとすると、
着弾するまでの時間は gt^2/2=vtsin(θ) > t=2*vsin(θ)/g
着弾距離はtがわかれば x=vtcos(θ)で求まる
[3] 環境
[3.1] OS: (Windows/Linux/等々) :WinXP
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) :VC2008
[3.3] 言語: (C/C++/どちらでも可 のいずれか) :C
[4] 期限: 28日 AM6時まで
[5] その他の制限:構造体やポインタは習ってないので使用しないで貰いたいです
よろしくお願いします。math関数の存在は習いました。
0825デフォルトの名無しさん
2011/11/28(月) 01:32:31.39>[2] 問題文(含コード&リンク):(1,2,3) (1,2,4)...といった数列が続くのlist.txtを読み込み、
入力ファイルは改行区切り?
あと、(1,2,3) (3,3,3)(1,2,4)...のように、間に別の数値がある場合でも、(1,2,4)は削除?
0826デフォルトの名無しさん
2011/11/28(月) 01:38:13.86説明不足ですいません。
改行区切りです。
間に別の数値があっても(1,2,4)は削除です。
おねがいします。
0827デフォルトの名無しさん
2011/11/28(月) 01:43:30.81> 右の数字が大きいものを削除し、
list.txtから削除するってこと?
> link2.txtに書きこむ
削除した数列をlink2.txtに書き込むってこと?
0828デフォルトの名無しさん
2011/11/28(月) 01:44:13.28http://ideone.com/Cf5Pv
0829デフォルトの名無しさん
2011/11/28(月) 01:45:33.42またまた説明不足ですみません。
list.txtには手を加えずに、list.txtから削除した数列を除いたものをlist2.txtに書きこむようです。
0830デフォルトの名無しさん
2011/11/28(月) 01:54:47.87>間に別の数値があっても(1,2,4)は削除です。
in (1,2,4)(3,3,3)(1,2,3)
out (3,3,3)(1,2,3)
でok?
0831デフォルトの名無しさん
2011/11/28(月) 02:03:02.68はい!それでokです。
0832デフォルトの名無しさん
2011/11/28(月) 02:29:35.44入力データ行数は、適当に1000件としてみた。
http://ideone.com/v50wQ
0833832
2011/11/28(月) 02:38:20.98X for (j = 0 + 1; j < n; j++) {
O for (j = 0; j < n; j++) {
として下さい。
0834デフォルトの名無しさん
2011/11/28(月) 02:40:13.39感謝です
0835デフォルトの名無しさん
2011/11/28(月) 02:56:59.733つの数字全てが同じだった時の挙動がわからなかったので、その場合先出の数列を削除するようにしてあります。
http://ideone.com/OX74m
0836デフォルトの名無しさん
2011/11/28(月) 03:36:37.320837デフォルトの名無しさん
2011/11/28(月) 03:56:03.81しかしその屁理屈もここの住人を超うんざりさせる事にしか役に立ってない
一生嫌われ者で終わるだろうね
0838デフォルトの名無しさん
2011/11/28(月) 04:10:04.79左の数字と真ん中の数字が一致したグループができたら、
右が一番小さい数字のものだけ残すということかな?
0839デフォルトの名無しさん
2011/11/28(月) 05:47:23.44速攻で作ったからあってるかわからん
#include <stdio.h>
#include <math.h>
#define g 9.80665
#define PI 3.14159265358979323846
#define RAD(r) ((r)/(180*PI))
int main()
{
double v,kakudo;
double vx,vy,t,h,x;
puts("初速度を入力してください");
scanf("%lf",&v);
puts("角度を入力してください");
scanf("%lf",&kakudo);
vx = v*cos(RAD(kakudo));
vy = v*sin(RAD(kakudo));
h = (vy*vy)/(2*g);
t = (sqrt(h/(2*g)))*2;
x = t*vx;
printf("着弾までの時間 = %lf, 着弾までの距離 = %lf(m)\n",t,x);
return 0;
}
0840デフォルトの名無しさん
2011/11/28(月) 05:54:02.540842デフォルトの名無しさん
2011/11/28(月) 06:20:00.520843デフォルトの名無しさん
2011/11/28(月) 07:19:10.502011年11月27日 12時29分
[シネマトゥデイ映画ニュース] 27日、アニメ「けいおん!」と大阪府・大阪市の
「ローソン ホテル京阪ユニバーサルタワー店」のスペシャル・コラボレーションが開始され、
店舗外観はもちろん、店内BGMにいたるまで「けいおん!」一色となった全国初のローソンが誕生した。
これまでにも「エヴァンゲリオン」や藤子・F・不二雄作品とコラボレーションしてきたローソンならではの
今回の試みは、12月29日まで行われる予定だ。
今回、「けいおん!」とコラボを果たしたのは、ユニバーサル・スタジオ・ジャパン(USJ)の近くにある
「ローソン ホテル京阪ユニバーサルタワー店」。これまでにもローソンは「けいおん!」関連の
キャンペーンを行っており、今月22日には「けいおん!フェア」第3弾を開始したばかり。
今回のコラボは、そういったことに加え、27日にUSJにて「『映画 けいおん!』公開直前記念イベント」が
行われること、さらには同店店長が大の「けいおん!」ファンということで実現した。
外観の装飾なども含め、ここまで大規模に「けいおん!」とコラボしたローソン店舗は全国で初めてだという。
当日は、0時ちょうどから外観の装飾が開始された。劇中バンド「放課後ティータイム」の
メンバー5人のシールがウインドウに貼り付けられるだけでなく、店内BGMは「けいおん!」関連の楽曲、
店内には「けいおん!」特設コーナー、店舗スタッフも「けいおん!」特製ジャンパーを着用しての接客……
とまさに「けいおん!」尽くし。背中に「K-ON!」の文字が入った赤いジャンパーは今回のためだけに
作られたといい、ここでしか見ることのできない貴重なものとなっている。
続きはソースで
http://www.cinematoday.jp/page/N0037354
「けいおん!」とコラボした「ローソン ホテル京阪ユニバーサルタワー店」
http://s.cinematoday.jp/res/N0/03/73/v1322344578/N0037354_l.jpg
『映画 けいおん!』場面写真
http://s.cinematoday.jp/res/T0/00/99/v1319767920/T0009944.jpg
http://s.cinematoday.jp/res/T0/00/99/v1319767896/T0009944a.jpg
0844デフォルトの名無しさん
2011/11/28(月) 07:52:07.43素数の話なら勘弁。確かに今でもほとんど理解していない。でも、正直なところ理解したいとも思っていない。
それ以外ならなんだろう?何の話かちょこっとだけ教えてほしい。
頭は悪いほうだから理解できないことは多々あるだろうと思う。
それでもわからないと自覚しているのなら、「わからない」と明言していることであろう。
無論、わかっていないことすら自覚していないこともあるだろう。
>>837
うんざりするのは勝手だが、この程度で音をあげるようではまともなお仕事すらできないのでは?
それとも私の職場はそろいもそろって理屈こきの巣窟なのだろうか?まあ窓際煉獄部署といえなくもないのではあるが。
0845デフォルトの名無しさん
2011/11/28(月) 08:03:40.20>#define RAD(r) ((r)/(180*PI))
#define RAD(r) ((r) * PI / 180.0)
>printf("着弾までの時間 = %lf, 着弾までの距離 = %lf(m)\n",t,x);
l はいらない。%f でよい。
0846デフォルトの名無しさん
2011/11/28(月) 08:33:52.42URLよろしく>素数の話
0847デフォルトの名無しさん
2011/11/28(月) 08:54:50.830848デフォルトの名無しさん
2011/11/28(月) 12:24:23.77ありがとうございました!
助かりました。
0849デフォルトの名無しさん
2011/11/28(月) 12:25:10.91>3つの数字全てが同じだった時の挙動がわからなかったので、その場合先出の数列を削除するようにしてあります。
その仕様がありがたいです。
本当にありがとうございました。
0850デフォルトの名無しさん
2011/11/28(月) 12:43:48.65その素数の話のURL貼ってもらえますか
0851デフォルトの名無しさん
2011/11/28(月) 12:49:12.45【モリタポ有償】C/C++の問題を片付けます(2)
http://hibari.2ch.net/tech/kako/1295/12952/1295273862.html
534 名前: ◆QZaw55cn4c [[email protected]] 投稿日:2011/04/25(月) 21:03:10.67
>>516
http://codepad.org/XNlfz5lK
http://hibari.2ch.net/test/read.cgi/tech/1301553333/439 の指摘を受けて細かいところを変更しました。
>素数の調べ方がクソ
エラトステネスのふるいは必要なメモリ容量が半端でないので、「クソ」かもしれませんが、素朴な方法にしました。10万までなら、(私の環境では)十分な速度が出ています。
しかし、割り算を二回実行してしまうのはなんとかしたいと思いつつも改良できないでいます。
>ループにも無駄が多すぎ
ちょっとだけましになったと思います。
592 名前:581 ◆QZaw55cn4c [PhenomII x6 が放置状態‥‥] 投稿日:2011/04/27(水) 05:53:22.39
>>591
>for(i = 2, max_len = 0; i * max_len < N; i++) {
を説明していただけませんでしょうか。
ベルトランの仮説(チェビシェフにより証明)を利用していると思われるんですが、
i から 2i の間に素数があっても、2i から 3i の間に素数があるかどうかはわかりません。
もっともここを
for (i = 2, i < N; i++)
にしてみたところで、
http://codepad.org/8ArcOdU9
爆速なんですけれども。(それか、codepad を速度判定に用いるのは精度がよくないですね。)
それにしてもエラトステネスのふるいの威力は見損じていました。sierve[i] で素数判定できるのには太刀打ちできません。
削除申請を出しました。
http://qb5.2ch.net/test/read.cgi/saku/1098189517/337
0852デフォルトの名無しさん
2011/11/28(月) 12:50:06.13>>599
最初の素数 p があったとして、その次が 2p までにあることはベルトランの仮説により証明されているようです。まあ実際は、素数はもっと詰まっていますが。
p と len_max の二つの情報にベルトランの仮説を用いて探索範囲を狭めるのならば、p * (2^(len_max - 1) < i でしょうね。(^ はここではべき乗)
素数の間隔に関する単純な定理が他にあるかどうかは、調べてみましたがよくわかりませんでした。素数分布に関するものならいくつかありますが。
617 名前: ◆QZaw55cn4c [sage] 投稿日:2011/04/27(水) 08:08:33.63
>>610
i の探索範囲が狭まると、狭まった分だけループの回数が減りますが、本当に減らしてもいいのでしょうか、という問題です。
たしかに実質 >>602 で len_max 個分の隣り合う素数を足しこんで N 以上であれば打ち切っていますが、これは実際にスキャンして調べているわけでその分計算量を要しています。
でも、だからといって、i * len_max が N を超えたら実際に調べなくともいい、とは限らないと考えています。
>>592 で影響の度合いの確認はとっています。
0853デフォルトの名無しさん
2011/11/28(月) 13:17:03.730854デフォルトの名無しさん
2011/11/28(月) 13:29:32.230855デフォルトの名無しさん
2011/11/28(月) 13:36:03.43618 返信: ◆QZaw55cn4c [sage] 投稿日:2011/04/27(水) 08:13:28.09
>>599
>最初の数字より大きいものしか続かないわけだから、i * max_len < N よりも少なくていいはず。
なるほど。やっと理解しました。
これでお開きとします。いろいろと説明ありがとうございました。
0856デフォルトの名無しさん
2011/11/28(月) 13:36:44.63これが理解できない人がいるんだぜ
0857デフォルトの名無しさん
2011/11/28(月) 13:41:01.960858デフォルトの名無しさん
2011/11/28(月) 13:53:24.920859デフォルトの名無しさん
2011/11/28(月) 14:47:15.45641 名前:デフォルトの名無しさん[] 投稿日:2010/05/13(木) 16:05:13
このスレの住民の方には楽勝かもしれませんがお願いします
場合の数を計算するときに、いわゆる「nCr」というものを使うことがある。これは、順番を特に決めない場合、n個のものからr個のものを取り出す場合をいい、
7C5 = 7! / (7-5)!5!
である。nCrであれば
nCr = n! / (n-r)!r! (但し、0≦r≦n)
この数を計算したい。
1. nとrを入力させる。
2. n!を計算させる
3. (n-r)!を計算させる
4. r!を計算させる
5. (2)/(3)/(4)を計算する
しかしn!と(n-r)!がかなりの部分まで重複することを利用すれば、かなり計算の手間を省くことができる
1から5の手順まで守ったプログラムと手間を省いたプログラムをそれぞれ作成しなさい
660 名前: ◆QZaw55cn4c [sage] 投稿日:2010/05/14(金) 00:11:21
>>641
当方の環境は Windows/cygwin、処理系は gcc 3.4.4 です。
http://ideone.com/zrB3A
f1() は定義どおり、f2() は再帰関数(漸化式)を用いました。
661 名前:デフォルトの名無しさん[sage] 投稿日:2010/05/14(金) 00:17:44
題意を把握していないw
662 名前:デフォルトの名無しさん[sage] 投稿日:2010/05/14(金) 00:31:13
>>661
そですかね。掛け算を足し算に変えたんですけど、これってやっぱり「計算の手間を省いた」ことにはならないんですかね。
0860デフォルトの名無しさん
2011/11/28(月) 14:55:40.17[2] 問題文(含コード&リンク):
文字列st が回文(前から読んでも後ろから読んでも
同じ)であれば1 を,そうでなければ0 を返す関数
int isPalindrome(const char st[])
を作成せよ.以下の実行例のように,関数の動作を確認
できるmain 関数も作成すること.
<実行例>
./5-4
文字列を入力してください:AKASAKA
その文字列は回文です。
% ./5-4
文字列を入力してください:tomato
その文字列は回文ではありません。
[3] 環境
[3.1] OS: (Windows/Linux/等々) :linux
[3.2] コンパイラ名とバージョン:(gcc 3.4
[3.3] 言語:C
[4] 期限: 29日 AM6時まで
[5] その他の制限:構造体やポインタは習ってないので使用しないで貰いたいです
よろしくお願いします。math関数の存在は習いました。
0861デフォルトの名無しさん
2011/11/28(月) 15:06:21.32#include <stdio.h>
int isPalindrome(const char st[])
{
char *p, *q;
for(p = st; *p; p++);
for(q = st, p--; q < p; q++, p--) if(*p != *q) return 0;
return 1;
}
int main(void)
{
char st[256];
printf("文字列を入力してください:");
scanf("%s", st);
printf("その文字列は回文で%s。\n", isPalindrome(st) ? "す" : "はありません");
return 0;
}
0862デフォルトの名無しさん
2011/11/28(月) 15:17:20.10アホ過ぎるw
0863デフォルトの名無しさん
2011/11/28(月) 16:12:11.13お礼が遅くなりすみませんでした。
課題を手伝っていただき、ありがとうございました。
0864デフォルトの名無しさん
2011/11/28(月) 16:35:06.57[2] 問題文(含コード&リンク):
http://codepad.org/UPx3cq6J
例えば、学籍番号として 181 など 存在しない学生の番号を入力して実行すると、
エラーを生じてプログラムが停止してしまうリンク先のコードは不完全である。
そこで、存在しない学生の番号を入力した場合には、
「その番号の学生は、いません。」のエラーメッセージを表示するように、プログラムを改良せよ。
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:VC2008
[3.3] 言語:C
[4] 期限:12/3まで
[5] その他の制限:リンク先のコードを元に改良してください
0865832
2011/11/28(月) 16:36:43.38http://ideone.com/ITdbw
0866デフォルトの名無しさん
2011/11/28(月) 16:48:46.87http://ideone.com/4wI68
0867デフォルトの名無しさん
2011/11/28(月) 19:20:23.97Objective-C
このマイナーだったプログラミング言語もようやく市民権を得た観があります。
今後Objective-Cを用いた課題も出ることでしょう。
このスレもObjective-Cに対応しなければならないかもしれません。
大丈夫でしょうか?>>QZさん
0868デフォルトの名無しさん
2011/11/28(月) 19:32:48.80[2] 問題文(含コード&リンク):リンク先上部に問題文があります。
http://ideone.com/YYmfZ
[3] 環境
[3.1] OS:Linux
[3.2]コンパイラ:gcc
[3.3] 言語:C
[4] 期限: 2011年12月2日0:00まで
[5] その他の制限: 再帰法を使うこと、途中までプログラミングを行ったのですが
再帰法が今一つ分からずデバッグできません。誤り箇所を訂正する形でお願いします。
0869デフォルトの名無しさん
2011/11/28(月) 19:32:58.28専用スレあるから。
0870デフォルトの名無しさん
2011/11/28(月) 19:34:51.26int Max(i,j,Max)
このMaxはポインタでないとだめなんじゃない?
最大値を返却するように変えてもいいと思うけど。
0871デフォルトの名無しさん
2011/11/28(月) 19:36:02.110872デフォルトの名無しさん
2011/11/28(月) 20:07:50.22ありがとうございます。ポインタは忘れてしまったので
返却する方法でプログラミングしました。
無事に完成しました。ありがとうございました。
0873デフォルトの名無しさん
2011/11/28(月) 20:40:10.410874デフォルトの名無しさん
2011/11/28(月) 20:45:32.95うーん、今でも掛け算より足し算のほーが、楽なんじゃないかと思ってしまうんですけれども‥‥‥。
まあ、r! または (n-r)! まで計算して、その結果を取り置いておき、続きを n! まで計算する、ていうのがまっとうなんでしょうね。
0875デフォルトの名無しさん
2011/11/28(月) 20:54:08.57[2]
表面に色が塗られたサイコロが二つあります
それぞれ共に
赤が3面
青が2面
緑が1面
あります
二つのサイコロを同時に振ると色の組み合わせは
1)赤赤
2)赤青
3)赤緑
4)青青
5)青緑
6)緑緑
の6通りありますが
出やすい組み合わせの順に並び替えて出力しなさい
[3]C
[4]11/30
[5]標準ライブラリのみでコンソールに出力すること
0876デフォルトの名無しさん
2011/11/28(月) 20:58:37.94これだけ馬鹿にされても自分が正しい、間違っているのは相手の方、と決めつけて
いる辺りが本物の馬鹿だと思うね
0877デフォルトの名無しさん
2011/11/28(月) 21:00:38.64> しかしn!と(n-r)!がかなりの部分まで重複することを利用すれば、かなり計算の手間を省くことができる
この省き方をしろって言ってると思うよ。
0878よろしくお願いします
2011/11/28(月) 21:16:36.02[2] キーボードから8回、11から18までの数字を読み取り、得られた5つの数字を
大きい順に表示して改行するプログラムを書きなさい。
ただし、以下のコードの空白を埋めるようにしなさい
#include <stdio.h>
int readNumber(){
char data[32],*p;
int m;
do{p=fgets(data,32);if(p==NULL)return 11;m=atoi(data);}while((m<11)||(m>18));
return m;
}
int main(void){
int x;
この部分にコードを追加して,要求を満たすようにすること
return 0;
}
[3-1] Mac OSX(Snow leopard)
[3-2]Gcc 4.6
[3-3]C言語
[4] 12/1まで
0879878
2011/11/28(月) 21:17:46.72×得られた5つの数字を
●得られた8つの数字を
0880デフォルトの名無しさん
2011/11/28(月) 21:19:37.48いつの間にか人の手柄を自分の手柄のように横取りしてしまうのも
Qの自己愛の特徴です
0881878
2011/11/28(月) 21:22:11.64再度訂正させてください
×do{p=fgets(data,32);if(p==NULL)return 11;m=atoi(data);}while((m<11)||(m>18));
○do{p=fgets(data,32,stdin);if(p==NULL)return 11;m=atoi(data);}while((m<11)||(m>18));
他にも間違って写している部分があるかも知れませんがよろしくお願いします
0882864
2011/11/28(月) 21:22:32.09[2] 問題文(含コード&リンク):
http://codepad.org/o0fqHYTZ
例えば、学籍番号として 181 など 存在しない学生の番号を入力して実行すると、
エラーを生じてプログラムが停止してしまうリンク先のコードは不完全である。
そこで、存在しない学生の番号を入力した場合には、
「その番号の学生は、いません。」のエラーメッセージを表示するように、プログラムを改良し、
双方向リスト構造 Doubly-linked List を用いて作成せよ。
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:VC2008
[3.3] 言語:C
[4] 期限:12/3まで
[5] その他の制限:リンク先のコードを元に改良してください
0883832
2011/11/28(月) 22:48:42.43while( pointer_student && pointer_student->number != in_number )
pointer_student = pointer_student->pointerNext;
if(pointer_student)
printf("学籍番号 %d の学生の苗字は %s です。¥n", pointer_student->number, pointer_student->name );
else
printf("「その番号の学生は、いません。」¥n");
/* if( pointer_student->number == in_number ) { */
/* printf("学籍番号 %d の学生の苗字は %s です。¥n", pointer_student->number, pointer_student->name ); */
/* } else { */
/* while(1) { */
/* pointer_student = pointer_student->pointerNext; */
/* if( pointer_student->number == in_number ) { */
/* printf("学籍番号 %d の学生の苗字は %s です。¥n", pointer_student->number, pointer_student->name ); */
/* break; */
/* } */
/* } */
/* } */
0884デフォルトの名無しさん
2011/11/28(月) 22:51:02.28Line94 pointer_student = pointer_student->pointerNext; の次に以下を追加
if( ! pointer_student ) { printf( "その番号の学生は居ない\n" ); return 0; }
0885デフォルトの名無しさん
2011/11/28(月) 23:08:57.39その、まっとうだと思ってる方法でちょっとコード書いてみて。
割と最近宣言してたように、口数少なく、コードで示す方向で。
0886832
2011/11/28(月) 23:16:33.32http://ideone.com/t0pnr
0888デフォルトの名無しさん
2011/11/28(月) 23:43:27.35気持ちは判るけどそこまで書き直しちゃ駄目だろ
次に関数を用いて書き直せって問題が出るかも知れないし
0890デフォルトの名無しさん
2011/11/29(火) 00:06:36.25うーん。
中学か高校かもう忘れちゃったけど、
たとえば、 5! / (5 - 2)! を計算する時に
(5 * 4 * 3 * 2 * 1) / (3 * 2 * 1) とかいて、 3 * 2 * 1 は分母、分子ともにあるから、取り払って
(5 * 4) にする、みたいな記憶はない?
0891デフォルトの名無しさん
2011/11/29(火) 00:07:44.14問題
一つの行に、n個の “ “(空白)に続いてm個の “*”を順番に出力する関数 void putzs(int n, int m)を作成せよ。
更にこれを用いて no段のピラミッドを描くプログラムを作成せよ。
no=3の場合
- *
- ***
- *****
よろしくお願いします。
0892デフォルトの名無しさん
2011/11/29(火) 00:08:04.78この、重複って言うのは、>>890 でいうところの、(3 * 2 * 1)ね。
その工夫を求められてるんだよ。
0893デフォルトの名無しさん
2011/11/29(火) 00:11:52.79>>2
あと何がどううまくいかないのか書けよ
0894デフォルトの名無しさん
2011/11/29(火) 00:15:41.33その簡単な日本語が理解できないのが頭悪いと言われる理由
0895デフォルトの名無しさん
2011/11/29(火) 00:19:58.95#include <stdio.h>
void putzs(int n, int m)
{
while(n--) putchar(' ');
while(m--) putchar('*');
}
int main(void)
{
int i, no;
scanf("%d", &no);
for(i = 1; i <= no; i++) {
putzs(no - i, i * 2 - 1);
putchar('\n');
}
return 0;
}
0896デフォルトの名無しさん
2011/11/29(火) 00:20:46.72宿題貼った生徒が見て理解できればそれでいいし。
0897デフォルトの名無しさん
2011/11/29(火) 00:27:11.20http://codepad.org/hL1rJKQk
たぶん合ってると思うけど・・・
自分の頭の悪さ加減が嫌になってくる・・・
0898デフォルトの名無しさん
2011/11/29(火) 00:36:08.88{
int i, ret = 1;
if(n < r * 2) r = n - r;
for(i = 1; i <= r; i++, n--) {
ret *= n;
ret /= i;
}
return ret;
}
それはすでにしている。プログラム中の f(), g(), h() を使って表現すると、
g(10, 3) = 10 * 9 * 8
f(3) = 3 * 2 * 1
10C7 = h(10, 7) = g(10, 3)/f(3) = (10 * 9 * 8) / (1 * 2 * 3)
もっとよく読んでほしい。
>>897
n - r < r のときの工夫が足りない。
途中で ret が小数点含みになる可能性はないのか?
0901デフォルトの名無しさん
2011/11/29(火) 00:43:23.26ありがとうございます。
0902デフォルトの名無しさん
2011/11/29(火) 00:45:16.51なるほど理解した。感謝。
0904デフォルトの名無しさん
2011/11/29(火) 01:00:50.400905デフォルトの名無しさん
2011/11/29(火) 01:20:55.33頭が悪い人間でも、頭が悪いなりに一生懸命いきているんだよ。たぶん。
頭悪いとか言われると傷つくんだぞ。
あんまり、頭悪い、頭悪いと言っていじめてやるなよ。
0906デフォルトの名無しさん
2011/11/29(火) 01:28:18.39http://ideone.com/xOReP
0907デフォルトの名無しさん
2011/11/29(火) 01:28:21.12http://codepad.org/HvSASYz7
0908デフォルトの名無しさん
2011/11/29(火) 01:35:39.540909デフォルトの名無しさん
2011/11/29(火) 01:47:52.250910デフォルトの名無しさん
2011/11/29(火) 01:52:04.83RB 12 通り
RG 6 通り
BB 4 通り
BG 4 通り
GG 1 通り
0911デフォルトの名無しさん
2011/11/29(火) 02:09:12.75訂正
>>875
http://codepad.org/mB8x2PKc
0912デフォルトの名無しさん
2011/11/29(火) 02:15:09.81自作自演ウザス
こいつは頭が悪いというよりは、人の話を聞く耳を全く持たないと言う方が近いな
自分のやり方を頑なに突き通し、人のアドバイスは全く受けない
だから当然新しい進歩も皆無
宿題スレでも題意はもちろん無視して結果だけ正しければそれで良しとする
バグを含んでいても前々スレの流れを見ていても分かるように自分にとって都合の悪い
指摘は全部完全無視
こいつが嫌われる理由が分かった
0913デフォルトの名無しさん
2011/11/29(火) 02:26:16.43やっつけ仕事だけど
#include <stdio.h>
int main()
{
int i,j;
int deme[7][2] = {0};
int d[] = {0,0,0,1,1,3};
char c[][3] = {"赤","青","","緑"};
char p[][5] = {"赤赤","赤青","赤緑","青青","青緑","","緑緑"};
for (i=0;i< 7; i++){deme[i][0] = i; deme[i][1] = 0;}
for (i=0;i< 6; i++){
for (j=0;j< 6; j++){
int m = d[i]+d[j]; deme[m][1]++;
printf("%s%d%s%d\n",c[d[i]],i+1,c[d[j]],j+1);
}
}
for (i=0;i< 6; i++){
for (j=i;j< 7; j++){
if(deme[i][1]<deme[j][1]) {
int t = deme[j][1]; deme[j][1] = deme[i][1]; deme[i][1] = t;
t = deme[j][0]; deme[j][0] = deme[i][0]; deme[i][0] = t;
}
}
}
for (i=0;i< 7; i++){
if (p[deme[i][0]][0] != 0) printf("%s (%2d)\n",p[deme[i][0]],deme[i][1]);
}
return 0;
}
0915デフォルトの名無しさん
2011/11/29(火) 02:33:13.69よくよんでないんだけど、20C10って117であってんの?
0916デフォルトの名無しさん
2011/11/29(火) 02:35:42.520917デフォルトの名無しさん
2011/11/29(火) 02:36:42.640918デフォルトの名無しさん
2011/11/29(火) 02:39:20.87他にも突っ込みどころはあるけど
>#define RAD(r) ((r)/(180*PI))
これはひどすぎるだろw
http://ideone.com/VPNB0
大変申し訳ないのですが、forやifのあとに
{
がないのですが、付け足しては貰えないでしょうか、、、
0921デフォルトの名無しさん
2011/11/29(火) 07:31:56.700922デフォルトの名無しさん
2011/11/29(火) 07:35:45.55自演認定ご苦労。
バグは判明した分についてはほぼ訂正を入れるようにしているのだが、抜けがあるのか?
>>902
ちょっと考えていたが、例えば、n(n-1)(n-2)(n-3) は 2, 3, 4 の各々で割り切れるからといって、2 * 3 * 4 で割り切れるかどうかの保障はない。
>>898 のループ各回の割り算の直後の ret は nC1, nC2, nC3 ... になっているのでほぼ自明だが、厳密にいえば、nCm が整数であることを証明しないかぎり >>902 は >>900 の説明になっていない。
ともあれ、>>898 はオーバーフローの心配が少ないいい方法だ。
0924デフォルトの名無しさん
2011/11/29(火) 08:00:25.580925デフォルトの名無しさん
2011/11/29(火) 08:07:24.27反例を示してくれ
あ、触ったらいけなかったか?
0926デフォルトの名無しさん
2011/11/29(火) 08:26:55.57Qって真性のアホだよな
自分の主張を通すなら間違っている事も正しい事にするのか?
朝鮮人みたいだ
0927デフォルトの名無しさん
2011/11/29(火) 08:32:49.45なんだな、Qの中では
0928デフォルトの名無しさん
2011/11/29(火) 08:35:02.52そう、その「自分が世界で一番頭が良くて偉い」という価値観こそが自己愛の
最大特徴なんだよ
傍から見ていると滑稽で仕方がないんだがなwww
0929デフォルトの名無しさん
2011/11/29(火) 11:53:50.39それは有る意味で尊敬に値するぞ、社会を知らないって事は幸せなんだw
0930デフォルトの名無しさん
2011/11/29(火) 12:24:47.68反例はないだろう。nC4 は整数であることは経験的に自明だから。それは >>923 の後半でも述べている。
>>902 の記述だけでは >>900 の説明としては足りないのではないか?と考え考えしているだけなのだが。
こういえばよかったか?
「N が 2, 3, 4, のすべてで割り切れるからといって N は 2 * 3 * 4 で割り切れるとは限らない」
nCm が整数であることはどうやって証明すればいいのだろうか?
>>926-929
なんでそういう解釈となるのか理解に苦しむ。
0932デフォルトの名無しさん
2011/11/29(火) 12:33:58.51こんなバカが偉そうな態度とってりゃ、ムカつく人間も出るわなw
0933デフォルトの名無しさん
2011/11/29(火) 12:35:29.640935デフォルトの名無しさん
2011/11/29(火) 12:41:57.220936デフォルトの名無しさん
2011/11/29(火) 12:46:12.84有難う御座います
0937デフォルトの名無しさん
2011/11/29(火) 12:46:41.070938デフォルトの名無しさん
2011/11/29(火) 13:01:41.03気付いてないだろ
Qは真性の馬鹿だから
0939デフォルトの名無しさん
2011/11/29(火) 13:03:15.44>>>926-929
>なんでそういう解釈となるのか理解に苦しむ。
そりゃQには理解出来ないだろうよ
人格障害なんだから
理解出来たら今までの厚顔無恥な発言は二度と恥ずかしすぎて出来なくなる
0940デフォルトの名無しさん
2011/11/29(火) 13:05:00.16警察に目を付けられてるかもしれんぞ
0941デフォルトの名無しさん
2011/11/29(火) 13:07:35.91高校でベクトルと行列と複素数が表裏一体であると教わっても
クラスの半数くらいの人間が「何を言っているのだ」と感じるのと一緒
マッサー先生は「プログラマは生涯数学の勉強をしないさい」と書いてたけど
算数の才能のない人はプログラマにはなれず、せいぜいコーダ止まりなんだなと
今更ながらに思うまんこ。
0942デフォルトの名無しさん
2011/11/29(火) 13:52:12.390943デフォルトの名無しさん
2011/11/29(火) 14:01:25.230944デフォルトの名無しさん
2011/11/29(火) 14:02:55.70>nCm が整数であることはどうやって証明すればいいのだろうか?
マジレスすると、証明方法はいろいろあると思うがとりあえず数学的帰納法とか。
k個の積がk!で割り切れるときにk+1個の積が(k+1)!で割り切れることを示せれば良い。
0945デフォルトの名無しさん
2011/11/29(火) 14:06:08.520946デフォルトの名無しさん
2011/11/29(火) 14:07:25.12組み合わせの「数」なんだから少数点以下が付くわけないだろ
0947デフォルトの名無しさん
2011/11/29(火) 14:09:35.59√2×√2=2なんて中学生でも知ってるけど、√2は無理数だからなあ
0948デフォルトの名無しさん
2011/11/29(火) 14:09:58.890949デフォルトの名無しさん
2011/11/29(火) 14:13:54.110950デフォルトの名無しさん
2011/11/29(火) 14:26:23.64のANo.2かな。
自力で数学的帰納法に持っていけんかった・・・orz
0951デフォルトの名無しさん
2011/11/29(火) 14:28:14.79http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1146105626
0952デフォルトの名無しさん
2011/11/29(火) 14:28:45.97こっちの方が良い
0953デフォルトの名無しさん
2011/11/29(火) 14:29:46.40>厳密にいえば、nCm が整数であることを証明しないかぎり >>902 は >>900 の説明になっていない。
馬鹿過ぎて笑える
0954デフォルトの名無しさん
2011/11/29(火) 14:30:21.940955デフォルトの名無しさん
2011/11/29(火) 14:53:13.90遅レスだが。
http://ideone.com/Ne3DF
0956デフォルトの名無しさん
2011/11/29(火) 14:57:29.37int max=0;
0957デフォルトの名無しさん
2011/11/29(火) 15:19:16.72nCrが整数か否かは、すんごく深い数学では
自明じゃなかったりするが、Qがそれとは関係無いことは自明
ま、それは兎も角、
>>875とか>>868の問題辺りはQはどう解くか見てみたい。
0958デフォルトの名無しさん
2011/11/29(火) 15:26:26.30nCrは整数の加算で表せるから整数にしかならんぜ?
0959デフォルトの名無しさん
2011/11/29(火) 15:26:52.490960デフォルトの名無しさん
2011/11/29(火) 15:27:49.88わかるとは思うけど、一応
0961デフォルトの名無しさん
2011/11/29(火) 15:34:18.68具体的に整数にならない条件教えれ
0962デフォルトの名無しさん
2011/11/29(火) 15:40:16.81ごめ。まちがえた
0963デフォルトの名無しさん
2011/11/29(火) 15:43:35.36いろいろありがとう。プログラムの意味をこれから理解してみます。
0964デフォルトの名無しさん
2011/11/29(火) 15:48:39.31あのさあ
Q自身が>>923で
>厳密にいえば、nCm が整数であることを証明しないかぎり >>902 は >>900 の説明になっていない。
と言っちゃってるわけなんだけど
あなたの目は節穴ですか?
>Qがそれとは関係無いことは自明
あなたもQと同程度、あるいはQ以上に馬鹿ですね
0965デフォルトの名無しさん
2011/11/29(火) 16:41:15.70ただ、>>957の、すんごく深い数学でどうなってるのかはわからん。
軽めのアンカー希望
0966デフォルトの名無しさん
2011/11/29(火) 16:54:47.81尊師に聞いてみるといいかも
0967デフォルトの名無しさん
2011/11/29(火) 18:45:43.42で、何処で整数じゃなくなるんだ?
int ncr(int n, int r)
{
int i,j,result;
int *c=(int *)calloc(sizeof(int),n+1);
assert(n >= r);
c[0]=1;
for(i=0;i<=n;i++)
for(j=i;j>0;j--)
c[j] += c[j-1];
result = c[r];
free(c);
return result;
}
0968デフォルトの名無しさん
2011/11/29(火) 19:20:25.780969デフォルトの名無しさん
2011/11/29(火) 19:29:03.370970デフォルトの名無しさん
2011/11/29(火) 19:32:05.93ここちゃんと使い切ってね。
C/C++の宿題片付けます 154代目
http://hibari.2ch.net/test/read.cgi/tech/1322562648/
0971デフォルトの名無しさん
2011/11/29(火) 19:43:18.540972デフォルトの名無しさん
2011/11/29(火) 19:58:43.07[2] 問題文(含コード&リンク):http://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4900
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 2011年12月1日
[5] 実装にはスタックを用いてください。
そのスタックはhttp://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=4901です。
よろしくお願いします。
0973デフォルトの名無しさん
2011/11/29(火) 20:48:40.65これは多倍長計算すればいいのか?
>式の長さや式中に現れる整数には制限を設けない。すなわち、どれだけ式の長さが長くても、またどのような整数が出現しても正しく動作するようにすること。
>>957
我流だ。許せ。http://ideone.com/qdTvv
>>952
>>874を理由にパスカルの三角形を >>859 http://ideone.com/zrB3A の f2() で使っている。
0976デフォルトの名無しさん
2011/11/29(火) 21:05:54.95ん?どこに
>まあ、r! または (n-r)! まで計算して、その結果を取り置いておき、続きを n! まで計算する、ていうのがまっとうなんでしょうね。
という事をやってんの?単なる再帰に過ぎないじゃん
アッカーマン関数でもstd::mapではない連想配列(値を参照してもキーが存在しない場合は
デフォルト値を返さない)に途中までの結果を入れると全然速度が違う
ついにボケ始めたか
http://ideone.com/zrB3A
int f2(int n, int r) {
if (r == 0 || r == n)
return 1;
return f2(n - 1, r - 1) + f2(n - 1, r);
}
これだ。気がつかなかったのか?
0979デフォルトの名無しさん
2011/11/29(火) 21:17:42.06[2] 問題文(含コード&リンク):
コマンドライン引数を用いて,以下の計算ができる簡易電卓プログラムを作成せよ.
1. 2 〜5項式までの四則演算(計算順もちゃんと考慮すること)
(出力例)C :¥Programming>dentaku 2 + 5 / 5 + 4 * 2 + 1
答えは 12
C :¥Programming>dentaku 2 * 3 + 1
答えは 7
2.()を用いた演算(かっこの中の計算を最優先する)
(出力例)C :¥Programming>dentaku ( 2 + 3 ) * 7 * ( 3 - 1 )
答えは 70
3. (sin, cos, tan)の演算
(出力例)C :¥Programming>dentaku sin(90) * 2 + 1 - 2
答えは 1
4.logの演算
(出力例)C :¥Programming>dentaku log(3) * 2 + 1
答えは 1.9542425094
5. 半角スペースを入れ忘れても演算可能
(出力例)C :¥Programming>dentaku 1-2*(3+1)-2
答えは 9
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:Borland C++ Compiler 5.5
[3.3] 言語:C言語
[4] 期限:12/3まで
[5] その他の制限:
0980デフォルトの名無しさん
2011/11/29(火) 21:25:04.44だからそれはただの再帰だと言っている
どこに途中までの値を取りおいてあるんだ
それじゃ何回も同じ計算をする事になるだろう
連想配列を使うしかない
0981デフォルトの名無しさん
2011/11/29(火) 21:28:40.25猫に小判
0982デフォルトの名無しさん
2011/11/29(火) 21:29:27.41^^;;;;
0983デフォルトの名無しさん
2011/11/29(火) 21:35:40.34アッカーマン関数のAck(4, 1)を出力してみろ
普通に再帰で組むといくら待っても答えが出ないどころかスタックオーバーフローになる
連想配列を使って初めて答えが出る
0984デフォルトの名無しさん
2011/11/29(火) 21:41:33.73そうか。>>978 のようなのでもパスカルの三角形と呼ぶものと思っていたが。書き直しておく。
http://ideone.com/fqXRs
0986デフォルトの名無しさん
2011/11/29(火) 22:53:37.30普通に再帰でやってみたら30秒ぐらいかかった挙句にスタックオーバーフローにならなかったどうしてくれる
0987デフォルトの名無しさん
2011/11/29(火) 22:54:28.18>>985に定義を食わせてもだめで、
Ack(0,n)=n+1 に加えて
Ack(1,n)=n+2,
Ack(2,n)=2 * n + 3
を追加してなんとかやな。でもこれ以上は無理や。
http://ideone.com/Jibjd
0989デフォルトの名無しさん
2011/11/29(火) 23:02:59.40んなわけないから
どうせスタックオーバーフローで途中で止まって変な値が出てきたろ
>>988
追加しないでやれって
0990デフォルトの名無しさん
2011/11/29(火) 23:03:59.10そんなことあるから、環境のせいかもしれないので、そのコードを貼ってほしい
0991デフォルトの名無しさん
2011/11/29(火) 23:04:01.24fprintf(fp1,argv[i]);
...
fprintf(fp2,"gcc dentaku2.c -o dntaku2");
...
system("dentaku2");
0992デフォルトの名無しさん
2011/11/29(火) 23:04:10.820993デフォルトの名無しさん
2011/11/29(火) 23:08:29.94>しかしn!と(n-r)!がかなりの部分まで重複することを利用すれば、かなり計算の手間を省くことができる
>1から5の手順まで守ったプログラムと手間を省いたプログラムをそれぞれ作成しなさい
これが守られてないんだけどな
しかし毎度見にくい二分探索リストを書いてくれますね
C++のsetかmapを使えば楽で短く書けるのに
何でそこまで自虐的なのか
出題がCだから毎度こういうプログラムを書いているのか
>>987
ん?アッカーマン関数の定義通り再帰で書くと止まらないよ
というかスタックオーバーフローで異常な値が出て終わる
0994デフォルトの名無しさん
2011/11/29(火) 23:10:04.96コードはやく
0995デフォルトの名無しさん
2011/11/29(火) 23:10:15.77予めスタックを多めに取っても無駄
物凄く深い呼び出しになるから
64bit環境なら1ヶ月ほど放っておけば答えが出るかもしれんけど
0996デフォルトの名無しさん
2011/11/29(火) 23:11:24.29int A(int x, int y)
{
if (x == 0) return y + 1;
if (y == 0) return A(x - 1, 1);
return A(x - 1, A(x, y - 1));
}
0997デフォルトの名無しさん
2011/11/29(火) 23:14:48.57てことは、このコードと変わらないか。
4 1が30秒くらいでおわるんだけどなぁ
0998デフォルトの名無しさん
2011/11/29(火) 23:18:39.54http://ideone.com/fzkEr
ちょっと見てみ
0999デフォルトの名無しさん
2011/11/29(火) 23:20:08.49それはスタックオーバーフローしてるといいたい?それとも終わらないといいたい?
1000デフォルトの名無しさん
2011/11/29(火) 23:20:45.5010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。