ぼるじょあがC/C++の宿題を片づけますYO! 67代目
■ このスレッドは過去ログ倉庫に格納されています
0001ぼるじょあ ◆yBEncckFOU
2006/12/10(日) 11:33:41わからない宿題を片づけますYO!
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】
http://www.linux.or.jp/JM/index.html
【前スレ】
ぼるじょあがC/C++の宿題を片づけますYO! 66代目
http://pc8.2ch.net/test/read.cgi/tech/1149349035/
0784デフォルトの名無しさん
2007/04/29(日) 14:03:150785デフォルトの名無しさん
2007/04/29(日) 14:29:000786デフォルトの名無しさん
2007/04/29(日) 16:13:20752を実行すると1 3 5……って表示されてくことを馬鹿にしてんだろ?
要素の参照とか全然関係ないじゃん。
0787デフォルトの名無しさん
2007/04/29(日) 16:26:02だからそれについてはその後に突っ込まれてんだが?w
既出事項で後でどうこう言う奴って、分かりきっていることを言っただけだから
何か言おう言おうとして結局自分では言い返せなかった負け犬の最後の悪あがきだろw
0788デフォルトの名無しさん
2007/04/29(日) 16:27:470か1で始まるかについては本当にナンセンスだからw
それでもa[101]とした場合、[]の中で有効的に使えるのは100までというのは
扱っている人なら分かっているだろ。それについて理解していなかったのを露呈されて
最後に苦し紛れにすでに突っ込まれた1と2を持ち出したに過ぎないだろw
0789デフォルトの名無しさん
2007/04/29(日) 18:04:09>a[0]=0;
こんなコード書く奴が何言っても負け犬の遠吠えだな、確かにw
0790デフォルトの名無しさん
2007/04/30(月) 03:50:48BSSが大きくなっても実行ファイルは大きくならんだろう。
たいていの環境では。
0791デフォルトの名無しさん
2007/04/30(月) 04:10:00それについては不要なコードだったってことで、実際に動作には影響していないw
それよか、その程度のことを敢えて突っ込んでバカにしようとする態度をとるお前がキモイ。
気持ち悪い顔してストレスためてんだよね・・・負け犬社会のクズがw
0792デフォルトの名無しさん
2007/04/30(月) 11:21:27許してあげなよ
50にもなって平社員で今日も会社で失敗して年下の主任に怒られてその腹いせに揚げ足とっていじめてやろうとしているだけなんだからさ。
責めたらかわいそうだろ?
0793デフォルトの名無しさん
2007/04/30(月) 11:22:470794デフォルトの名無しさん
2007/04/30(月) 21:10:09[2] 問題文(含コード&リンク):1000個までの整数あるいは少数を打ち込んで、その平均と標準偏差を表示することのできるプログラムを作成せよ。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:なるべく早めにお願いします。
[5] その他の制限:素人でも作成できるレベルでお願いします。
0795デフォルトの名無しさん
2007/04/30(月) 21:25:07http://www1.cts.ne.jp/~clab/hsample/Func/Func09.html
0796デフォルトの名無しさん
2007/04/30(月) 21:44:15http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3910.txt
ちょっと前にも同じ問題が出たので学校が同じ人かな?
0797794
2007/04/30(月) 22:51:0545行のM_PIが定義されていない!?…となりエラーが出ます。
ど素人なので、どうしていいのかわかりません。
よろしくお願いします。
0798デフォルトの名無しさん
2007/04/30(月) 23:39:22#define N 1000 の下の行に,
#define M_PI 3.14159265358979323846
を追加すればコンパイル通るはず.
gcc だと >>796 のままでコンパイル通ったけど,Visual C++ かなんかでコンパイルしてんの?
0799デフォルトの名無しさん
2007/05/01(火) 00:42:180800デフォルトの名無しさん
2007/05/01(火) 01:02:21じゃなくてこれは正規分布の乱数の関数だから
プログラムが正しく動作しているのを確認しただけじゃないの?
0801デフォルトの名無しさん
2007/05/01(火) 01:15:270802デフォルトの名無しさん
2007/05/01(火) 01:27:40律儀やねぇ
0803デフォルトの名無しさん
2007/05/01(火) 11:18:28コアラのマーチのファンはいませんか?
0804デフォルトの名無しさん
2007/05/01(火) 11:20:53オナしました。。
ダウンロードパス・解凍パスはonaです
0805デフォルトの名無しさん
2007/05/07(月) 18:30:36ちがうお 白ランとか黒ランとかいうぼるじょあさんだお
ランレングス符号化の問題やってくれるお
0806デフォルトの名無しさん
2007/05/09(水) 17:20:44a[0]=8
a[1]=50
a[3]=72
a[4]=20
a[5]=10
って出力したいんですけど、a[2]がとんでるじゃないですか?if文をつかってとばすってきいたんですけど…わかりません。ソースコード教えてください。C言語です。
0807デフォルトの名無しさん
2007/05/09(水) 17:22:24a[0]=8
a[1]=50
a[3]=72
a[4]=20
a[5]=10
って出力したいんですけど、a[2]がとんでるじゃないですか?if文をつかってとばすってきいたんですけど…わかりません。ソースコード教えてください。C言語です。
0808デフォルトの名無しさん
2007/05/09(水) 19:20:49つcontinue
#include<stdio.h>
int main(void)
{
int n;
int a[]={8,50,801,72,20,10)};
for(n=0;n<=5;n++){
if(n==2) continue;
printf("a[%d]=%d\n",n,a[n]);
return 0;
}
間違っててもオラしらねえだ。
0809依頼者
2007/05/10(木) 21:02:35[2] 問題文(含コード&リンク):
(1)関数mainにおいてキーボードから2つの文字を入力し
アルファベットの順序に並べ替えてモニタに出力するプログラムの作成。
(2)キーボードから30個の配列に小数を代入し、それらを小さい順に
並び替え、その結果をモニタに出力するプログラムを作成せよ。このソート
の問題は、バブルソートで実施し、連続する2数の交換main以外の関数swap
で実施せよ。
プログラムの作成。
[3] 環境:
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: Visual Studio.net
[3.3] 言語: C
[4] 期限: 5月12日まで。
簡単なプログラムでお願いします。
0810デフォルトの名無しさん
2007/05/11(金) 17:11:28ありがとうございます。
0811C初心者
2007/05/11(金) 21:59:24以下の(a)~(d)の方法で、
1/1-1/2+1/3-1/4+…+1/n
を求める関数を作成してください。これらの関数は、
int n;
double ansa,ansb,ansc,ansd;
double suma(int),sumb(int),sumc(int),sumd(int);
:
:
ansa=suma(n);
snsb=sumb(n);
ansc=sumc(n);
ansd=sumd(n);
といった形式で使うものとします。n>0に限定してもいいですが、関数suma,sumb,sumc,sumdの中身
を書き換えることなく、任意のnについて計算できるように注意してください。作成した4つの関数
を用いて、n=10000で計算した結果を比較し、違っているならばなぜ違うかを考察してください。
(a)suma:順次左(1/1)から加えていく方法
(b)sumb:順次右(1/n)から加えていく方法
(c)sumc:正負の項を別々に、順次左から加えていく方法
(d)sumd:正負の項を別々に、順次右から加えていく方法
環境
OS:Linux
コンパイラ名とバージョン:gcc
言語: C
期限: 2007/5/18まで
おねがいします。
0812C初心者
2007/05/11(金) 22:13:06問題文
配列に格納された実数を大きさの順に並べ替える関数を作成してください。この関数は以下
のように使うものとします。n=1000は例であって、データ数は1000とは限りません(ただし、
プログラムの都合上1000以下とします)。
--------------------------------------------------------------------
double a[1000];
void sort(double*,int);
:
:
n=1000;
/*(ここでa[0]からa[999]をファイルから読み込む)*/
sort(a,n);
/*(ここでa[0]からa[999]をプリントし、結果を確認する)*/
-------------------------------------------------------------------
環境
OS:Linux
コンパイラ名とバージョン:gcc
言語: C
期限: 2007/5/18まで
0813C初心者
2007/05/11(金) 22:25:14問題文
自然対数の底eを1000桁求めるプログラムを作成してください。e^xをマクローリン展開
した
e^x=1+x/1!+x^2/2!+…+x^n/n!+…
において、x=1とおいた式を計算するとよいでしょう。
環境
OS:Linux
コンパイラ名とバージョン:gcc
言語: C
期限: 2007/5/18まで
0814デフォルトの名無しさん
2007/05/12(土) 02:54:07上のprintf文の%sでどのように"Hello World"を処理しているのか分かりません。
どなたかご教授して下さい。
0815デフォルトの名無しさん
2007/05/12(土) 04:16:05メインは省略
double suma(int n) {
int i;
double sum = 0;
for(i=1; i<=n; i++) {
if(i%2) sum += (double)1 / i;
else sum -= (double)1 / i; }
return sum;
}
double sumb(int n) {
int i;
double sum = 0;
for(i=n; i > 0; i--) {
if(i%2) sum += (double)1 / i;
else sum -= (double)1 / i; }
return sum;
}
double sumc(int n) {
int i;
double sum = 0;
for(i=1; i<=n; i+=2) sum += (double)1 / i;
for(i=2; i<=n; i+=2) sum -= (double)1 / i;
return sum;
}
double sumd(int n) {
int i;
double sum = 0;
for(i=n; i > 0; i-=2) sum += (double)1 / i;
for(i=n-1; i > 0; i-=2) sum -=(double)1 / i;
return n % 2 ? sum : -sum;
}
0816C初心者
2007/05/12(土) 16:18:11ありがとうございます。とりあえず関数sumaについてプログラムを作ってみたのですが
メインの部分はこれで良いのでしょうか?みていただけると幸いです。
#include <stdio.h>
double suma(int n) {
int i;
double sum = 0;
for(i=1; i<=n; i++) {
if(i%2) sum += (double)1 / i;
else sum -= (double)1 / i; }
return sum;
}
int main(void)
{
int n;
double ansa;
double suma(int);
printf("nを入力してください:"); scanf("%f",&n);
ansa = suma(n);
printf("計算結果は%fです。\n",ansa);
return(0);
}
0817デフォルトの名無しさん
2007/05/12(土) 16:21:250818デフォルトの名無しさん
2007/05/12(土) 16:27:50なんというキモさ
0819デフォルトの名無しさん
2007/05/12(土) 19:28:360820依頼者
2007/05/12(土) 20:13:41[2] 問題文(含コード&リンク):
(1)関数mainにおいてキーボードから2つの文字を入力し
アルファベットの順序に並べ替えてモニタに出力するプログラムの作成。
(2)キーボードから30個の配列に小数を代入し、それらを小さい順に
並び替え、その結果をモニタに出力するプログラムを作成せよ。このソート
の問題は、バブルソートで実施し、連続する2数の交換main以外の関数swap
で実施せよ。
[3] 環境:
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: Visual Studio.net
[3.3] 言語: C
[4] 期限: 5月14日まで。
全然わかりません、よろしくお願いします。
0821ぼるじょあ ◆hZ8e4Wjqvw
2007/05/13(日) 11:03:52(・3・) エェー (2)だけやっといたYO!
#include<stdio.h>
#define DATA_NUM 30
void swap(double *a, double *b){
double c;
c=*a;
*a=*b;
*b=c;
}
int main(void){
double data[DATA_NUM];
int i, j;
for(i=0;i<DATA_NUM;i++){
printf("実数を入力して下さい");
scanf("%lf", &data[i]);
}
for(i=0;i+1<DATA_NUM;i++){
for(j=i+1;j<DATA_NUM;j++){
if(data[i]>data[j]){
swap(&data[i], &data[j]);
}
}
}
for(i=0;i<DATA_NUM;i++)
printf("%f\n", data[i]);
return 0;
}
0822依頼者
2007/05/13(日) 15:21:27あとどなたか(1)のほうもお願いします。
0823デフォルトの名無しさん
2007/05/13(日) 16:08:33簡単だから自分でやって見れ
まずはCの復習、ここがお勧め→ttp://effy.ldw.jp/c/index.html
考え方はと言うか疑似コード?は
0.骨格を作る(#includeやmain(){})。
ぼるじょあ氏のswap関数を組み込む(main関数の前にコピペ)
1.char型の変数、a,bを宣言
2.文字をscanf("%c",&a)かなにかでキーボードからを入力して変数aに文字を入れる。
3.同じ様に文字を入力して変数bに入れる。
4.もし、aがbより大きければ(アルファベット順じゃないなら)入れ替える。if(a>b) swap(&a,&b);文字も数値として扱われるから大きさを比べられる。
5.a,bを出力
6.終わり
0824デフォルトの名無しさん
2007/05/14(月) 02:51:450825デフォルトの名無しさん
2007/05/14(月) 08:24:300826デフォルトの名無しさん
2007/05/14(月) 22:41:50[2] 問題文: はじめに人数を入力。その人数分、交通費を入力。
するとお金の種類ごと(一万円、五千円、千円、五百円、百円、五十円、十円、五円、一円)に何枚用意する必要があるか表示してくれるプログラムを作成せよ。
以下の三つが課題達成条件です。
・人数として0もしくは負の数を入力された場合は、「正しい人数を入力してください」と、表示し終了する。
・枚数が0枚の場合は硬貨の種類は表示しない。
・正しい硬貨と枚数が表示される。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン: Visual C++ 2005
[3.3] 言語: C
[4] 期限: 5月15日まで
[5] その他の制限: do,while,for文まで習いました。
よろしくお願いします。
0827homoじょあ ◆5OLf4yFnuM
2007/05/14(月) 23:06:39#include <stdio.h>
int main(void){
int sum = 0, num, cnt, tmp;
int money[] = {10000, 5000, 1000, 500, 100, 50, 10, 5, 1};
printf("人数:");
scanf("%d", &num);
if(num <= 0){
printf("正しい人数を入力して下さい\n");
return -1;
}
for(cnt=0; cnt<num; cnt++){
printf("%d人目の交通費:", cnt+1);
scanf("%d", &tmp);
sum += tmp;
}
for(cnt=0; cnt<9; cnt++){
tmp = sum / money[cnt];
if(tmp != 0){
printf("%d円:%d枚\n", money[cnt], tmp);
sum -= tmp * money[cnt];
}
}
return 0;
}
0828デフォルトの名無しさん
2007/05/14(月) 23:23:16ありがとうございます。感謝です
0829ぼるじょあ ◆hZ8e4Wjqvw
2007/05/14(月) 23:27:11(・3・) エェー おいらもやってみたYO!
#include<stdio.h>
void money_num_calc(const int money_kind[], int money_kind_num, int money_num[], int value){
int i;
if(value<0) value=0;
for(i=0;i<money_kind_num;i++){
money_num[i]=value/money_kind[i];
value%=money_kind[i];
}
}
int main(void){
const int money_kind[]={10000,5000,1000,500,100,50,10,5,1};
int money_num_total[sizeof(money_kind)/sizeof(money_kind[0])]={0};
int money_num[sizeof(money_kind)/sizeof(money_kind[0])];
int human_num, human_index, i, value;
printf("人数を入力して下さい ");
scanf("%d", &human_num);
if(human_num<=0){printf("\n正しい人数を入力してください\n");return 1;}
for(human_index=0;human_index<human_num;human_index++){
printf("%d 人目の交通費を入力してください ", human_index+1);
scanf("%d", &value);
money_num_calc(money_kind, sizeof(money_kind)/sizeof(money_kind[0]), money_num, value);
for(i=0;i<sizeof(money_kind)/sizeof(money_kind[0]);i++)
money_num_total[i]+=money_num[i];
}
for(i=0;i<sizeof(money_kind)/sizeof(money_kind[0]);i++)
if(money_num_total[i]>0)
printf("%5d 円 : %d 枚\n", money_kind[i], money_num_total[i]);
return 0;
}
0830ぼるじょあ ◆hZ8e4Wjqvw
2007/05/14(月) 23:31:49(・3・) エェー 関数使うのやめてみたYO! あと交通費が負数のときは 0円換算するYO!
#include<stdio.h>
int main(void){
const int money_kind[]={10000,5000,1000,500,100,50,10,5,1};
int money_num[9]={0};
int human_num, human_index, i, value;
printf("人数を入力して下さい ");
scanf("%d", &human_num);
if(human_num<=0){
printf("\n正しい人数を入力してください\n");
return 1;
}
for(human_index=0;human_index<human_num;human_index++){
printf("%d 人目の交通費を入力してください ", human_index+1);
scanf("%d", &value);
if(value<0) value=0;
for(i=0;i<9;i++){
money_num[i]+=value/money_kind[i];
value%=money_kind[i];
}
}
for(i=0;i<9;i++)
if(money_num[i]>0)
printf("%5d 円 : %d 枚\n", money_kind[i], money_num[i]);
return 0;
}
0831デフォルトの名無しさん
2007/05/15(火) 03:28:30[2] 問題文(含コード&リンク):
1.英文を入力するとその暗号文が出力されるプログラムの作成
入力:文字列(英文)
出力:文字列(数字)
2.暗号文を元の英文に戻すプログラムの作成
入力:文字列(数字)
出力:文字列(英文)
暗号は換字暗号でよい。[アルファベット(a〜z)、スペースを数字(00〜26)、スペースを対応させる]例a⇔23、b⇔09、c⇔17…
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 火曜日の夕方、もしくは水曜日の朝まで
[5] その他の制限: ループ(forやwhile)、配列を使って作成する
ぼるじょあさん、よろしくおねがいします。
0832ぼるじょあ ◆hZ8e4Wjqvw
2007/05/15(火) 09:48:13(・3・) エェー マルチポストすんなYO!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void swap(int *a, int *b){
int c; c=*a;*a=*b;*b=c;
}
int main(void){ // 1.
char symbol[]="abcdefghijklmnopqrstuvwxyz ", *ptr;
int i, moji, num[sizeof(symbol)-1];
for(i=0;i<sizeof(symbol)-1;i++) num[i]=i;
for(i=0;i<sizeof(symbol)-1;i++) swap(&num[i], &num[rand()%(sizeof(symbol)-1)]);
while((moji=getchar())!=EOF){
ptr=strchr(symbol, moji);
if(ptr!=NULL)
; // ここにある処理を書けYO!
}
return 0;
}
int main(void){ // 2.
char symbol[]="abcdefghijklmnopqrstuvwxyz ";
int i, moji, num[sizeof(symbol)-1];
for(i=0;i<sizeof(symbol)-1;i++) num[i]=i;
for(i=0;i<sizeof(symbol)-1;i++) swap(&num[i], &num[rand()%(sizeof(symbol)-1)]);
while(scanf("%02d", &moji)>0){
for(i=0;i<sizeof(symbol)-1;i++)
if(moji==num[i])
; // ここにある処理を書けYO!
}
return 0;
}
0833ぼるじょあ ◆hZ8e4Wjqvw
2007/05/15(火) 10:06:46(・3・) エェー 少し短くしたYO!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void swap(char *a, char *b){
char c; c=*a;*a=*b;*b=c;
}
int main(void){ // 1.
char symbol[]="abcdefghijklmnopqrstuvwxyz ", *ptr;
int i, moji;
for(i=0;i<sizeof(symbol)-1;i++)
swap(&symbol[i], &symbol[rand()%(sizeof(symbol)-1)]);
while((moji=getchar())!=EOF){
ptr=strchr(symbol, moji);
if(ptr!=NULL)
; // ここにある処理を書けYO!
}
return 0;
}
int main(void){ // 2.
char symbol[]="abcdefghijklmnopqrstuvwxyz ";
int i, moji;
for(i=0;i<sizeof(symbol)-1;i++)
swap(&symbol[i], &symbol[rand()%(sizeof(symbol)-1)]);
while(scanf("%02d", &moji)>0){
if(moji>=0 && moji<sizeof(symbol)-1)
; // ここにある処理を書けYO!
}
return 0;
}
0834831
2007/05/15(火) 17:42:22コンパイラがgccではなく、borlandでした。すいません。
あと一つ目のプログラムを実行したら以下のようなエラーが出てしまいます。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void swap(char *a, char *b)
{
char c; c=*a;*a=*b;*b=c;
}
int main(void){
char symbol[]="abcdefghijklmnopqrstuvwxyz ", *ptr;
int i, moji;
for(i=0;i<sizeof(symbol)-1;i++)
swap(&symbol[i], &symbol[rand()%(sizeof(symbol)-1)]);
while((moji=getchar())!=EOF){
ptr=strchr(symbol, moji);
if(ptr!=NULL);}
return 0;
}
>bcc32 bo1.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
bo1.c:
警告 W8019 bo1.c 17: コードは効果を持たない(関数 main )
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
なにか解決策は無いでしょうか?
0835831
2007/05/15(火) 17:44:47#include <stdio.h>
int main(void){
int i;
char a[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int b[]={'01','10','11','02','20','22','03','30','33','04','40','44','05','50','55','06','60','66','07','70','77','08','80','88','09','90'};
printf();
scanf();
while(){
}
printf();
return 0;
}
このプログラムを改良してもらえないでしょうか?
無理を言ってすいません。
0836デフォルトの名無しさん
2007/05/15(火) 17:52:25いつから「警告」のことを「エラー」と言うようになったのでしょう。
0837デフォルトの名無しさん
2007/05/15(火) 17:54:05そのプログラムを改良したくても、間違いだらけでコンパイルの通しようもありませんが。
0838835
2007/05/15(火) 18:12:47int main(void){
int; i;
char a[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int b[26]={'01','10','11','02','20','22','03','30','33','04','40','44','05','50','55','06','60','66','07','70','77','08','80','88','09','90'};
printf("01から90までの数字を入力してください:");
scanf("%s", &a);
while(){
}
printf("%s\n", a);
return 0;
}
申し訳ありません。
自力で出来るのがこの程度なのです。
while文のなかの構造や配列の使い方がよくわかりません。
何度もすいません。
>>834
警告とエラーは違うのですね。すいません。
0839デフォルトの名無しさん
2007/05/15(火) 18:15:44試しに、bの全要素を出力して味噌。ほんとにその数値でいいの?
0840ぼるじょあ ◆hZ8e4Wjqvw
2007/05/15(火) 18:29:38(・3・) エェー マルチは嫌いだから
穴埋め問題にしておいただけだYO!
でも、レス見る限り解けなさそうだからヒントやるYO!
ヒント
1 の main の穴埋め部分
printf("%02d", ???-???)
2 の main の穴埋め部分
putchar(symbol[???])
???の部分に適当な変数名を当てはめていけばいつか答えにあたるYO!
0841838
2007/05/15(火) 19:05:53はい。bの要素の数値は何でもいいです。
英文字と1対1で対応していればいいです。
>>840
アドバイスありがとうございます。
自分で作ったプログラムもいろいろ考えてみます。
0842デフォルトの名無しさん
2007/05/15(火) 19:10:47御託並べずに出力してみろ。想定した(自分で書いた積もりの)数値が出力されるか?
0843デフォルトの名無しさん
2007/05/15(火) 19:27:22これは問題文そのまま?
0844838
2007/05/16(水) 00:33:20問題文は
「暗号は最も簡単な暗号:換字暗号でよい。」
です。
「アルファベット(a〜z)、スペースを数字(00〜26)、スペースを対応させる」の部分は
勝手に付け足しました…
>>842
うまくできませんね…。
配列の要素とscanf、printfのなかも変えてやってみます。
0845デフォルトの名無しさん
2007/05/16(水) 01:14:47[1] 授業単元:C言語実習
[2] 問題文(含コード&リンク):
パソコンに設定されている日付を読み込んで(<time.h>とかかな?)
キーボードから入力される日付と合致しているかしていないかの判断を行う
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
[3.3] 言語: C
[4] 期限: 2007年05月17日まで
[5] その他の制限 : 入力されてくる日付はYYYYMMDD方式でも
年月日個別でもどちらのパターンでも構いません
0846デフォルトの名無しさん
2007/05/16(水) 01:34:33#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main(void) {
struct tm *date;
time_t now;
int year, month, day;
int hour, minute, second;
int iy,im,id; // 入力で受け付ける年月日
char buf[10];
printf("年月日を入力\n");
printf("年 > ");
scanf("%s",buf);
iy=atoi(buf);
printf("月 > ");
scanf("%s",buf);
im=atoi(buf);
printf("年 > ");
scanf("%s",buf);
id=atoi(buf);
0847846の続き
2007/05/16(水) 01:35:15/* 現在の日時を取得 */
time(&now);
date = localtime(&now);
year = date->tm_year + 1900;
month = date->tm_mon + 1;
day = date->tm_mday;
hour = date->tm_hour;
minute = date->tm_min;
second = date->tm_sec;
printf("入力された年月日 : %d / %d / %d \n",iy,im,id);
printf("現在 : %d / %d / %d \n",year,month,day);
printf("%2d : %2d : %2d \n",hour,minute,second);
if(iy==year && im==month && id==day)
printf("一致\n");
else printf("不一致\n");
return 0;
}
0848844
2007/05/16(水) 01:44:39int main(void){
int a,b;
char eigo[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int suuji[26]={1,10,11,2,20,22,3,30,33,4,40,44,5,50,55,6,60,66,7,70,77,8,80,88,9,90};
for( a=0; a<26; a++ )
{
printf("test0[%d] = %c\n", a, eigo[a]);
}
for( b=0; b<26; b++ )
{
printf("test1[%d] = %d\n", b, suuji[b]);
}
return 0;
}
--------------------------
これで思うような出力が出来たのですが、
これを1対1で対応させて暗号とするにはどうしたらよいのでしょうか?
アドバイスください。ぼるじょあさんのは難しくて理解できませんでした。
せっかく答えていただいたのに申し訳ありません。
0849デフォルトの名無しさん
2007/05/16(水) 03:18:410850デフォルトの名無しさん
2007/05/16(水) 03:26:46向こうのスレに答えがあるようだけど。
0851デフォルトの名無しさん
2007/05/16(水) 12:27:03キーボードから前順,中順,後順を選択すると、
その順で木をなぞる再起プログラミングを作成せよ.
プログラミング。
C言語です。
5月21日まで。
OSはwindowsです。
よろしくお願いいたします。
意味が分からない。
0853デフォルトの名無しさん
2007/05/16(水) 13:26:13範囲内で制御するルーチンを作りなさい
アメリカ陵軍情報局研修3
OSはWINDOWS3000
期限となる日時は機密条項に抵触するため、
可能な限り早くお願いする
頼んだつもりは無いが、未来は諸君の腕にかかっている
0854デフォルトの名無しさん
2007/05/16(水) 13:37:200855気まぐれアナスイ
2007/05/16(水) 14:09:51新2ch語誕生の予感。
0857デフォルトの名無しさん
2007/05/16(水) 16:31:51>WINDOWS3000
とりあえず俺の手元にはテスト環境が見あたらないな。
うpきぼんぬ。
0858デフォルトの名無しさん
2007/05/16(水) 16:34:2010個の整数データを木構造に保存し、
順に木をなぞる再起プログラミングを作成せよ.
これなら分かりますか??
再起プログラミングが、よく分からないんです。
教えていただけないでしょうか?
0859デフォルトの名無しさん
2007/05/16(水) 16:38:36何の木?
どんな木で何の順だよ。
0861デフォルトの名無しさん
2007/05/16(水) 17:11:37根付き木です。
ポインタにより木を実現し,データを保存せよって書いてあるんですが
自分は意味が分かりません。
お願いします。
>>860
課題をそのままコピーしただけなので、
よくわかんないですけど、色々調べたのですが深さ優先探索での
前順、中順、後順の事だと思います。すいません。
0862デフォルトの名無しさん
2007/05/16(水) 17:12:500863デフォルトの名無しさん
2007/05/16(水) 17:22:27http://ja.wikipedia.org/wiki/%E3%83%84%E3%83%AA%E3%83%BC%E6%A7%8B%E9%80%A0
>ポインタにより木を実現し,データを保存せよって書いてあるんですが
どういう基準で入力値を構造化するのか定義しろ。
>前順、中順、後順
そんな言葉は存在しねえので、それぞれが何を表してるのか定義しろ。
0865デフォルトの名無しさん
2007/05/16(水) 17:27:29いや、存在はしてるみたい。
マイナーな言葉で通じる人が少ないかもしらんけど。
0867デフォルトの名無しさん
2007/05/16(水) 21:53:16ありがとうございました
0868デフォルトの名無しさん
2007/05/16(水) 23:11:05[2] 問題文(含コード&リンク): 問題が分かりません。
[3] 環境
[3.1] OS: 2 ちゃんねる
[3.2] コンパイラ名とバージョン: Docomo2.0
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: printf() 系関数は使用不可。
0869デフォルトの名無しさん
2007/05/16(水) 23:40:310870依頼者
2007/05/17(木) 22:32:13[2] 問題文(含コード&リンク):
キーボードより文字列aと文字列bを入力し、比較する(どちらが辞書並びで先かを表示)プログラムの作成。
但し、strcmp関数を用いてはならない。
[3] 環境:
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: Visual Studio.net
[3.3] 言語: C
[4] 期限: 5月19日まで。
0871デフォルトの名無しさん
2007/05/18(金) 00:09:460872デフォルトの名無しさん
2007/05/18(金) 00:27:39#include<stdio.h>
int main(void)
{
char a[50],b[50],n;
printf("文字列a:");scanf("%s",a);
printf("文字列b:");scanf("%s",b);
for(n=0;n<50;n++){
if(a[n]!=b[n]){
if(a[n]=='\0')printf("文字列aが辞書並びで先");
else if(b[n]=='\0')printf("文字列bが辞書並びで先");
else if(a[n]<b[n]) printf("文字列aが辞書並びで先");
else printf("文字列bが辞書並びで先");
break;
}else if(a[n]=='\0' && b[n]=='\0'){
printf("文字列は同じ");
break;
}
}
return 0;
}
ターゲットのロケールとコードページを。
0874C初心者
2007/05/18(金) 15:01:260875ぼるじょあ ◆hZ8e4Wjqvw
2007/05/18(金) 15:42:13(・3・) エェー バブルソートでやってみたYO!
void sort(double *data, int data_num){
int i, j;
double tmp;
if(data==NULL || data_num<1) return;
for(i=0;i+1<data_num;i++){
for(j=i+1;j<data_num;j++){
if(data[i]>data[j]){
tmp=data[i];
data[i]=data[j];
data[j]=tmp;
}
}
}
}
2問題文:配列を用いてn個までの値を入力し、その最大値、最小値、及び
全体の平均点を出すプログラムを作成せよ。
3環境:Linux3.2
gcc
C
4 2007年5月22日17時
5 ifやwhile、そして今日配列まで習いました。
よろしくお願いします!!
0877依頼者
2007/05/18(金) 20:44:490878C初心者
2007/05/18(金) 21:46:07ありがとうございます<(_ _)>月曜にならないと操作できないので、また後で実効してみます。
0879デフォルトの名無しさん
2007/05/19(土) 09:51:37おそらくわかるであろう範囲のものを使って書いておいた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4001.txt
0880デフォルトの名無しさん
2007/05/19(土) 16:33:27[2] 問題文(含コード&リンク): Gauss消去法のプログラムを変更することにより、Gauss-Jordan法のプログラムを作成せよ。
任意のn×n行列Aとn×m行列Bを与えて、AX=Bいの解行列Xを(完全ピポット選択でなく部分ピボット選択のGauss-Jordan法
により)求めるプログラムを作成せよ。このとき、n,mや行列A,Bは標準入力から入力し、また、実際に行列A,Xの積を計算することで、
得られた解が正しいかどうかをチェックする機能も実装せよ。またこのプログラムを用いて、線形連立方程式の解や、逆行列を
求めた例も示せ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:不明
[3.3] 言語: C
[4] 期限: 5月22日
[5] その他の制限: 問題文長いですが・・・よろしくお願いします!!
0881ぼるじょあ ◆hZ8e4Wjqvw
2007/05/20(日) 12:29:47(・3・) エェー >>875 はバブルソートと違うYO!今度こそバブルソートだYO!
void sort(double *data, int data_num){
int i, j;
double tmp;
if(data==NULL || data_num<1) return;
for(i=0;i+1<data_num;i++){
for(j=i;j+1<data_num;j++){
if(data[j]>data[j+1]){
tmp=data[j];
data[j]=data[j+1];
data[j+1]=tmp;
}
}
}
}
月曜日に学校にいって早速実行してみたいとおもいます。
こんなに難しいのになんでスラスラできるのか不思議でたまりません。
0883デフォルトの名無しさん
2007/05/20(日) 16:15:04■ このスレッドは過去ログ倉庫に格納されています