プログラマー軍団がC/C++の宿題を解決します 34代目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG史上最強のプログラマー軍団の見解は?
――【注意点】――――――――――――――――――――――
・使用する言語(C/C++)や環境(CUI/GUIなど)は必ず書きましょう。
・問題文は、ちゃんと解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式自体をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その行とエラーの詳細を書きましょう。
エラーメッセージが出た場合はそのままコピーしてください。
・後になって問題につけたしをするのはやめましょう。
解いてもらっている方に失礼になってしまいます。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
【歴代スレは>>2-10】
0002デフォルトの名無しさん
NGNG32代目: http://pc5.2ch.net/test/read.cgi/tech/1097592876/
31代目: http://pc5.2ch.net/test/read.cgi/tech/1095075678/
30代目: http://pc5.2ch.net/test/read.cgi/tech/1091954342/
29代目: http://pc5.2ch.net/test/read.cgi/tech/1090765027/
28代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
26代目: http://pc5.2ch.net/test/read.cgi/tech/1088860889/
25代目: http://pc5.2ch.net/test/read.cgi/tech/1087929711/
24代目: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
23代目: http://pc5.2ch.net/test/read.cgi/tech/1085149383/
22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
14代目: http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html
13代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
9代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
8代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
7代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
6代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
5代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
0003デフォルトの名無しさん
NGNG2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
1代目: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG・複雑なAAはスレが荒れたり問題を埋もれさせてしまう原因に
なりますので、使用を控えてください。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS:
[3.2] コンパイラ(バージョン):
[3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで/無期限 のいずれか
[5] その他の制限:
0006デフォルトの名無しさん
NGNGほい。
#include <stdio.h>
int main(void)
{
int i,j,dat,histo[11];
for (i=0;i<=10;i++)
histo[i]=0;
printf("input point\n");
while (scanf("%d",&dat)!=EOF)
histo[dat/10]++;
for(i=0;i<=10;i++) {
printf("%3d :%3d ",i*10,histo[i]);
for(j=0;j<histo[i];j++)
putchar('*');
putchar('\n');
}
return 0;
}
/*あるいは、
while(histo[i]-- > 0) putchar('*');
とか。*/
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGC言語からフローチャートを生成するソフトが
あると聞いたのですが誰かご存知の方いらっしゃいませんか?
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGすみません。
では前スレへ逝ってきますm(_ _)m
0011デフォルトの名無しさん
NGNGもう1000だから来なくていい
0012デフォルトの名無しさん
NGNGいつの間にかもう1000になってましたね。
では改めてよろしくお願いします。
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG「手続き型のプログラムって局所的にはシーケンスだけど
大域的にはツリーやグラフじゃん?
フローチャートってあんま役に立たなくね?」
って事ですか?
0015デフォルトの名無しさん
NGNG手で書いた方が良いよ。
レポートにたえられるようなフローチャートは吐かない。
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNGありました!!
どうもありがとうございました。
まだ使い方がよくわからないですが
今から頑張ってみます。
わざわざありがとうございました。
0018デフォルトの名無しさん
NGNGそうなんですか!?
それは残念ですたい…
0019デフォルトの名無しさん
NGNG環境設定したのですが、いざコマンドプロンプトに「lcc」と
入力すると、「C:\WINDOUS\SYSTEM32\AUTOEXEC.NT.システムファイルは
MS-DOS及びMicrosoft Windowsアプリケーションを実行するのに適して
いません。」と表示されてしまい、一歩も前に進めません。
解決方法について検索してみたんですが、こんな初歩のトラブルについて
説明してくれているようなページはありませんでした。
解決方法を教えてください。
宜しくお願いします。m(_ _)m
0020デフォルトの名無しさん
NGNGLSI-C使うのはやめとけ。あれは過去の遺産だ。
敢えて言うなら、ペン習字習うのに墨と硯を持ち出すようなもんだ。
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGXP使ってるんですけど、コンパイラってもともと入ってるもんなのですか?
買ったのは二年前なんですが…。
一応、「cl」を入力してやってみたりもしたんですが、
それでも動きませんでした。(ノ_−。)
もう五時間くらいやって死にそうです。
0023デフォルトの名無しさん
NGNGXPには元から入ってない。
cl.exeは.NET Framework SDKとかダウンロードすると入ってる。
0024デフォルトの名無しさん
NGNGダウンロードしてみました。あっ、正確には後者はダウンロードしてる途中です。
っていうか、なんかさっきから何回も書き込んでるのにエラーって出て
書き込めない…
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGセットアップをする際にIISを先に取得しろ、って言われたんですが、
これをどこからダウンロードしたらいいのやら。
もう、目がちかちかする。
こんなにパソコンと格闘するの初めてですわ。
すいません、IISのダウンロードの場所を知ってたら教えてください。
宜しくお願いします。
0027デフォルトの名無しさん
NGNGドトネトは使ってないから良く知らないが
学生なら時間はあるんだし自分で調べて探した方が得るものが多いと思うぞ
…そういやスレ違いだ罠
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG0032法学部生
NGNG確かに、もっと自分で調べてみたほうがためになりそうなので、
頑張ってみようと思います。なんか昨日は、わけもわからず一人で
テンパってました。どうもありがとうございました。m(__)m
もっとレベルアップしてからやってくるので、そのときまた
宜しくお願いします。では。ノシ
003333代目スレ−(778)
NGNG参考になりますた。
遅れてごめん。
0034デフォルトの名無しさん
NGNG作成しなければいけないのですが、どうしても最初の一歩で躓いてしまっています。
test.voca test.grammarを作成した後で、mkdfa.plを使うことで
自動的にtest.dfa, test.term, test.dictが作成されるはずなのですが
実行時に下記エラーが表示されます。
'/mkfa'は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。
mkdfa.plと同じディレクトリにmkfa.exeは存在しているのですが
どうしてもこのエラーが出ます。どなたかアドバイス頂ければ助かります。
宜しくお願いします〜〜(;;
0035デフォルトの名無しさん
NGNGキーボードから入力した文字列を逆順に表示するプログラムを教えてください。
C言語です。
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNGreverse(char *abc) {
int len = strlen(abc);
char *rev = new char[len+1];
for(int ii = 0; ii < len; ii++) rev[ii] = abc[len-ii];
rev[len] = 0;
printf("%s\n", rev);
delete[] rev;
}
コンパイルテストもしてないから、ミスってたらスマン。
0038デフォルトの名無しさん
NGNGたしか前スレに出てたな、それ。
0039デフォルトの名無しさん
NGNGありがとうございました。既存のプログラムでマニュアル通りに動作させて
エラーがあると思わなかったのでplファイルを見てませんでしたが、
ソースを変更したら動きました。
本当に有難うございます。
0040デフォルトの名無しさん
NGNGオメ。しかしこの程度を解決できないのはちょっと問題。
せっかくエラーが出てんだから、良く嫁と言いたい。
0041デフォルトの名無しさん
NGNGを書いてください。
1000000 だと 1,000,000 こう表示したいわけです。お願いします。
0042デフォルトの名無しさん
NGNGvoid f(int n)
{
std::locale old(std::cout.imbue(std::locale("")));
std::cout << n;
std::cout.imbue(old);
}
0043デフォルトの名無しさん
NGNGそれだと2バイト文字にならねぇべさ。
>>41
つーか、2バイト文字で出力せなあかんの?
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG学生ごと、科目ごとの平均(小数点2位まで),合計を求め
下のような表みたいに(配列)表示させるプログラム
数、国、数、物 合計 平均
A
B
C
合計
平均
全くわかりません、プログラマーの方お願いします。
0046デフォルトの名無しさん
NGNGちなみにC言語です
0047デフォルトの名無しさん
NGNGttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=264
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG#define BASE 1000
void disp(int n)
{
int d = 1;
if (n < 0) {
printf("-");
n = -n;
}
while (n / BASE >= d) { d *= BASE; }
printf("%d", n / d);
n %= d;
d /= BASE;
while (d) {
printf(",%03d", n / d);
n %= d;
d /= BASE;
}
printf("\n");
}
0051デフォルトの名無しさん
NGNG改行するって書いてあった?
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG関数ではその平均値を計算してメインに戻す。
(実引数は配列名と要素数とする)
っていう問題がとけません。数字を詰める事はできたんですけど、
関数が???
お願いします。
0054デフォルトの名無しさん
NGNG拠点を構えるソフトウェア開発会社
グリーンシステムを応援するHPです。
http://www.geocities.jp/grs_hp/
こちらのスレの住人のかたがたのようなレベルの高いかたに
ピッタリだと思いますので、是非一度ご覧下さい。
0056デフォルトの名無しさん
NGNG平均なんだから実数なんだろうと思ったのでそうした。
#include <stddef.h>
double avg(double *a, size_t n)
{
double sum = 0.0;
while (n--) sum += a[n];
return sum / n;
}
0057デフォルトの名無しさん
NGNG005856
NGNG#include <stddef.h>
double avg(double *a, size_t n)
{
size_t i = n;
double sum = 0.0;
while (i--) sum += a[i];
return sum / n;
}
0059デフォルトの名無しさん
NGNG#include <iostream>
typedef int Ta;
typedef double Tr;
static Tr calcAverage(Ta * array, unsigned num);
int main()
{
Ta array[] = {1, 3, 4, 6, 8, 10, 12,};
Tr average = calcAverage(array, sizeof(array) / sizeof(*array));
std::cout << average << std::endl;
return 0;
}
Tr calcAverage(Ta * array, unsigned num)
{
Ta sum;
for (int ic = 0; ic < num; ++ic) {
sum += array[ic];
}
return (Tr) sum / num;
}
006059
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG要素数が0の場合への対応をしてるわりには、要素数0のときでも
配列にアクセスしてるね。まあ、問題はないんだけど。
要素数0のときは素直に先頭でreturnすべきだろうか。
0063デフォルトの名無しさん
NGNGありがとうございました。
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG何故試さない
0066デフォルトの名無しさん
NGNG入れれる
0067デフォルトの名無しさん
NGNG>>58は0のときでも大丈夫みたいだが。
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNGもう一度おしえてください。
347863000050097003096
347863000100093004095
347863000150092004098
347863000200088003094
347863000250092003096
347863000300061002097
347863000350076003102
347863000400079003103
347863000450063002094
こういう数字の羅列の1桁目と2桁目のみを出力させたいです。
ちなみに数字のデータはtxtデータから読み込ませたいです。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGfgets()してからsscanf()。
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
FILE *fp;
int a;
int line = 21; // 行数
char ch[10];
if(NULL == (fp = fopen("test.txt", "rb"))) return 0;
while(fgets(ch,3,fp)){
sscanf(ch,"%d",&a);
printf("%d\n",a);
fseek(fp, line, SEEK_CUR);
}
return 0;
}
とりあえず動く
0074デフォルトの名無しさん
NGNGとりあえず考えたプログラム載せるんで訂正してください。
#include<stdio.h>
#define MAX 3000
void main(void){
char h[MAX][30];
int i,j,s;
FILE *data,*kekka;
if((data=fopen("data.txt","r"))==NULL){
printf("ファイルオープン失敗。(data.txtがないのでは?)\n");
goto END2;
}
if((kekka=fopen("kekka.txt","w"))==NULL){
printf("ファイル書き込み失敗。(kekka.txtを開いてませんか?)\n");
goto END1;
}
printf("データ数は幾つありますか?(最大3000個まで)\n");
scanf("%d",&s);
if(s>3001){
printf("データ数の上限を超えています。\n");
goto END1;
}
for(i=0;i<s+1;i++){
for(j=18;j<21;j++){
fprintf(kekka,",%c",h[i][j]);
}
}
fprintf(kekka,"\n");
END1:fclose(kekka);
END2:fclose(data);
}
0076デフォルトの名無しさん
NGNG突っ込みどころ満載だなぁ。間違いもあるし。
0077デフォルトの名無しさん
NGNG>73より酷い。つーか、少しは指摘されたことに頭使おうや。
0078デフォルトの名無しさん
NGNGせっかくだから教えてください
0079デフォルトの名無しさん
NGNGしも1桁と2桁なんですよ。あとしたから7桁、8桁、9桁、10桁のデータ
も出力したいんです。
0080デフォルトの名無しさん
NGNG008173
NGNG下からって言ってよ…
0082デフォルトの名無しさん
NGNGすみません・・・
0083デフォルトの名無しさん
NGNG008573
NGNG#include <stdio.h>
#define MAX 100
#define LINE 21
int main()
{
FILE *fp;
int a;
int keta = 4; //ketaは表示させたい桁数
int sk = LINE - keta;
char ch[MAX];
if(NULL == (fp = fopen("test.txt", "rb"))) return 0;
fseek(fp, sk, SEEK_SET);
while(fgets(ch,MAX,fp)){
sscanf(ch,"%d",&a);
printf("%d\n",a);
fseek(fp, sk, SEEK_CUR);
}
fclose(fp);
return 0;
}
とりあえず動くだけでいいですか
もうわからんす…
0086デフォルトの名無しさん
NGNG「abc-0000_IMG 〜 abc-9999_IMG を1行ずつ出力するプログラムを書け。」
例:
abc-0000_IMG
abc-0001_IMG
abc-0002_IMG
という具合に10000行をテキストに出力して保存して欲しいのです。
テキスト名は任意(適当)に付けてください。お願いします。m(_ _)m
0087デフォルトの名無しさん
NGNGあまりレベルの低い事を聞いちゃいかんよ
0088デフォルトの名無しさん
NGNGabc-0000_IMG
abc-0001_IMG
...
abc-000f_IMG
abc_0010_IMG
...
abc_9999_IMG
ですね。
0089デフォルトの名無しさん
NGNGすいません。レベル低いです;
>>88
10進数でお願いします。
0090デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void) {
FILE *fp = fopen("hoge.txt", "wt");
if (!fp) return 3;
fputs("abc-0000_IMG\n", fp);
fputs("abc-0001_IMG\n", fp);
fputs("abc-0002_IMG\n", fp);
:
fputs("abc-9999_IMG\n", fp);
return 0;
}
0091デフォルトの名無しさん
NGNGint main(void) {
FILE *fp = fopen("hoge.txt", "wt");
int i;
if (!fp) return 3; /* error */
for (i = 0; i < 10000; i++) {
fprintf(fp, "abc-%04d_IMG\n", i);
}
fclose(fp);
return 0;
}
0094デフォルトの名無しさん
NGNG仕様がよくわからんが、
・数字列は、必ず21桁
・出力するのは、18〜21桁きめうち
でいいの?
使い方は、コマンドプロンプトで、
xxx.exe <入力ファイル名 >出力ファイル名
#include<stdio.h>
void main()
{
char s[30];
while(gets(s) != 0){
for(int i = 18; i < 21; i++){
printf("%c,", s[i]);
}
}
printf("\n");
}
0095デフォルトの名無しさん
NGNG下2桁と下7~10桁を出力するかも
#include <stdio.h>
#define N 23
int main(int argc, char* argv[])
{
FILE *fp;
char str[N];
int a,b,t;
fp = fopen(argv[1], "r");
while (fgets(str, N, fp)) {
sscanf(str, "%11d%4d%4d%2d",&t,&a,&t,&b);
printf("%04d\t%02d\n",a,b);
}
fclose(fp);
return 0;
}
エラーチェックはシラネ
0096デフォルトの名無しさん
NGNG「マージソートを作成する」って何だよ。
merge_sort(a, a + sizeof(a) / sizeof(a[0]));でdoubleの配列aをマージソート。
newとかdeleteとか使ってるから、もしCがよければ自分で書き換えろ。
そのくらい自分でやってもいいだろ。
void merge_sort(double* first, double* last)
{
if (first == last) return;
if (first == last - 1) return;
double* mid = first + (last - first) / 2;
merge_sort(first, mid);
merge_sort(mid, last);
int v1_n = mid - first, v2_n = last - mid;
double *v1 = new double[v1_n], *v2 = new double[v2_n];
for (int i = 0; i < v1_n; ++i) *(v1 + i) = *(first + i);
for (int i = 0; i < v2_n; ++i) *(v2 + i) = *(mid + i);
int v1_index = 0, v2_index = 0;
int i = 0;
for (; v1_index < v1_n && v2_index < v2_n; ++i)
{
if (*(v1 + v1_index) < *(v2 + v2_index))
*(first + i) = *(v1 + v1_index++);
else
*(first + i) = *(v2 + v2_index++);
}
for (; v1_index < v1_n; ++i) *(first + i) = *(v1 + v1_index++);
for (; v2_index < v2_n; ++i) *(first + i) = *(v2 + v2_index++);
delete[] v1;
delete[] v2;
}
0097デフォルトの名無しさん
NGNGfgets(str, N, fp);
↓
fgets(str, sizeof(str), fp);
sscanf(str, "%11d%4d%4d%2d", &t, &a, &t, &b);
↓
sscanf(str, "%*11d%4d%*4d%2d", &a, &b);
0098デフォルトの名無しさん
NGNG修正thx
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNGCLAPACK
010199
NGNGとにかく、LAPACK以外でおねがいします。
■ このスレッドは過去ログ倉庫に格納されています