C/C++の宿題なら私にやらせろ!
レス数が1000を超えています。これ以上書き込みはできません。
0001C++房 ◆vKuy6bx7T2
NGNG今まで1年2ヶ月、ほとんど毎日休まず一生懸命C++を勉強してきた。
わからない宿題若しくは処理があったら私にやらせてくださいm(_ _)m
ただしtemplateエッチはわからない。
他の手強に聞いてくれ
前スレ: http://pc3.2ch.net/test/read.cgi/tech/1036572120/l50
宿題手伝いますYO!!: http://pc3.2ch.net/test/read.cgi/tech/1038024989/l50
0002デフォルトの名無しさん
NGNGQ. javac コマンドを実行したときに、
『コマンドまたはファイル名が違います』や
『'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
と表示されてコンパイルできません。
A. javac.exeへのPATHが通っていません。
http://java.sun.com/j2se/1.4.1/ja/install-windows.html
を良く読んで、javac.exe のあるディレクトリ(例: C:\j2sdk1.4.1_01\bin )のパスを
環境変数PATHに追加してください。
その後、
Windows98/MEの場合はOSを再起動、
Windows2000/XPの場合はコマンドプロンプトを新たに立ち上げなおしてください。
設定したパスが正しければ、javacが使えるようになります。
それでも同じエラーが出る場合は、設定した値が間違っています。よく見直してください。
Q. javac Hello.java でコンパイルはできるのですが、
java Hello を実行しようとすると
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
と表示されて実行できません。
A. カレントディレクトリ(.)がクラスパス(classpath)に含まれていません。
コマンドプロンプトで、
set CLASSPATH=%CLASSPATH%;.
と設定する。最後の「;」と「.」を見落とさないように!
または、
http://www.gimlay.org/~javafaq/S004.html#S004-02
を読んでカレントディレクトリ「.」を環境変数CLASSPATHに追加してください。
JavaFAQ 基礎知識
http://www.gimlay.org/~javafaq/S004.html
0003デフォルトの名無しさん
NGNGでも何だか 2 の雰囲気が違う
0004み
NGNGというプログラムを作ってみたんですが、エラーが出てしまいます(^^;)↓のどこをどうなおせばいいでしょうか?
0005デフォルトの名無しさん
NGNGHSZ hszApp, hszTopic;
HCONV hConv;
int ret;
//コールバックハンドラ定義
if ((ret=DdeInitialize(&idInst, (PFNCALLBACK)UdprocDdeCallback, APPCMD_CLIENTONLY, 0L)) != DMLERR_NO_ERROR){
AfxMessageBox("Failed to DdeInitialize (%d)", ret);
return true;
}
hszApp = DdeCreateStringHandle(idInst, cappname, 0); // DDE Application Name
hszTopic = DdeCreateStringHandle(idInst, ctopicname, 0); // DDE Topic Name
// DDE接続
0006み
NGNGvoid insertionsort(int *A, int n);
void insertionsort(int *A, int n)/*配列A[0],…,A[n-1]を挿入ソートにより整列*/
{int i, k, a;
for(i = 1; i < n; i++)
{
a = A[i];k = i;
while(a<A[k-1] && k-1>=0)
{A[k] = A[k-1]; k = k-1;}
A[k] = a;}
}
int main(int argc, char* argv[])
{int j,n;int A[100];
FILE *file;
file=fopen("data", "r");
fscanf(file,"%d",&n);
if(n > N){
printf("Illegal array size n = %d",n);exit(1);
}
printf("n = %d\n a = ",n);
for(j=0; j<n; j++)
fscanf(file,"%d",&A[j]);
for(j=0; j<n; j++)printf("%d",A[j]);
printf("\n");fclose(file);
insertionsort(*A,j);
printf("%d",A[j]);}
これ↓だとちゃんと動くのだけど。
#include <stdio.h>
int hoge (int * a) {
printf("%d\n", a[2]);
return 0;
}
int main(int argc, char * argv[]) {
int a[] = {9, 8, 7, 6, 5, 4, 3, 2, 1};
hoge(a);
return (0);
}
0008デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define swap_int(a, b) { int tmp = a; a = b; b = tmp; }
#define ITEM_NUM 10
void PrintArray(int A[], size_t size) {
size_t i;
for(i = 0; i < size; i++)
printf("%d ", A[i]);
putchar('\n');
}
void InsertionSort(int A[], size_t size) {
size_t max, i;
while(size--) {
for(max = 0, i = 1; i <= size; i++)
if(A[i] > A[max])
max = i;
swap_int(A[max], A[size]);
}
}
int main(int argc, char* argv[]) {
int A[ITEM_NUM];
size_t i;
srand(clock());
for(i = 0; i < ITEM_NUM; i++) A[i] = rand();
PrintArray(A, ITEM_NUM);
InsertionSort(A, ITEM_NUM);
PrintArray(A, ITEM_NUM);
return 0;
}
0009前スレ991
NGNG有難うございました。
0010デフォルトの名無しさん
NGNG全然面白くないのでなんか別の意味があるのかと思ったんだけどよく分からん。
0011デフォルトの名無しさん
NGNG0013み
NGNGレスありがとうございますm(_ _)m
>>7
できればファイルからの入力をしたいのですが(^^;
どこが違うのかわからなくて(汗)
>>8
sizeというのは?
初心者なもので何もわからなくてすみませんm(_ _)m
0014デフォルトの名無しさん
NGNG変数名。
0015デフォルトの名無しさん
NGNGサイズや数量を表すためのデータ型。
大抵は unsigned または unsigned long の別名。
つーか、コンパイラのヘルプとかマニュアルとかリファレンスとか、参照できないの?
0016デフォルトの名無しさん
NGNG自分は 情報系ではなく C言語をかじった程度なので分かりません
問題は 以下のような概要?をプログラム言語で書くというものなのですが、
これがC言語でできるのかも自分には わかりません。
どなたか 前文 書いてください。
c←0.5+0.1i
for j ←1 to 100
for k ←1 to 100
compute z0
z←z0
for n ←1 to 10
z ←z^3 + c
if |real(z)|or|imag(z)|or|z|>10
then jump out of loop
if |real(z)|or|imag(z)|<10
then plot(j,k)black
else plot(j,k)white
どのようなことをしているのかは 分かるんですけど
どう書いていいのか 自分には さっぱりです
ちなみに z ←z^3 + c というのは
Zn+1=Zn^3+c ということです
00177 ◆F52DmOxJlc
NGNGよけいな例を書かなきゃよかったかな。
>>6の下から二行目の "insertionsort(*A,j)" がおかしいかと。
"*A" でなく "A" つまり "insertionsort(A,j)" と直せばいいんじゃないかな。
他の部分は合ってると思う。
ついでに最後の "printf("%d",A[j])" は不要と思われ。
0018デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#define swap_int(a, b) { int tmp = a; a = b; b = tmp; }
int *GetFromFile(const char *filename, size_t *size) {
int error_occurred = 1;
int *A = NULL;
FILE *iFP = fopen(filename, "r");
if(!iFP)
perror(filename);
else if(fscanf(iFP, "%d\n", size) < 1 || !size)
perror("cannot read data count");
else if((A = (int *)malloc(*size * sizeof(int))) == NULL)
perror("too few memory");
else {
size_t i;
for(i = 0; i < *size; i++) {
if(fscanf(iFP, "%d\n", &A[i]) < 1) {
perror("cannot read data number");
goto exit_function;
}
}
error_occurred = 0;
}
exit_function:
if(error_occurred)
free(A), A = NULL;
iFP && fclose(iFP);
return A;
}
0019デフォルトの名無しさん
NGNGsize_t i;
for(i = 0; i < size; i++)
printf("%d ", A[i]);
putchar('\n');
}
void InsertionSort(int A[], size_t size) {
size_t max, i;
while(size--) {
for(max = 0, i = 1; i <= size; i++)
if(A[i] > A[max])
max = i;
swap_int(A[max], A[size]);
}
}
int main(int argc, char* argv[]) {
size_t data_num;
int *A = GetFromFile("data", &data_num);
if(!A)
return -1;
PrintArray(A, data_num);
InsertionSort(A, data_num);
PrintArray(A, data_num);
free(A);
return 0;
}
0020デフォルトの名無しさん
NGNG> compute z0
これは何?
0021名無しさん@XEmacs
NGNG0022デフォルトの名無しさん
NGNG文字列を画面に"aaa\n", "aab\n", "aac\n", ... ,
"aaz\n", "aba\n", "abb\n", "abc\n",という具合に次々に表示させて
最後に"zzz\n"を表示させたいのですがどうすれば良いでしょうか?
できれば今は3桁ですが、これが4桁とか5桁とかになって桁が増えても
簡単に対応できるように汎用性を持たせたいのですが・・・。
0023デフォルトの名無しさん
NGNGC++Builder
#include <complex>
#include <cmath>
#include <vcl>
main() {
Graphics::TBitmap *bmp = new Graphics::TBitmap ;
bmp->Height = 100 ; bmp->Width = 100 ;
bmp->PixelFormat = pf1bit ;
std::complex<double> c(0.5,0.1) ;
for(int i=0;i<100;i++) for(int j=0;j<100;j++) {
std::complex<double> z((double)i/50,(double)j/50) ;
for(int n=0;n<10;n++) {
z = z*z*z + c ;
if(std::fabs(z.real())>10.0||std::fabs(z.imag())>10.0||abs(z)>10.0) break ;
}
if(std::fabs(z.real())<10.0||std::fabs(z.imag())<10.0)
bmp->Canvas->Pixels[i][j] = clBlack ;
else
bmp->Canvas->Pixels[i][j] = clWhite ;
}
bmp->SaveToFile("julia.bmp") ;
delete bmp ;
}
002422
NGNG2次元配列に文字列"aaa", "aab"...を次々と格納させてから
表示させたいのですが、どうすればよいでしょうか?
0025デフォルトの名無しさん
NGNGこんなんでいかが?
COLS いぢれば桁数が変わりまつ。
#include <stdio.h>
#include <string.h>
#define COLS 2
int main(void)
{
int i;
char buf[COLS + 1];
memset(buf, 'a', COLS);
buf[COLS] = '\0';
for(; ; )
{
i = COLS - 1;
while(++buf[i] > 'z')
{
buf[i] -= ('z' - 'a');
if(--i < 0)
goto exit_loop;
}
puts(buf);
}
exit_loop:
return 0;
}
002624
NGNG> 2次元配列に文字列"aaa", "aab"...を次々と格納させてから
桁数によってはとんでもない大きさにならないか?
3 桁でも 26 * 26 * 26 * sizeof(char) = 17576 bytes
それでもいいなら書いてみるけど。
0029デフォルトの名無しさん
NGNG> buf[i] -= ('z' - 'a');
こうだわ。
buf[i] -= ('z' - 'a' + 1);
0030デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define COLS 2
#define UNIT (COLS + 1)
#define MIN_VALUE 'a'
#define MAX_VALUE 'z'
#define ACCUR (MAX_VALUE - MIN_VALUE + 1)
int main(void) {
const size_t item_num = (size_t)pow(ACCUR, COLS);
size_t pos = 0;
int i;
char buf[UNIT], (*array)[UNIT] = malloc(item_num * sizeof(char (*)[UNIT]));
if(!array) { perror("メモリが足りません"); return -1;
memset(buf, 'a', COLS); buf[COLS] = '\0';
for(pos = 0; pos < item_num; pos++) {
memcpy(array[pos], buf, UNIT);
i = COLS - 1;
while(++buf[i] > 'z') {
buf[i] -= ACCUR;
if(--i < 0) break;
}
}
for(pos = 0; pos < item_num; pos++)
puts(array[pos]);
free(array);
getchar();
return 0;
}
0031デフォルトの名無しさん
NGNG> while(++buf[i] > 'z') {
こうだわ。
while(++buf[i] > MAX_VALUE) {
003230
NGNG0033デフォルトの名無しさん
NGNGキーボードより入力した整数型データの桁を反転して表示するプログラムを作成せよ。
例)123 → 321
12300 → 321
0 → 0 と表示せよ。
※ポインタを使用すること
0034デフォルトの名無しさん
NGNG(゚Д゚)ハァ?
0035デフォルトの名無しさん
NGNGvoid reverse_int(int *i)
{
int retvalue = *i;
*i = 0;
while(retvalue)
{
*i = (*i * 10) + (retvalue % 10);
retvalue /= 10;
}
}
int main(void)
{
int a = 123;
int b = 12300;
int c = 0;
printf("%d, %d, %d\n", a, b, c);
reverse_int(&a);
reverse_int(&b);
reverse_int(&c);
printf("%d, %d, %d\n", a, b, c);
return 0;
}
ポインタはちゃんと使いますた
0036名無しさん@XEmacs
NGNG分からんならダマってろ
0038デフォルトの名無しさん
NGNG課題で言ってるのはint型の数値を反転表示でなくて
多分こういうことでない?
整数型とは言ってるけどさこういう類の課題は
こっちのことのような気がする
#include <stdio.h>
int main(void)
{
int i, j;
char num[100];
char *pNum;
pNum = num;
/* 数字入力 */
scanf("%s", num);
/* 先頭の0をのぞく(10の位まで) */
for(i=strlen(num)-1; i>0; i--)
if( *(pNum+i) != '0' ) break;
/* 反転表示 */
for(j=i; j>=0; j--)
printf("%c", *(pNum+j));
return 0;
}
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG理由を知りたい
0041デフォルトの名無しさん
NGNG普段からそういうクセを付けておかないと、そうやってサボるようになる。
で、ハマる。周りの人が。
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG成績あがるかもしれんだろ。
0044デフォルトの名無しさん
NGNG学校で出された問題だから
ただCの基本的な使い方を学ぶのが目的で
C言語とあまり関係のないところで
少し頭をひねるような
課題は出ないと思ったから
0045デフォルトの名無しさん
NGNG近づける努力をする事だ。
つーか、手段と目的の区別がついていないような問題を出すセンセイは逝ってよし。
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG>>45の言う通りセソセイによって異なるだろう。
うちのセソセイは無茶苦茶厳しく、講義で行ったことは最低限であり、
プログラムを書くならちゃんと自分で下調べをしないで行うようなことはありえないと、
初回のレポートでクラスの大半の連中に赤点を与えていた。
:一応そのときの課題と、ぺけの理由:
バブルソート、挿入ソート、マージソート、クイックソートを実装し、
それぞれの実行時間を調べよ。
ぺけの理由は、マルチユーザOS上での時間計測を、時計などで図ったため。
最低でもrusageなどを使わなければならない。
もちろん、そんなことは習っていないし、第一C言語の3回目の講義。
0048デフォルトの名無しさん
NGNGC言語と関係ないじゃん
0049デフォルトの名無しさん
NGNGその条件で生き残ったヤシは、相当のヒネクレものデシか?
0050デフォルトの名無しさん
NGNGきっと要領の良い奴=先輩のを写した奴=なんも考えてない奴だろう。
普通に考えて出来ることじゃない。たとえ出来る力があったとしても。
0051デフォルトの名無しさん
NGNGこれではなぜいけないのか、詳しく説明してもらえませんか?
void swap(int x, int y)
{int tmp;
tmp = x;
x = y;
y = tmp;
}
void main()
{int a=3, b=5;
printf("a=%d, b=%d\n", a, b);
swap(a,b);
printf("a=%d, b=%d\n", a, b);
}
実行結果
a=3, b=5
a=3, b=5
0052デフォルトの名無しさん
NGNGまずmainの戻り値はintにしろ。
あと{の横で宣言するのはキモイ。
それとポインタが分からなくてもポインタの記号ぐらい使え。
以上。
0053デフォルトの名無しさん
NGNGいいわけないだろ。なんも考えてないのがバレバレ。ポインタどころか
自分が何をしたいのかさえ分かっていない。問題丸投げしているだけだろ。
0054デフォルトの名無しさん
NGNGワラタ
>>51
変更されたxとyはswap()のローカル変数であり
main()のaとbではないから
0055デフォルトの名無しさん
NGNG別に君がそれでいいなら構わないよ
0056デフォルトの名無しさん
NGNG何がいけないのかが、分かりません
そのプログラムを実行した結果は、それで正しいです
もし、違う結果を出したいのなら
望みの結果が何だったのか詳しく説明してもらえませんか?
0057デフォルトの名無しさん
NGNGフーン 折れん所はもっと厳しかったよ
005851
NGNGわかってると思いますが、
aとbの数字を入れ替えて表示させたかったのですが・・・
0059デフォルトの名無しさん
NGNGポインタ知ってる?
0060デフォルトの名無しさん
NGNG何でmain()の局所変数であるaとbを
それを直接参照出来ないswap()で変更出来ると思ったんだ?
0061デフォルトの名無しさん
NGNG塩と小麦粉知らないヤツにスパゲッティの作り方を教えるのは無理ぽ。
0062デフォルトの名無しさん
NGNG∧_∧
( ;´∀`) ちんこ立ってきた
人 Y /
( ヽ し
(_)_)
0063デフォルトの名無しさん
NGNGパスタならコンビニで買ってきて電子レンヂでチンぽ。
0064デフォルトの名無しさん
NGNGお湯かけてちょっと待てば出来るぞ。
0065デフォルトの名無しさん
NGNG2chで聞いてちょっと待てば出来るぞ。
0066デフォルトの名無しさん
NGNGmain()
{
printf("うんこはうまいです。\n");/*\nがいるのかが気になります。*/
return 0;
}
こんな感じで初歩中の初歩なんですが、
標準関数のプリントエフなんですけど、文字を一列しか表示しない時でも
復改の「\n」は入れるべきなんでしょうか?
よろすくおながいします。
0067デフォルトの名無しさん
NGNG試しに省いてみ?
そんな簡単なことも試せないんじゃ初歩の初歩から君の才能のなさが伺えるよ。
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG俺はchobitsだ。
0070デフォルトの名無しさん
NGNG好みの問題です。その日の気分で使い分けましょう。
もちろん"\n"を省けは2byte節約できるので極力使わない方が良いです。
0071デフォルトの名無しさん
NGNGはいはい、特定の環境依存厨は黙ってる(藁
0072名無しさん@XEmacs
NGNG0074デフォルトの名無しさん
NGNG>わからない宿題若しくは処理があったら私にやらせてくださいm(_ _)m
今までどこいってたんだよ。ちゃんとやれよ
0075C++房c++
NGNG0076C++房 ◆vKuy6bx7T2
NGNG0079C++房 ◆lSltfXLZHI
NGNG0080デフォルトの名無しさん
NGNGトリップ変更はいいから、依頼された課題、早くやれって。
0082デフォルトの名無しさん
NGNG変換するというのが作りたかったんですが上手くいきません。
どこがまずいですか?
それとも根本的に間違ってますか?
#include <stdio.h>
int main(char *argv[])
{
double a;
if (*argv[1] = '-k')
a = *argv[2] / 1.61;
else if (*argv[1] = '-m')
a = *argv[2] / 0.91;
else if (*argv[1] = '-c')
a = *argv[2] / 2.54;
printf("%f", a);
return 0;
}
0083デフォルトの名無しさん
NGNGint main(char *argv[]) //とりあえずここ
0084デフォルトの名無しさん
NGNG勝手ながら明日までなので時間もないんです・・・。すみませんが解いてもらえませんでしょうか。
お願いします。。
∫(0→2)√xdxを解きなさい。
0085デフォルトの名無しさん
NGNG関数じゃないよん。積分とはどういうことかがわかってればかなりの近似値が出せる。
0086デフォルトの名無しさん
NGNGdouble sum = 0.0;
for(i = 0; i < 2;i++)
sum += sqr(i);
printf("答えは%fです",sum);
0087デフォルトの名無しさん
NGNG即レスありがとうございます。ほんとたすかります!
>85
じつはその説明の時に公欠で授業に出ていなかったためわかりませんでした・・・
>86
プログラムさんきぅです!
これは
{
}
の中にいれればokですか?
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGちょっとでもいいんで詳しく説明してもらえませんか?
>89
それって86さんのprintfの中見ですか??
0091デフォルトの名無しさん
NGNGレスどうもです。
どう間違ってるんでしょうか?
0092デフォルトの名無しさん
NGNG>>86だと結局
2
Σ√x
x=0
になっちまうよ。
0093デフォルトの名無しさん
NGNG似たようなもんだろう。
0095デフォルトの名無しさん
NGNGレスありがとうございます!89さんの1.8856・・ってのはどこから出てきたものですか?
0096デフォルトの名無しさん
NGNGそりゃ分かってますがな。ちょこっと補足しただけで。。
>>91
教科書読みな。
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNGそれを知らないと課題はできないのかい?
とりあえずプログラム作ってソース貼ってごらん。
0099デフォルトの名無しさん
NGNG#include<math.h>
double sqr(double);
void main(void);
void main(void)
{
double sum;
long i ;
sum = 0.0;
for(i = 0; i < 2;i++)
sum += sqr(i);
printf("答えは%fです",sum);
}
エラー2でした。。。
0100デフォルトの名無しさん
NGNGsqrtでないかい?
0101デフォルトの名無しさん
NGNGレスありがとうございます!
答えが1.000000になりますが・・・
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNG違うよ、
1
Σ√x
x=0
だよ。
>>101
> 答えが1.000000になりますが・・・
当然そうなるわな。上記参照。
0104デフォルトの名無しさん
NGNGだな、スマソ。
0105デフォルトの名無しさん
NGNGhttp://petitmomo.com/mm/
ここがちょっぴりエッチ系のめぐが運営している出会いサイトです。
もしよかったら使ってみて、、、
ヨロシクです。
めぐ(^o^)-☆
0106デフォルトの名無しさん
NGNG#include<math.h>
double sqrt(double);
void main(void);
void main(void)
{
double sum;
long i ;
sum = 0.0;
for(i = 0; i < 3;i++)
sum += sqrt(i);
printf("答えは%fです",sum);
}
ですか?
0107デフォルトの名無しさん
NGNGだいたい2.41421356ってとこか。
0108デフォルトの名無しさん
NGNGっていうかまず�凅が1なのをやめれ。後の話はそれからだ。
0109デフォルトの名無しさん
NGNGfor(i=0; i<=2; i++)
にしろ
積分の意味考えればそれだけ与えられれば
すぐわかるだろCで積分するのに
数学で積分習ってないなんてことはないよな
0110デフォルトの名無しさん
NGNG俺はあのカクカクの図の意味がわかったのは習ってから2年後だったが。
0111デフォルトの名無しさん
NGNG台形公式
#include <iostream>
#include <cmath>
const double epsilon=1e-6;
const n_max=1000000;
template<class Function>class NIntegrateC{
Function func;
public:
NIntegrateC(Function f):func(f){}
double operator()(double x1, double x2){
double ret=(func(x1)+func(x2))*(x2-x1)/2,prev;
int n=1;
do{
n*=2;prev=ret;ret=0;
for(int i=1;i<n;i+=2)ret+=func(x1+(x2-x1)*i/n);
ret=prev/2+ret*(x2-x1)/n;
}while(std::fabs(ret-prev)>(epsilon)&&n<=n_max);
return ret;
}
};
template<class Function>
NIntegrateC<Function>NIntegrate(Function f){return NIntegrateC<Function>(f);}
double f(double x){return std::sqrt(x);}
main(){std::cout<<NIntegrate(f)(0,2)<<std::endl;}
0112デフォルトの名無しさん
NGNGはい!
>109
ですね。習いましたよ〜
0113デフォルトの名無しさん
NGNGそんなことしてるから一向に甘ちゃんが減らないんだよ。
来週間違いなくまたアホみたいな質問でスレ埋まるぞ。
0114デフォルトの名無しさん
NGNGっていうかもう分からないことはないだろ?
0115デフォルトの名無しさん
NGNGここはそういうスレですよ?タコ助
0116デフォルトの名無しさん
NGNG答え教えるだけ。がもっとも甘やかしだとおもうが。
宿題すら満足にできないバカを助けるためのスレだろ?ここは。
それが気に食わんなら、
自分では賢いと思ってる僕に難解な問題を出してください!
スレとかの方が自分に正直でよっぽどいいと思うが。
0117デフォルトの名無しさん
NGNGんなことは知らん。
つーか、アホみたいな質問で埋まることもない。
丸投げだから。
それぐらい理解れ。
0118デフォルトの名無しさん
NGNGバカという言い方はどうかと・・・
最初は誰でも分からんのだから。
0119デフォルトの名無しさん
NGNG確かに、書く人間がアホなわけで質問自体はある程度の水準だろうな。
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG宿題やらせろスレだったのか。すまん。
勘違いしてた。許してけろ。
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG・このまま去る
まぁ、大人な対応。自分の考え方が世間一般には認められないことを自覚し、より精進してくれることを祈る。
・論理でねじ伏せようとする
そしてねじ伏せられる。
・人の話に聞く耳を持たず必死に周りの神経を逆なでする。
まぁ、いわゆる煽りって奴だ。
・死ぬ
推奨
0124デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNGだったら、それが何でCやC++と関係あるんだ?
0→2の値や√xの値等を変えても動くようにするなら分かるけど…
それとも、このxがCまたはC++の変数なの?
0127デフォルトの名無しさん
NGNG「このまま去る」でファイナルアンサーでおながいします。。。
>>125
アリガ�d
0128デフォルトの名無しさん
NGNGC/C++の宿題。ほかに質問は?
結構仕事もできると自負している文系さんですか?
0129デフォルトの名無しさん
NGNG先生!!何を言っているのか分かりません。
0130デフォルトの名無しさん
NGNGプログラムは趣味だからプログラムで微分積分なんて
やった事がないから分からないけど、定積分を解けと言ったら
そのまま答えが出るんじゃないかと…
0131デフォルトの名無しさん
NGNGそれじゃあ単位もらえんだろ。
0132デフォルトの名無しさん
NGNG解を陽に記述できないような方程式を解きたい時にこそ,
数値計算の出番かと.
0133デフォルトの名無しさん
NGNGだから、(0→2)の部分やxの値(√)が
変化するのだったら分かるって言ってるのですが…
まぁ、xは難しいと思うけど…
0134デフォルトの名無しさん
NGNGそらな。でも、それは宿題の範疇を超えている。
俺も公式で展開してxの値だけ変えろよ。と言うのがスマートと思う。
あのしょぼいサンプルがそのまま採用されるとは思ってなかった。
0135デフォルトの名無しさん
NGNG定積分をC言語で解く宿題が出てるんだってさ。
0136デフォルトの名無しさん
NGNG0137真面目に質問
NGNGsprintfのような書式の変換をおこなう関数で、
「フフフフフフフフフフフフ・・・・・・」という「フ」が連続で出てしまうエラーの経験があるかたいますか?
なぜ、フフフフフ・・・となるのか知りたい。
0138デフォルトの名無しさん
NGNG答えが出るものはプログラムで組む意味がないでしょう
せいぜい、やるとしたら#defineで割り当てるとか…
まぁ、俺なら>>136の式で(0→2)を変数に割り当てるけど…
0139訂正
NGNG#defineで定義する
0140デフォルトの名無しさん
NGNGじゃあ、君が生きてることには意味があるのかい?.....フフフw
0141デフォルトの名無しさん
NGNGまあ、それはこの宿題出した先生に聞いてくれ。
0142デフォルトの名無しさん
NGNGマルチすんなバカ。せっかく
C言語のことは<46>
http://pc3.2ch.net/test/read.cgi/tech/1039328710/
で協力してんのに。
もう絶対協力しない。
0143デフォルトの名無しさん
NGNG引数が少なすぎてたまたまそう言う愉快なメモリ空間を読んだだけじゃないのかと。
>>138
意味も何も宿題。解かないと単位が出ない。単位が出ないと留年する。留年すると年間60〜200
万円は確実に損をする。死活問題。
0144デフォルトの名無しさん
NGNGなんで向こうで話進んでるのに新たにこっちに書くんだい?
スレの流れ嫁よ。
0145デフォルトの名無しさん
NGNGやり方の問題ではない。答えがでりゃいいんだよ!
0146デフォルトの名無しさん
NGNGネタだろう
0147デフォルトの名無しさん
NGNGputs("1.0");
0148デフォルトの名無しさん
NGNGじゃあ>>89。
終了。
0149デフォルトの名無しさん
NGNGだったら定数でOKじゃん
0150真面目に質問
NGNGこの掲示板は初めてなもので、・・・。
常識知らずでした。
次からは気をつけます。
すいませんでした。ペコリ。
0151デフォルトの名無しさん
NGNG何故か話が明後日の方向へ進み始めました。
0152デフォルトの名無しさん
NGNG気になって眠れません!教えてください!
0153デフォルトの名無しさん
NGNGほんっとにお前らって・・・まあ、いいや・・・
0154デフォルトの名無しさん
NGNG悪い、誤解してた。
printf("%f\n"0.885618083164127 + 1.0);
ほれ、手段は選ばず答えをはじき出した。
0155デフォルトの名無しさん
NGNG(゚Д゚)ア?
0156デフォルトの名無しさん
NGNG#include <math.h>
int main()
{
double n, m, dx ;
n = 0 ;
m = 2 ;
dx = ( 2.0 / 3.0 * ( sqrt( m * m * m ) - sqrt ( n * n * n ) ) ) ;
printf ( "%f", dx ) ;
return 0 ;
}
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG( ´,_ゝ`)
0159デフォルトの名無しさん
NGNGprintfが解決されてない。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGhttp://127.0.0.1
0162デフォルトの名無しさん
NGNGすいません。ブラクラ張りたいアドレス教えてください。
モノによっては考えます。
0163デフォルトの名無しさん
NGNGハァ?この掲示板以外ならマルチポストしていいとでも思ってんのか?
0164デフォルトの名無しさん
NGNG煽りはスピードが命。
0165デフォルトの名無しさん
NGNGでるやつです。この時間帯友達を脅かしてみたいです。よろしくお願いします。
0166デフォルトの名無しさん
NGNGうっせぇまどか。
0167デフォルトの名無しさん
NGNG( ´_ゝ`)根暗ですね
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNGttp://www33.tok2.com/home/gob/main.html
0170デフォルトの名無しさん
NGNGここに移動してくれます?
http://pc3.2ch.net/test/read.cgi/tech/1039768013/l50
0171デフォルトの名無しさん
NGNGそれブラクラじゃないだろ
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNGって突っ込めばいいのか?
0182デフォルトの名無しさん
NGNGbisonを使ったCの宿題が出ているのですが、
先生がろくにbisonについて説明してくれないので、
何が何だかさっぱり分からなくて困っています。
0183デフォルトの名無しさん
NGNGこっちのほうがいいかモナー。
宿題手伝いますYO!!
http://pc3.2ch.net/test/read.cgi/tech/1038024989/
0184デフォルトの名無しさん
NGNG「これコピペして、はい、こうなったね。じゃあ、次」
ってなんだよそれって感じです。
VC++のヘッダファイル”stdafx.h”でケプラーの運動方程式を解く
プログラムなんですが、お願いできますか?
0185デフォルトの名無しさん
NGNGヘッダファイルって
#include <xxx.h>
一つしかバリエーション無いが。
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG惑星の航路とか。
0188デフォルトの名無しさん
NGNGごめんなさい、分かりにくかったですね、#include<stdafx.h>のことです。
手順1) f(E) = E-e*sin(E)-M をEで微分してf'(E)を求める。
手順2)導き出したf'(E)をもとに
x1=x0-f(x0)/f'(x0) という式を作る、または
E1=E0-f(E0)/f'(E0) という式を作る
手順3)引数はMとe、戻り値はEの値となるように
newton_raphson(.....)という名前の関数を作る。
Mとeの値を使って、Eの値を求める関数を作る。
こういうヒントはもらってるんですが・・・
0189デフォルトの名無しさん
NGNGF(E)'は前もって作る。
・・・ってあれ?Eって変数っしょ?それが戻り値って?
0190デフォルトの名無しさん
NGNGまず、a.txtと言うテキストファイルがあります。以下にその内容を書いておきます。
3 1 11
5 6 3
そして、この6つの値を、左からa b cの構造体に代入する。構造体は以下のように宣言。
struct y{
int a,b,c;
};
struct y x[2];
どうかわかる人、教えてください。
0191デフォルトの名無しさん
NGNGint *dat[3]
0192デフォルトの名無しさん
NGNGおまえはまずケプラーの法則を完全に分かっているのか?
じゃないと(略
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNGそして、>>188の戻り値EはE1の間違いでしょ。
0195デフォルトの名無しさん
NGNG整理すると
各(e,M)についてf(E)=E-e*sin(E)-M=0
の近似解をニュートン(ラフソン)法で求める
#include<stdafx.h>はこの問題には関係ない
簡単だな。だれかやってやれ
0196デフォルトの名無しさん
NGNGお前がやれ!
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG解析学を一から勉強しる!
0199190
NGNG3 1 11
5 6 3
を、x[0].aに3 x[0].bに1 x[0].cに11
x[1].aに5 x[1].bに6 x[1].cに3
を入れたいのです。
fscanを使ってやる(?)らしいのですが…。
どうかお願いします。
0200デフォルトの名無しさん
NGNGダサいので、
int *x[3] = {&dat.a,&dat.b,&dat.c};
0201190
NGNG0202デフォルトの名無しさん
NGNGそれは何なの?
0203デフォルトの名無しさん
NGNG#include <stdlib.h>
struct y{
int a,b,c;
};
int main(void){
struct y x[2];
FILE *fp;
fp = fopen("a.txt","r");
if(fp==NULL){
printf("fopen failed");
exit(-1);
}
return 0;
}
ファイルを呼んだ後どうすんのか判りません。ウヒ
0204デフォルトの名無しさん
NGNGfscanf() の使い方が分からんと言われると困るが。
0205190
NGNG0206デフォルトの名無しさん
NGNGみんなお前の頭の中が分からんのよ。
0207デフォルトの名無しさん
NGNGfscanf(fp, "%d%d%d", &x[1].a, &x[1].b, &x[1].c);
0208デフォルトの名無しさん
NGNG#include <fstream>
struct y{
int a, b, c;
}
int main()
{
ifstream fin("a.txt");
y x[2];
if( fin ){
fin >> x[0].a >> x[0].b >> x[0].c;
fin >> x[1].a >> x[1].b >> x[1].c;
}
return 0;
}
0209デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
struct y{
int a,b,c;
};
int main(void){
struct y x[2];
FILE *fp;
fp = fopen("test.txt","r");
if(fp==NULL){
printf("fopen failed");
exit(-1);
}
fscanf(fp, "%d%d%d", &x[0].a, &x[0].b, &x[0].c);
fscanf(fp, "%d%d%d", &x[1].a, &x[1].b, &x[1].c);
fclose(fp);
printf("%d %d %d\n",x[0].a, x[0].b, x[0].c);
printf("%d %d %d",x[1].a, x[1].b, x[1].c);
return 0;
}
0210デフォルトの名無しさん
NGNGHAL
0211デフォルトの名無しさん
NGNGstd::はどこ行った?
0212その1
NGNG下のプログラムを作ったんですが
あまりに処理に時間がかかり上手く機能しません。
再帰を上手く使うにはどうしたらよいのでしょうか。
unsigned char minimum(unsigned char GC1,
unsigned char GC2,
unsigned char GC3){
int i;
unsigned char h;
if(GC1<GC2){
if(GC1<GC3) h=GC1;
else h=GC3;
}
else{
if(GC2<GC3) h=GC2;
else h=GC3;
}
return h;
}
0213その2
NGNGif( i == 0 || j == 0) return 0;
GCa = GC(i,j-1);
GCb = GC(i-1,j);
GCc = GC(i-1,j-1);
Gx[i][j] = gx[i][j] + minimum(GCa,GCb,GCc);
GCz = Gx[i][j];
return GCz;
}
int main(){
for (i=0; i<biWidth; i++){
for (j=0; j<=i; j++){
GCz = GC(i,j);
Gx[i][j] = GCz;
printf("Gx[%d][%d] = %d \n",i,j,Gx[i][j]);
}
}
}
0214デフォルトの名無しさん
NGNG時間はかかってもプログラムが正しく動作してることは確認したの?
biWidthを小さな値にして試すとか。
0215212
NGNGbiWidth=10でやってみたら
Gx[i][j] の i,j がすぐ終了するのですが
biWidth=15とかにするともう遅いです。
biWidth=20だとフリーズしたかのよう。
プログラムはとりあえず正しく動作している
と思います。
0216デフォルトの名無しさん
NGNGそこで質問したいんですけど、
基本的にVC++のイベントドリブンって、BIGIN_MESSAGE_MAP以下に動作追加して、
そこで追加して呼び出した関数にコード書いていくって手順でよろしいのでしょうか?
なんかイベントのところがわかりずらかったので・・・・・・・
0217216
NGNGとりあえず夕方見に来ます。
0218214
NGNGGC(i,j-1) → GC(i-1,j-1)
GC(i-1,j) → GC(i-1,j-1)
GC(i-1,j-1)
というように複数回評価しているのを
減らしてあげればいい。
評価した値はGxに保存してあるんで、
2度目以降はその値を返すといい。
0219デフォルトの名無しさん
NGNG質問する場所を間違えてる。
確かVC++の初心者スレがあったと思うので、そっちへ。
0220215
NGNGありがとうございます!
配列使って減らしてみました。
なんとか動きました。どうもです。
0221デフォルトの名無しさん
NGNG>>219が言ってるようにスレ違い。
「誘導」
★初心者にVisual C++を教えるスレ★ Part3
http://pc3.2ch.net/test/read.cgi/tech/1038160750/l50
0223デフォルトの名無しさん
NGNGprintf("あああああ");
と
cout<<"あああああ"<<endl;
はどこが違うんですか?
0224デフォルトの名無しさん
NGNGprintfは改行されない。
cout<<endl;は改行される。
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNGあああああ♪
発音が違う・・・
0227デフォルトの名無しさん
NGNGレスありがとうございます。
という事はprintfに改行コードつければ同じ様に使えるって事ですよね?
(発音以外は)あまり大きな違いは無いと。
0228デフォルトの名無しさん
NGNG「double型は64ビットで表現されており、
有効精度は10進数16桁ほどであるので
それ以上正確に計算できない。これを解決
するには(たとえば100桁まで求めるには)
どうすればよいか?」
教えてください
0229デフォルトの名無しさん
NGNGcpp厨が喜んで語ってくれそうな質問だな・・・。
0230229
NGNG拡張倍精度で計算するとか無しで?
0231デフォルトの名無しさん
NGNG多倍長演算
ttp://www.sra.co.jp/people/miyata/algorithm/multprec.txt
0232デフォルトの名無しさん
NGNG0233bloom
NGNGhttp://www.agemasukudasai.com/bloom/
0234228
NGNGたぶんこれでよいです
どうもありがとうございます
0235デフォルトの名無しさん
NGNG問題
正の整数の掛け算を行う関数kakezan1とkakezan2がある。(ただし、結果が16ビット以下の数値を取り扱う)また
kakeza1とkakeza2の違いは赤字で書いた一行のみである。
1.片方の関数の結果は間違っている。両者を比較して、その理由を説明しなさい。
2.1の説明を踏まえて間違っている結果を示した関数を修正しなさい。修正できるのはそれぞれの関数で一行のみとし、赤
字のところは変えてはならない。また、1での解答に沿ったものでなければならない。
0236235
NGNGlong kakezan1(long x, long y, int n){
long a,b,c,d,e,e1,e2;
int n2;
if( (x>>n)!=0 || (y>>n)!=0) {
n<<=1;
}
if(n==2) {
e=x & y;
} else {
n2=n>>1;
a=x >> n2;
b=x- (a<<n2);
c=y >> n2;
d=y- (c<<n2);
e1=kakezan1(a,c,n2);
e2=kakezan1(b,d,n2);
e=(e1<< n)+( ( kakezan1(a+b , c+d,n2) - e1-e2 ) << n2)+ e2;
}
return e;
}
0237235
NGNGlong a,b,c,d,e,e1,e2;
int n2;
if(n==2) {
e=x * y;
} else {
n2=n>>1;
a=x >> n2;
b=x- (a<<n2);
c=y >> n2;
d=y- (c<<n2);
e1=kakezan2(a,c,n2);
e2=kakezan2(b,d,n2);
e=(e1<< n)+( ( kakezan2(a+b , c+d,n2) - e1-e2 ) << n2)+ e2;
}
return e;
}
int main() {
int i;
long a,b,c;
scanf("%d %d",&a,&b);
c=kakezan1(a,b,16);
printf("==1== %ld %ld %ld \n",a,b,c);
c=kakezan2(a,b,16);
printf("==2== %ld %ld %ld \n",a,b,c);
return 0;
}
0238235
NGNG0239デフォルトの名無しさん
NGNG0240235
NGNGlong kakezan2(long x, long y, int n) の中は e=x * y;です。
お願いします。
0241デフォルトの名無しさん
NGNGとりあえずどっちがあってるかの確認(問1)は終わったのか?
0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG0244235
NGNGkakezan2があっています。
e=(e1<< n)+( ( kakezan1(a+b , c+d,n2) - e1-e2 ) << n2)+ e2;
変えればばよいと思うのですがどう変えたらいいか解らないです。
>242
これは、大学の先生が作った問題です。去年の講義の追試の問題です。
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGn == 1
0247235
NGNGありがとうございます。助かりました。
細かいところまでしないと桁上がりが上手くいかないんですね。
0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNGすべての要素をバラバラに取得できるのがあったと思うからそれ使ってsprintfでもすれば?
0251デフォルトの名無しさん
NGNGんなことどうでもいいから、ソースやれ
0252デフォルトの名無しさん
NGNG>>249さん。見苦しいです。
0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNGあれってオプショナルなの?
stdioとstdlibだけ・・・?
0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNG標準を知らない奴が標準を定義できるわけありません。
あなたが標準を定義しなさい。
0258デフォルトの名無しさん
NGNGif(GC1<GC2){
のあとGC2,GC3比較していないけれど
毎回三分岐して行く、mainではn^2で増える。
けったいなプログラムやな。
0259デフォルトの名無しさん
NGNGtime_t t;
struct tm *tmp;
char buf[11];
t=time(NULL);
tmp=localtime(&t);
sprintf(buf,"%d/%d/%d",tmp->tm_year+1900,tmp->tm_mon+1,tmp->tm_mday);
/* strftime(buf,sizeof(buf),"%Y/%m/%d",tmp); */
printf("%s\n",buf+2); /* yy */
0260デフォルトの名無しさん
NGNG3*3までのなら作れるんですが、N*Nはアルゴリズムからわかりません。
C++はよくわからないのでC希望です。
0261デフォルトの名無しさん
NGNGp://www.sra.co.jp/people/miyata/algorithm/matutil.txt
逆行列(GaussJordan法)
p://www.sra.co.jp/people/miyata/algorithm/gjmatinv.txt
逆行列(上三角行列)
p://www.sra.co.jp/people/miyata/algorithm/invr.txt
0262デフォルトの名無しさん
NGNG以下のCプログラム作成の仕方を教えてください。お願いします。
8*8のチェス盤にクイーンの駒の位置を表す2つの正整数を読み込んで、
クイーンの居る場所は文字Qを、クイーンと同じ行・列・対角線の場所には*を、
その他の場所にはハイフンーを出力。
ただしchar型の1次元配列または2次元配列を用いて、
1行分の文字パターンを1回のprintfで実行できるようにして、
文字を出力する際の変換指定には%Cを用いるようにする。
たとえばx=2、y=3の場合はこのようになります。
--*---*-
--*--*--
*-*-*---
-***----
**Q*****
-***----
*-*-*---
--*--*--
0263デフォルトの名無しさん
NGNG#include <stdio.h>
char* data[] = {
"*------*------*",
"-*-----*-----*-",
"--*----*----*--",
"---*---*---*---",
"----*--*--*----",
"-----*-*-*-----",
"------***------",
"*******Q*******",
"------***------",
"-----*-*-*-----",
"----*--*--*----",
"---*---*---*---",
"--*----*----*--",
"-*-----*-----*-",
"*------*------*" };
int main() {
int x, y, i;
printf("x ?"); scanf("%d", &x);
printf("y ?"); scanf("%d", &y);
for (i = 0; i < 8; i++) {
printf("%c%c%c%c%c%c%c%c\n",
(int)data[y + i][x + 7], (int)data[y + i][x + 6],
(int)data[y + i][x + 5], (int)data[y + i][x + 4],
(int)data[y + i][x + 3], (int)data[y + i][x + 2],
(int)data[y + i][x + 1], (int)data[y + i][x + 0]);
}
return 0;
}
0264デフォルトの名無しさん
NGNGなんか、目から鱗
0265デフォルトの名無しさん
NGNGすげえ、初心者(俺)は思いつかないってば。
0266デフォルトの名無しさん
NGNG通知するようなドライバ。
0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNG面白い発想やね
しかも、これなら他の駒の動きにも
簡単に対応出来るし
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNGrfc1321のMD5というハッシュアルゴリズムなのですが、どうか計算量(オーダ)がわからないでしょうか。
0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNG一気に質問が四倍に。
0274デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
char* data[] = {
"*------*------*",
"-*-----*-----*-",
"--*----*----*--",
"---*---*---*---",
"----*--*--*----",
"-----*-*-*-----",
"------***------",
"*******Q*******",
"------***------",
"-----*-*-*-----",
"----*--*--*----",
"---*---*---*---",
"--*----*----*--",
"-*-----*-----*-",
"*------*------*" };
int main() {
int x, y, i;
char buff[9];
printf("x ?"); scanf("%d", &x);
printf("y ?"); scanf("%d", &y);
for (i = 0; i < 8; i++) {
strncpy(buff, &data[y+i][7-x], 8);
buff[8] = NULL;
printf("%s\n", buff);
}
return 0;
}
0275デフォルトの名無しさん
NGNGケツの穴生成プログラム?
0277デフォルトの名無しさん
NGNG笑わすな
0278274
NGNG「printfで%cを使う」ってのがあったことにいまさら気づいた。
%cを使うと>263みたいにしかできないか。
0279デフォルトの名無しさん
NGNGfwrite() を使えとあれほど・・・
0280デフォルトの名無しさん
NGNGint getint(const char *prompt, int min, int max) {
char buf[256]; int ret;
for(; ; ) {
printf("%s を入力してください (%d〜%d):", prompt, min, max);
if(fgets(buf, sizeof(buf), stdin) && sscanf(buf, "%d", &ret) == 1 && ret >= min && ret <= max)
return ret;
}
}
int main(void)
{
int x, y, a = getint("縦方向の位置", 1, 8) - 1, b = getint("横方向の位置", 1, 8) - 1;
printf(" ");
for(y = 1; y <= 8; y++) printf("%2d", y);
putchar('\n');
for(x = 0; x < 8; x++) {
printf("%d ", x + 1);
for(y = 0; y < 8; y++) {
if(x == a && y == b)
printf("Q");
else if(x == a || y == b || x - a == y - b || x + y == a + b)
printf("*");
else
printf("・");
}
putchar('\n');
}
return 0;
}
0281デフォルトの名無しさん
NGNGで、最後にprintf("%c\n",' ');か。おめでてぇな。
0282デフォルトの名無しさん
NGNGMD5でハッシュキーを求めるのに、ファイルサイズに対してどういうオーダーの計算量が
かかるかって意味でいいの?
0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNG> 1行分の文字パターンを1回のprintfで実行できるようにして、
> 文字を出力する際の変換指定には%Cを用いるようにする。
クソだなー、この仕様。
0285デフォルトの名無しさん
NGNGそもそも間違ってないか?
0286デフォルトの名無しさん
NGNG263 でほぼ実現できてるから間違いではない。
でもクソ
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNG> > 文字を出力する際の変換指定には%Cを用いるようにする。
というか、全角の%は無視するにしても、大文字のCの変換指定なんて見たこ
とないんだが。
つーか、藻前ら精度指定(%.8s)って知りませんか?
0289デフォルトの名無しさん
NGNG何言ってんスかコイツ?
0290デフォルトの名無しさん
NGNG後半は主に>>274に対してかな。
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG>>288のコンパイラに、そんな機能があって
それが、標準だと思ってるんじゃないの?
0293デフォルトの名無しさん
NGNG習い始めて2ヶ月半、まだクラス継承ぐらいまでしかできません。
もしよろしければ何か作る物のアイデアやヒントをいただけないでしょうか?
0294デフォルトの名無しさん
NGNG大変だな。
0295デフォルトの名無しさん
NGNG0296さっぱり
NGNG課題で出されたCがわからなくてこまってます。
課題は2つの行列AとBを加算するプログラム(matadd.c 未完成)をディスクに保存する。
入力用データファイル matadd.dat をディスクに保存する。
ソースプログラムをコンパイルし,実行する。
実行時に次のように入力のリダイレクトを行い,データファイルからデータを読み込ませる。
matadd < matadd.dat
表示された結果とソースプログラム内容を観察し,どのような手順で2次元配列を入力・出力しているか,理解する。
次に,C=A+B を計算し,Cの各要素を行列らしく出力する部分を追加して完成させる。
上と同様に実行して動作確認ができたら,ソースプログラムを提出する。
0297293
NGNG他の人とかぶりそうだけど・・・
0298デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1040048202/165
ここで聞く前に、先に、これを取り消せ
0299デフォルトの名無しさん
NGNGothello
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNG今の時代は囲碁だ
0302デフォルトの名無しさん
NGNG良い解説サイトありませんか?
0303デフォルトの名無しさん
NGNG取り敢えず日本棋院の楽しい囲碁入門教室でも見てみれば
http://www.nihonkiin.or.jp/
0304293
NGNGオセロですか。
オセロは動作が簡単そうな気もするのですが(あんまり考えてませんが・・囲碁はむりっぽ
ただいまポーカーのアルゴリズムを見つけたので、それを見ております。
引き続きいいのありましたら、よろしくお願いします。
0305293
NGNGここで大きな問題が発生しました。
プレーヤーが持ってるカードをCPUが役として出してしまった場合目も当てられない状況に
なってしまいます。
まぁ課題なんだからせこい手を使って、26枚ずつ、あらかじめ決められたカードを
プレーヤーとCPUがもっていて、CPUの役パターンを作り、プレーヤーはそこから引くという風にしてもいいような気もするのですが・・
みなさんだったらどうするのでしょうか?
0306デフォルトの名無しさん
NGNGUNO&麻雀(もちろん脱衣)♪
って書こうと思ったけど、そのレベルじゃね…
でもポーカーくらいインチキなしで作ろうや
0307デフォルトの名無しさん
NGNGまともに組む気はないのか?
0308デフォルトの名無しさん
NGNGナニヲイッテルンダロウ
一人用のビデオポーカーもどきでいいじゃん。
0310デフォルトの名無しさん
NGNGint number;
int mark;
}card[52];
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNGnumberとかmarkとか必要ないじゃん
0313デフォルトの名無しさん
NGNG}card[52];
0315デフォルトの名無しさん
NGNG8文字以上の文字が印字されないことを指定する
0316ダウソ住民
NGNG#include<stdio.h>
main(void)
{
int x;
x=5;/* xを5 */
if(x >= 0){
if(x % 2 == 0){
printf("even\n");
} else {
printf("odd\n");
}
初めて作ったプログラムなのですが、うちのPCには
コンパイラがありません。
これで動くか誰かやさしく教えてほすぃ。
0317デフォルトの名無しさん
NGNGんなもん、見れば分かる
問題は、それが規格として通ってるかどうか
俺の記憶が確かならば、printf系のformatの精度は
実数を表示するため使用するものであって
他の型にも適用出来るとは書いて無かったはず
0318デフォルトの名無しさん
NGNG動きません
0320デフォルトの名無しさん
NGNGまず「{」と「}」の数が同じになるようにしませう
0321デフォルトの名無しさん
NGNG}
}←
}←
0322ダウソ住民
NGNGオオ、なるほど、どうもです!
0323デフォルトの名無しさん
NGNG名前にちょっとワロタ
0324デフォルトの名無しさん
NGNGhttp://live.2ch.net/test/read.cgi/festival/1040234682/
急募!投票ツール作れる方
97式アラファトマシンガンが無効に!
アラファトの票がリセット!
0325超初心者
NGNGvoid main()
{
int i;
double radius1 +=0.2;
double radius2 +=1.0;
for (i=0; i<BUFF-SIZE; i++)
{
コレ↑ってどういう意味なんですか?
0326超初心者
NGNG#define BUFF-SIZE 96
double sinbuff1[BUff-size];
double sinbuff2[BUff-size];
double sinbuff1-2[BUff-size];
void main()
{
int i;
double radius1 +=0.2;
double radius2 +=1.0;
for (i=0; i<BUFF-SIZE; i++)
{
radius1 +=0.2;
radius2 +=1.0;
sinbuff1[i]=sin(rasdius1);
sinbuff2[i]=sin(rasdius2);
sinbuff1-2[i]=sinbuff[i]*sinbuff2[i];
}
}
コレ↑の何処が何の役割を果たしているか教えてください
0327デフォルトの名無しさん
NGNG出直してきなさい。
0328超初心者
NGNG何か一つでも教えてください!
お願いします!!!!
0329デフォルトの名無しさん
NGNGあんなくだらねえことしか突っ込めない厨は相手にするな
double sinbuff1[96];
にしたいんなら
#define BUFF_SIZE 96
だよ
おそらく板書を手で写したんだろうが
ハイフンかアンダスコアかわからんときは
その板書をしている先生にすかさず質問しろ
自分の板書がどれだけわかりにくいか
先生にフィードバックしてやることはオマエのためだ
0330デフォルトの名無しさん
NGNGint function(int a, int b, int c, int d, int e, int f){
return ((a-64) * (b-64) * (c-64) * (d-64) * (e-64) * (f-64) % 47);
}
main() {
FILE *fin, *fout;
int line_1[6], line_2[6], x, y, i, *p, *q;
fin = fopen("ride.in.txt", "r");
p = line_1;
q = line_2;
for(i=0; i<6; i++){
*p = fgetc(fin);
p++;
}
x = function(line_1[0], line_1[1], line_1[2], line_1[3], line_1[4], line_1[5]);
for(i=0; i<6; i++){
*q = fgetc(fin);
q++;
}
y = function(line_2[0], line_2[1], line_2[2], line_2[3], line_2[4], line_2[5]);
fout = fopen("ride.out.txt", "w");
0331330
NGNGfprintf(fout, "GO");
}else{
fprintf(fout, "STAY");
}
printf("%4d%4d", x, y);
fclose(fin);
fclose(fout);
return 0;
}
入力ファイルには大文字の英単語(1〜6文字)が2行書かれてあって、A=1,B=2,Z=26……として、
例えば、"上の行"の単語が"GOOD"であれば"上の行"=7*15*15*4とする。もしこのとき"上の行"%47=="下の行"%47ならば
出力ファイルに"GO"、!=ならば"STAY"と入力するようにしようというプログラムですが、
自分は2時間悩んで上記のような結果しか書けませんでした。訂正すべき点を指摘してください。
0332デフォルトの名無しさん
NGNGfgetcではなくfgetsを使っては?
0333デフォルトの名無しさん
NGNGそれでまともなレスしたつもりなのかと小一時間・・・
0334デフォルトの名無しさん
NGNG> double radius2 +=1.0;
これはちょっとなあ・・・。
0335デフォルトの名無しさん
NGNG相変わらず突っ込めばくだらねえこと
くだらねえと言われると突っ込むこともできなくなる
内容のない香具師だな
0336330
NGNGint function(int a, int b, int c, int d, int e, int f){
return ((a-64) * (b-64) * (c-64) * (d-64) * (e-64) * (f-64) % 47);
}
main() {
FILE *fin, *fout;
int x, y;
char line_1[6], line_2[6];
fin = fopen("ride.in.txt", "r");
fout = fopen("ride.out.txt", "w");
fgets(line_1, 8, fin);
fgets(line_2, 7, fin);
x = function(line_1[0], line_1[1], line_1[2], line_1[3], line_1[4], line_1[5]);
y = function(line_2[0], line_2[1], line_2[2], line_2[3], line_2[4], line_2[5]);
0337330(続き)
NGNGfprintf(fout, "GO");
}else{
fprintf(fout, "STAY");
}
fclose(fin);
fclose(fout);
return 0;
}
>>332の指摘を受けた完成させました。かなりうれしいですが、
ほかにもエレガントな解答があるのでしょうか?
自分のヤツはとても汚いと思いますので。
0338デフォルトの名無しさん
NGNGsin関数を使うとき、引数となる角度の単位はラジアンでお願いします。
0339デフォルトの名無しさん
NGNGint main(void)
{
FILE* fp = fopen("console.txt", "r");
if(fp == NULL)
return 1;
char str1[10], str2[10];
fscanf(fp, "%s", str1);
fscanf(fp, "%s", str2);
fclose(fp);
int count1 = str1[0] - 0x40;
int count2 = str2[0] - 0x40;
for(int i = 1; str1[i] != 0; i++)
count1 = count1 * (str1[i] - 0x40);
for(i = 1; str2[i] != 0; i++)
count2 = count2 * (str2[i] - 0x40);
fp = fopen("console2.txt", "w");
if(fp == NULL)
return 1;
if((count1 % 47) == (count2 % 47))
fprintf(fp, "%s", "GO");
else
fprintf(fp, "%s", "STAY");
fclose(fp);
return 0;
}
0340339
NGNG0341デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
int main(void)
{
for(int i = 0; i <= 360; i+=10)
printf("%.4f\n", sin(3.14159 / 180 * i));
return 0;
}
0342デフォルトの名無しさん
NGNG1. int main(void) と main() の違いは?
2. FILE* fp と FILE *fp の違いは?
3. return 1; とか、 return 0; ってなんかの意味があるんだー。何?
4. >int count1 = str1[0] - 0x40;
掛け算は常に先に優先されて、0*40=0じゃないのか?
0343デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNGError E2140 ride.c 12: Declaration is not allowed here in function main
Error E2140 ride.c 13: Declaration is not allowed here in function main
Error E2188 ride.c 14: Expression syntax in function main
Error E2451 ride.c 14: Undefined symbol 'i' in function main
Error E2379 ride.c 14: Statement missing ; in function main
*** 6 errors in Compile ***
for(int i = 1; str1[i] != 0; i++) を for(i = 1; str1[i] != 0; i++)
に直すとエラーは4つになりました。
0346デフォルトの名無しさん
NGNG> 1. int main(void) と main() の違いは?
型の省略された関数は int 型。
中身の無い仮引数括弧は (void) と一緒。
なので上記 2 つは全く同一。
ただし、ANSI C 準拠とするなら、void は省略できない。
(C++ なら省略可)
> 2. FILE* fp と FILE *fp の違いは?
同一。
ちなみに FILE * fp; でも一緒。
まあ、紛らわしいから FILE* fp なんて書き方はしない方がいい。
> 3. return 1; とか、 return 0; ってなんかの意味があるんだー。何?
main() 内部での return の引数や、exit() 関数の引数に指定された数値は、
そのプログラムを呼び出したオペレーティングシステムに返す。
バッチファイルやシェルスクリプト等で、その値を受け取って、その値によって
その後の動作を変えるという事をするが、そうしていないのなら無意味と言える。
> 4. >int count1 = str1[0] - 0x40;
> 掛け算は常に先に優先されて、0*40=0じゃないのか?
0x40 は数値の 16 進表記であって掛け算ではないのをご存知無い?
0347デフォルトの名無しさん
NGNG> ride.c
おいおい。
339 のコードは C じゃなくて C++ だよ。
0348デフォルトの名無しさん
NGNGなんで?
0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG何の話?
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNGinclude <stdio.h>
int main(void)
{
int i = 0;
printf("12345%n\n", &i);
printf("%d\n", i);
return 0;
}
0355353
NGNG0356デフォルトの名無しさん
NGNGSUSv2にもあるが、C99にはない。obsoleteかな?
0357デフォルトの名無しさん
NGNGprintf("0123456789abcdef%n\n",&i);
で、iに%nまでの文字数が入るのか。
白中田。
0359デフォルトの名無しさん
NGNGデータはキーボードから入力し縦の合計を下に、横の合計を右端に表示するものとする。
利用価値の大きい関数をつくって利用しなさい。枠は必要ありません。
http://www-watt.mech.eng.osaka-u.ac.jp/~tasai/kadai4/node14.html
に似たような問題があるんですけどうまくできません。
0360デフォルトの名無しさん
NGNGn:整数ポインタ:そこまでに出力されたバイト数を(入力引数が指す位置に)格納します。
0361デフォルトの名無しさん
NGNGその入力のフォーマットがわからんと、どうにも回答しようが無い。
0362デフォルトの名無しさん
NGNG簡単な答えはすぐ下にあるようだが、そこからどうしろと?
0363360
NGNG0364デフォルトの名無しさん
NGNG0365360
NGNG0366デフォルトの名無しさん
NGNG0367359
NGNGvoid input(int x,int y);
int sum1(int x,int y);
int sum2(int x,int y);
void output(int x,int y);
int main(int argc, char* argv[])
{
int a,b,n;
printf("何行何列かを入力してください:\n");
scanf("%d,%d",&a,&b);
input (a,b);
sum1(a,b);
sum2(a,b);
output(a,b);
return 0;
}
void input(int x,int y)
{
int i,j,table[10][10];
for( i = 0; i < x-1; i++ ) {
for( j = 0; j < y-1; j++ ) {
/* i, j 要素の入力 */
printf( "table[%d][%d] = ", i, j );
scanf( "%d", &table[i][j] );
}
}
}
0368359
NGNG{
int i,j,sum=0,table[10][10];
for( i = 0; i < x; i++ ) {
sum = 0;
for( j = 0; j < y-1; j++ ) {
sum += table[i][j];
}
table[i][y-1] = sum; /* 計算結果 */
}
return sum;
}
int sum2(int x,int y)
{
int i,j,sum=0,table[10][10];
for( j = 0; j <= y; j++ ) {
sum = 0;
for( i = 0; i < x-1; i++ ) {
sum += table[i][j];
}
table[x-1][j] = sum; /* 計算結果 */
}
return sum;
}
0369359
NGNG{
int i,j,table[10][10];
for( i = 0; i < x; i++ ) {
for( j = 0; j < y; j++ ) {
/* i, j 要素の表示 */
printf( "%d", table[i][j] );
if( j == y-1 ) {
printf( "\n" );
} else {
printf( "\t" );
}
}
}
}
とりあえず自分で作ってみたやつです。うまくいきませんけど。
0370デフォルトの名無しさん
NGNGvoid main(void)
input関数呼ぶ。p->next==NULLまでwhileしてoutput関数呼ぶ。
struct eLIST *input(struct eLIST **pstart)
mainから呼ばれる。sscanfで標準入力からa.exe < listとして読みこむ。appListからの返り値pを返す。appListにstruct gakusei gを渡す。
struct eLIST *appList(struct eLIST **pstart, void * data)
insListにdataとか渡す。insListの返り値を返す。
struct eLIST *insList(struct eLIST **pstart, struct eLIST *after, void * data)
dataをnewObjに渡す。newObjからの返り値でポインタ書き換え。追加されたオブジェクトのアドレスを返す。
struct eLIST *newObj(void data)
メモリ確保してオブジェクト生成。返り値はオブジェクトのアドレス。
void output(struct gakusei *p)
p->data(void *data)ポインタが指してるstruct gakusei型のデータを表示したい。
0371370
NGNGというプログラムなのですが、なぜか4文字以上の文字が出てこないです。
こんな感じ↓
>D:\My Documents\syuku\c>a.exe<list
>input() naibu hiroyuki
>input() naibu monar
>input() naibu gikoneko
>input() naibu sii
>input() naibu morara-
>input() naibu zonu
>Name:hiro
>Name:mona
>Name:giko
>Name:sii
>Name:mora
>Name:zonuQラ
printfじゃなくてputcharで改行までwhileやって表示しても変わりませんでした。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433
の44番にソースを張りました。
よろしくお願いします。
0372>>359
NGNG#include <stdlib.h>
#include <string.h>
struct matrix
{
int x, y;
int *table;
};
void GetInt(const char *prompt, int *i)
{
char buf[256];
for(; ; )
{
printf("%s = ", prompt);
if(!fgets(buf, sizeof(buf), stdin))
continue;
if(sscanf(buf, "%d", i) == 1)
return;
}
}
int GetSize(struct matrix *m)
{
GetInt("表の行数", &m->x);
GetInt("表の列数", &m->y);
m->table = malloc(sizeof(int) * m->x * m->y);
if(!m->table)
return -1;
return 0;
}
0373>>359
NGNG{
int x, y;
for(y = 0; y < m->y; y++)
{
for(x = 0; x < m->x; x++)
{
char prompt[256];
sprintf(prompt, "table[%2d][%2d]", x, y);
GetInt(prompt, &m->table[y * m->x + x]);
}
}
}
void ShowMatrix(struct matrix *m)
{
int x, y, line_sum, total = 0;
printf(" ");
for(x = 0; x < m->x; x++)
printf("%4d", x);
printf(" sum\n");
for(y = 0; y < m->y; y++)
{
printf("%4d", y);
line_sum = 0;
for(x = 0; x < m->x; x++)
{
line_sum += m->table[y * m->x + x];
printf("%4d", m->table[y * m->x + x]);
}
printf("%4d\n", line_sum);
}
0374>
NGNGfor(x = 0; x < m->x; x++)
{
line_sum = 0;
for(y = 0; y < m->y; y++)
line_sum += m->table[y * m->x + x];
printf("%4d", line_sum);
total += line_sum;
}
printf("%4d\n", total);
}
int main(int argc, char* argv[])
{
struct matrix m;
if(GetSize(&m))
return -1;
GetMatrix(&m);
ShowMatrix(&m);
getchar();
return 0;
}
0375デフォルトの名無しさん
NGNG0376359
NGNGどうもありがとうございました。
何の問題もなく動きましたがなにかあるんでしょうか?
0377デフォルトの名無しさん
NGNG構造体を使ってスケジュール管理ソフトを作らなあかんのですけど
助けてください
0378デフォルトの名無しさん
NGNGfree() してない、の事?
このプログラムみたいにすぐ終了してしまうようなプログラムでは気にする必要無い。
常駐して動き続けるような場合は、free() しないと malloc() で確保されたメモリ
をずっと放さないので、消費メモリが無駄に増える。
なので、基本的には不必要なメモリは free() で解放する。
0379デフォルトの名無しさん
NGNG何を?
0380377
NGNG今日始めて習ったばっかりなんです
0381デフォルトの名無しさん
NGNGメモリの無駄を削減
0382デフォルトの名無しさん
NGNG0383デフォルトの名無しさん
NGNG0384377
NGNG4月からif→for→switch→while→ポインタ→構造体→(再来週)バブルソート
と続くそうです。
0385377
NGNG0386デフォルトの名無しさん
NGNGお前の学校では年末の冬休み中にも授業をやるのか?
0387デフォルトの名無しさん
NGNG「スケジュール管理ソフト」の仕様を説明して
0388デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=45&fi=no
0389377
NGNG課題の文章を引用すると
・50件までの予定を書き込める機能
・1年分のカレンダーを表示する機能
{実行時にその日の日付を入力させ、その数値を元に365(366)日分を計算し出力)
・スケジュールを上書き、削除する機能
最低限、上記三つの機能を持ったスケジューラを作成する事
グラフィック関数を使用するとコンパイル時にホストがフリーズするので
絶対に使用しないこと。
という課題です。えらいアバウトな感じですが原文です
UNIX上で動かします
っていうか、グラフィック関数使うとコンパイル時にフリーズって
意味わかんないです
0390デフォルトの名無しさん
NGNG何じゃそりゃ
0391デフォルトの名無しさん
NGNGプ
0392デフォルトの名無しさん
NGNG人任せにするつもりなのだな?
0394デフォルトの名無しさん
NGNGスケジューラって、プログラムのスケジューラじゃなくて
予定を書き込めるカレンダーの事?
0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNG各数値の頻度を求めて表示するプログラムを作成しなさい。
よろしくおねがいします。
0398デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
char buf[256];
int i, table[11] = { 0 }, total_cnt = 0;
puts("0 〜 10 の数値を複数個入力してください。(-1 で中断)");
for(; ; )
{
if(!fgets(buf, sizeof(buf), stdin))
break;
if(sscanf(buf, "%d", &i) == 1)
{
if(i == -1)
break;
if(i >= 0 && i <= 10)
{
total_cnt++;
table[i]++;
continue;
}
}
puts("エラー");
}
for(i = 0; i <= 10; i++)
printf("%2d: %3.1f%%\n", i, table[i] * 100.0 / total_cnt);
getchar();
return 0;
}
0399デフォルトの名無しさん
NGNGint count[11];
main(){
int c;
while((c=getchar()) != EOF) if(c<=10)count[c]++;
for(c=0;c<=10;c++) printf("%d ", count[c]);
puts("");
}
入力はバイナリの整数0-10だが
0400デフォルトの名無しさん
NGNG7行プログラミングですね!
0401デフォルトの名無しさん
NGNGワラタ
398 も詰めれば 6 行で逝けるやろ
0402デフォルトの名無しさん
NGNG最後の行から逆順に出力するプログラムを作りたいのですが
どうもうまくいきません誰か助けてください
#include <stdio.h>
#include <stdlib.h>
main()
{
char c,*c1[200],str[200];
int n,l,i;
n = 0;
l = 0;
while ((c=getchar())!=EOF) {
if (c=='\n') {
n++;
c1[n] = (char *)malloc(l);
c1[n] = str;
l = 0;
} else {
l++;
str[l] = c;
}
}
for (;n>0;n--) {
printf("%s\n",c1[n]);
free(c1[n]);
}
}
0403デフォルトの名無しさん
NGNG> n++;
> c1[n] = (char *)malloc(l);
> c1[n] = str;
せっかく代入したものを上書きしてどうする。
あと'\0'で終端してないしその分も確保してない。
> l++;
> str[l] = c;
Cではインデックスは0から。上のn++も同じ。
0404402
NGNGレスありがとうございます。
せっかく自分のソース貼り付けて指摘してもらったのですが
どうやって実現したらいいのかどうしてもわかりません
具体的にどう修正すればいいか教えてもらえるとありがたいのですが…
それとも根本的に間違ってますか?
0405デフォルトの名無しさん
NGNG突っ込み所が多すぎて何と言えば良いのか分からんので
取り敢えず、やりたいと思われるコードを…
#include <stdio.h>
#include <stdlib.h>
int main (void) {
char *c1[200],str[200];
int n, l, i, c;
n=0;
l=0;
while((c=getchar())!=EOF){
if(c=='\n'){
c1[n]=(char *)malloc(l+1);
for(i=0;i<l;i++) *(c1[n]+i)=str[i];
*(c1[n]+i)='\0';
l=0;
n++;
}else{
str[l]=c;
l++;
}
}
while(n--){
printf("%s\n",c1[n]) ;
free(c1[n]) ;
}
return 0;
}
0407デフォルトの名無しさん
NGNGEOFの直前が'\n'じゃないと、全部表示されないけど
直すのは簡単だから、その部分は自分で直してね
0408405==407
NGNG意味が分からないかも知れないので訂正
EOFの直前が'\n'で終わってないと
その行(EOF直前の最後の行)は(最初の行として)表示されないけど
0409402
NGNGとりあえず一回目のwhileの後に
c1[n]=(char *)malloc(l+1);
for(i=0;i<l;i++) *(c1[n]+i)=str[i];
*(c1[n]+i)='\0';
l=0;
n++;
をもう一回加えましたが
もっとスマートなソースが書けそうなんで
もうちょっとがんばってみます
かさねてありがとうございました。
0410デフォルトの名無しさん
NGNGそれを、もう一回加えるのなら
if(l){}の中に入れた方が良い(実際にはない空行を無くすため)
あと、微妙に他の行と仕様が変わってしまうが(1バイト分)こんな手も…
if(l) {str[l]='\0';printf("%s\n",str);}
0411410
NGNG1回目のwhileの中を他の関数(fgets()等)を使い
もう一度、練り直した方が良いと思う
0413デフォルトの名無しさん
NGNGpublic:
int memberA
};
class CLASS_B{
public:
int memberB
};
class CLASS_C{
public:
CLASS_A instanceA;
CLASS_B instanceB;
};
instanceB から instanceA の memberA を参照したいです。
どうしたらいいでしょう?
0414デフォルトの名無しさん
NGNGどこまで改変して良いのかわからんが…
CLASS_BにCLASS_C*のメンバを追加(pointerC)
CLASS_CはinstanceBに自分自身を渡し、instanceBからは、
pointerC->instanceA.memberA
0415デフォルトの名無しさん
NGNG下記のソースなんですが、Main.cppでpBB = new BB( );を行うと
リンカーエラーがでてしまいます。
因みに AAをexternしてMain.cppから呼ぶのはOKでした。何が原因か教えて下さい。
Test.cpp
BB *pBB;
Test.h
class AA
{
int a;
};
class BB : public AA
{
int b;
};
extern BB *pBB;
Main.cpp
#include "Test.h"
void main( void )
{
pBB = new BB( );
}
0416415
NGNG0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNG>>415は真剣に聞いてるんですが、教えて下さい。
0419413
NGNG教えて君で申し訳ないのですが、そうすると
CLASS_B のメンバに CLASS_C のポインタを
CLASS_C のメンバに CLASS_B のインスタンスを
それぞれ入れることになるんですよね。
そういう交差したケースって、どうやったら実装できるのでしょうか。
0420デフォルトの名無しさん
NGNGお前らカス共に教えられなくて自力で解決して嬉しいです。
0421デフォルトの名無しさん
NGNGプッ・・・
カスに教えを請うなんて・・・
お前ってもしかして・・・
0422デフォルトの名無しさん
NGNG★http://finito-web.com/kanemou/index.html★
★★★★★★★★★★★★★★★★★★★★
(●^o^●)(●^o^●)(●^o^●)
0423てり
NGNGどういうエラーなのでしょうか?
わかる人いたら教えてくださいm(_ _)m
In function `enum yn dpssum(int *, int, int)':
`k' undeclared (first use this function)
(Each undeclared identifier is reported only once
for each function it appears in.)
`p' undeclared (first use this function)
0424名無しさん@XEmacs
NGNG関数 dpssum 内で、未宣言の k、p という識別子を使用している。
0425デフォルトの名無しさん
NGNGほう、enumを有効活用してますな。
0426(・∀・)
NGNG0427デフォルトの名無しさん
NGNG|がんがれ
↓
0428デフォルトの名無しさん
NGNG七行プログラムご苦労
エラーばかりだがな
0429デフォルトの名無しさん
NGNG「西暦と月を入力すれば、その月のカレンダーを表示するプログラミング」
を教えてください。
自分では全くわかりませんでした。
どうか、よろしく!!
0430デフォルトの名無しさん
NGNGどこまで分かってるか書け。
0431デフォルトの名無しさん
NGNGどっちにしろウザイからやめろ
http://pc3.2ch.net/test/read.cgi/tech/1038024989/665
0432デフォルトの名無しさん
NGNG全くわかりません。C言語習い初めて3ヶ月くらいなので。
でも、calという関数を使うのはなんとなくわかりました。
0433デフォルトの名無しさん
NGNG全く分からないんじゃ何も教えようがないだろ。
(つか3ヶ月習って全く分からないって。。。ネタダタ-のか?)
0434デフォルトの名無しさん
NGNGタイトル見れ。
0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNGパンキョーでやってるだけなので。当方文系学生。
0437デフォルトの名無しさん
NGNGまじなんでよろしくっ
0438デフォルトの名無しさん
NGNG・エロ本。
・保健体育の教科書
・エロビデオ
この最強3点セットで今日からあなたもCの達人に。
0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNG最低限必要なものはコンパイラとテキストエディタ。
コンパイラは「Cは俺に聞け」スレの>2参照。
>>438
それではCの知識は付いても達人には成れない。
0441デフォルトの名無しさん
NGNG「はじめてのC」という教本も忘れずにな(ワラ
0442デフォルトの名無しさん
NGNG0443超初心者
NGNG{ int i;
double ave=0.0;
for(i=0;i<n;i++){
ave+=height[i]; }
ave/=n;
return(ave);
}
こういう関数を作ったら
Error: expected data def of 'heikin', not func def
Internal error: func 254
こういうエラーがでます。原因がわかりません。
教えてください。
0444デフォルトの名無しさん
NGNGよくわからないエラーだが、関数のプロトタイプ宣言をしてもダメ?
0445超初心者
NGNG#include <math.h>
を宣言しています。全プログラムを載せた方がいいでしょうか?
長くなりますが
0446デフォルトの名無しさん
NGNG載せてみたら?お互い何かの勉強になるかもしれない。
今2chは連続書き込み制限をしているようなので、串を変えながら
書き込むとよい。
0447デフォルトの名無しさん
NGNGheikin関数のプロトタイプのことを逝っているんだろ。
C++で呼び出しを行わなければエラーにはならないと思うけど。
0448超初心者
NGNG#include <math.h>
inpdata(int n,double height[]);
double heikin(int n,double height[]);
double hyoujun(int n,double height[],double ave);
void maxmin(int n,double height[],double *max,double *min);
main()
{
int n;
double height[50],ave,sd,max,min;
inpdata(n,height);
ave=heikin(n,height);
sd=hyoujun(n,height,ave);
maxmin(n,height,&max,&min);
printf("平均値=%3.1lf\n",ave);
printf("標準偏差=%3.1lf\n",sd);
printf("最大値=%3.1lf\n",max);
printf("最小値=%3.1lf\n",min);
return(0);
}
0449超初心者
NGNG{
int i;
for(i=0;i<n;i++){
printf("NO.%d=",i+1);
scanf("%lf",&height[i]);
}
double heikin(int n,double height[])
{
int i;
double a=0.0;
for(i=0;i<n;i++){
a+=height[i];
}
a/=n;
return(a);
}
0450超初心者
NGNG{
int i;
double sd,hensa;
for(i=0;i<n;i++){
sd+=pow(height[i]-ave,2);
}
hensa=sqrt(sd/n);
return(hensa);
}
void maxmin(int n,double height[],double *max,double *min)
{
int i;
double min=height[0],max=height[0];
for(i=0;i<n;i++){
if(*max<height[i])
*max=height[i];
if(*min>height[i])
*min=height[i];
}
}
0451デフォルトの名無しさん
NGNGこの問題とは関係ないが、printfには%lfはないはず。
0452超初心者
NGNG以上の448-450のプログラムです。
原因がどうしてもつかめません。
お願いします。
0453デフォルトの名無しさん
NGNGinpdataでかっこの対応がおかしい
0454超初心者
NGNGアドバイスありがとうございます。
0455デフォルトの名無しさん
NGNGプロトタイプの宣言と言うのは関数を呼び出す前に必要な宣言
double heikin(int, double []); /* この行の事 */
int main(void){
/* 適当 */
heikin(i,d);
/* 適当 */
}
double heikin(int n,double height[]) {
/* 適当 */
}
0457453
NGNG0460超初心者
NGNG一個 } が抜けてました。
そして450のdouble min=height[0],max=height[0];
を*min=height[0]; *max=height[0];にしたらエラーが無くなりました。
}が原因だったようです。
453さん 455さんどうもありがとうございます。
そして455さんすみません。僕初心者な者でまだ何がなんだかわからないことが多くて
こういうことになってしまいました。
0461デフォルトの名無しさん
NGNGvoid maxmin(int n,double height[],double *max,double *min)
{
int i;
double min=height[0],max=height[0];
for(i=0;i<n;i++){
/* 以下略 */
は
void maxmin(int n,double height[],double *max,double *min)
{
int i;
*min=height[0],*max=height[0];
for(i=1;i<n;i++){
/* 以下略 */
0462デフォルトの名無しさん
NGNGプレゼントを買って渡します。その結果、自分が何円儲けたか(損したか)を
出すプログラムです。計算は言わなくても分かると思いますが、こうです。
(もらったプレゼントに使ったお金の合計) - (自分がプレゼントを買うのに使ったお金の合計)
= $(儲けた、あるいは損した)
入力ファイルからグループの情報を読み取り、
出力ファイルに計算結果を書き込むわけですが、
入力ファイルと出力ファイルのフォーマットを次のレスにします。
0463462
NGNG1行目:グループにいる人数(2〜10)
2行目〜(グループの人数+1)行目:グループにいる人の名前(14英字まで)、
1人につき1行(グループの人数+2)行目〜終わり:グループの中の1人につき1グループ、
よって(グループの人数)個のグループからなる。1グループ内のフォーマット:
1行目には名前(誰があげたか)、2行目には使ったお金(0〜2000)と
プレゼントをあげた人数。(空白で区切られる)3行目からはプレゼントを
あげた人の名前を1人につき1行並べる(誰にあげたか)。
0464462
NGNG1: 5
2: dave
3: laura
4: owen
5: vick
6: amr
7: dave
8: 200 3
9: laura
10: owen
11: vick
12: owen
13: 500 1
14: dave
15: amr
16: 150 2
17: vick
18: owen
19: laura
20: 0 2
21: amr
22: vick
23: vick
24: 0 0
0465462
NGNG出力ファイルは(グループにいる人数)行から成ります。
各行はグループにいる人の名前とその人がどのくらいのお金を儲けたかという値から成ります。(空白で区切る)
出力ファイルの例です。(上の入力ファイルの場合)
1: dave 302
2: laura 66
3: owen -359
4: vick 141
5: amr -150
0466デフォルトの名無しさん
NGNGって、手形でもプレゼントされたのかと思ってみたり
0467462
NGNGプレゼントについては直接関係ないから手形でもいいけど。
むしろ手形と考えたほうが分かりやすいかも。
誰かこのプログラム解ける人いませんかぁ〜?
0468デフォルトの名無しさん
NGNG入力フォーマットの意味がわからん。
0469デフォルトの名無しさん
NGNG0470デフォルトの名無しさん
NGNG0471462
NGNGどこらへんがどうわからんのかを言ってくれないと
こちらも説明できん。
0472462
NGNGサンプルに基づいて説明しようと思う。
それで分かってくれればいいんだが。だれか手強頼む!
1: 5 /* グループにいるヤツの人数(この場合は5人) */
2: dave /* グループにいるヤツの1人目 */
3: laura /* 2人目 */
4: owen /* 3人目 */
5: vick /* 4人目 */
6: amr /* 5人目 */
7: dave /* プレゼントをあげようとしているヤツ(1番目) */
8: 200 3 /* いくら$使ったか、何人にあげるか */
9: laura /* 誰にあげるか(1人目) */
10: owen /* 誰にあげるか(2人目) */
11: vick /* 誰にあげるか(3人目) */
12: owen /* プレゼントをあげようとしているヤツ(2番目) */
13: 500 1 /* いくら$使ったか、何人にあげるか */
14: dave /* 誰にあげるか(1人目) */
15: amr /* プレゼントをあげようとしているヤツ(3番目) */
16: 150 2 /* いくら$使ったか、何人にあげるか */
17: vick /* 誰にあげるか(1人目) */
18: owen /* 誰にあげるか(2人目) */
19: laura /* プレゼントをあげようとしているヤツ(4番目) */
20: 0 2 /* いくら$使ったか、何人にあげるか */
21: amr /* 誰にあげるか(1人目) */
22: vick /* 誰にあげるか(2人目) */
23: vick /* プレゼントをあげようとしているヤツ(5番目) */
24: 0 0 /* いくら$使ったか、何人にあげるか */
0473デフォルトの名無しさん
NGNGデータの20行目が「0 2」なのは、スマイルを二人にあげた、ってこと? (w
// 問題文中にあった仕様は C流のコメント /* */ で囲んだ。
// いろいろ手抜きなので必要な変更や追加はご随意に
// エラーチェック省略(入力の順序・内容は仕様通りと仮定している、など)
// 入力は標準入力,(>>464 の書式から、行番号(とコロン)を除いた形を期待している)
// 書式(変数の宣言)は C++ as better C
長すぎって怒られたので次レスで。
0474デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef 
    struct _balance_t {
        char* name;     // 名前
             // >>463 の解答としては name[15] にしてコードを変えてもいいんだろう
        int   balance;  // 収支 /*自分が何円儲けたか(損したか)*/
    } btag;
int members = 0;    // 登場人物の数 // グローバルなのはちょっとカコワルイが許せ
btag *table = NULL; // 人数の収支計算表(を作る場所)
    // これも >>463 の解答なら table[10] で間に合うことは間に合う
int name2index(char* who) { // ただのリニアサーチでテーブル内の人を探す
    for (int j = 0; j < members; ++j) {
        if (strcmp(table[j].name, who) == 0)
            return j;
    }
    return -1;  // んな奴いねーよ
}
// 続く
0475462
NGNG>データの20行目が「0 2」なのは、スマイルを二人にあげた、ってこと? (w
その通り。このプログラムは皮肉も含むのだそうだ。
>長すぎって怒られたので次レスで。
誰に??
0476デフォルトの名無しさん
NGNG    /* 1行目:グループにいる人数 */
    char buf[1000];
    gets(buf);
    members = atoi(buf);
    table = (btag*)calloc(members, sizeof(btag));
        // table[各要素].balance が零に初期化されるべきことに注意。
        // ここでは calloc がゼロに初期化するので、それ以外の初期化はしない
    /* 2行目〜:グループにいる人の名前 */
    for (int m = 0; m < members; ++m) {
        gets(buf);
        table[m].name = strdup(buf);
    }
    while (gets(buf)) { /* 1行目には名前(誰があげたか)*/
        int idx = name2index(buf);  // テーブル上での添え字を求めておく
        if (idx < 0) {
            printf("ハァ? %s なんてシラネ。\n", buf);
            continue;   // ちょっとはエラーチェックもしておこう
        }
// 続く
0477デフォルトの名無しさん
NGNG        gets(buf);
        int price, count;
        sscanf(buf, "%d %d", &price, &count);
        printf("%sは、$%dのプレゼントを %d個あげた。\n", table[idx].name, price, count);
        /* 自分がプレゼントを買うのに使ったお金の合計 */
        table[idx].balance -= price * count;    // 支出額が確定するので、おもむろに引く
        for (int to = 0; to < count; ++to) {
            gets(buf);  /* 誰にあげたか */
            int toIdx = name2index(buf);
            table[toIdx].balance += price;  // プレゼント1個分の収入
                // もらった分の「合計」は、このループを何回か通って
                // データをすべて読んだら確定する
            printf("...%sにあげた。\n", table[toIdx].name);
        }
    }
// すまん、結構長かった。まだ続く
0478デフォルトの名無しさん
NGNG    /* その結果、自分が何円儲けたか(損したか)を出す */
    printf("\n*** 収支報告 ***\n");
    for (int p = 0; p < members; ++p) {
        printf("%-14s %5d\n", table[p].name, table[p].balance);
        /* 名前(14英字まで)*/
            // ...って書いてあったんで %-14s にしてみた(マイナスは左に揃えるため)
    }
    return 0;
}
// 以上
0479デフォルトの名無しさん
NGNG投稿内容があまり長いと、(2ちゃんねるの)掲示板プログラムにおこられるのさ。
長いプログラム用の貼り付け場所がどっかでガイドされてたはずなんだが、
見つけられなかったので分割して貼っちまいました。
0480473
NGNG> 2行目には使ったお金(0〜2000)とプレゼントをあげた人数
ってのは、予算総額が書いてあって、それを「あげた人数」に等分したってことか...
上記のプログラムだと、「単価と個数」と解釈して書いちゃったので
あとで変更点を書きますですよ。
0481462
NGNGとりあえずここまでやって頂いてご苦労さん。
>予算総額が書いてあって、それを「あげた人数」に等分したってことか
その通り。説明不足でスマソ。
1つ気になるけど、なぜファイルを扱わないのだろうか?
0482デフォルトの名無しさん
NGNG0483473
NGNG> なぜファイルを扱わないのだろうか
あとで書けばいいから。(俺にとって)ファイルをいじるのは問題の本質ではないので、
エラーチェックと同様後回しにしちゃうんだ。
このまま本気で(実用プログラムとして)書き進む場合は
ファイル名を指定してもしなくてもいいように書くよ。
変更点は…とりあえず、>>477 の真ん中へん
   table[idx].balance -= price * count; // 支出額が確定するので...
を
   table[idx].balance -= price; // 支出額が確定するので、おもむろに引く
   if (count > 0)
      price /= count;// 単価に変換する。ただし小数点以下切り捨て
にする。
切り捨てした分の誤差が出て、会計報告としては失格なので
データ形式を変えるなどの工夫はやってください。(逃げる(w)
(float balance; にして
    float unitPrice = 0.0;
    if (count > 0)
       unitPrice = (float)price / count;// 単価に変換する
    // ...
       table[toIdx].balance += unitPrice; // プレゼント1個分の収入
にするとか。そん時ゃ最後のprintf() も %d → %f などに。)
0484473
NGNG「手でデータを打ち込んで試すんかいな?」って意味だったらいやなので念のため補足。
このままでリダイレクトで「ファイルから読んで」「ファイルに書く」ってことはできるよ。
0485462
NGNGありがとうございました。あとは自分で完成させます。
0486デフォルトの名無しさん
NGNGご苦労さんって目下の者に対して言う言葉だって知ってる?
社会に出てから上司に向かって「ご苦労」なんて絶対言わないように。首飛ぶよ。
0487デフォルトの名無しさん
NGNG6x+3y+4z-61=0の条件の下でのx^2+y^2+z^2の最小値
を求めるプログラムを教えてください。
0488デフォルトの名無しさん
NGNGアメリカマンセ。
0489デフォルトの名無しさん
NGNG郷に入らば郷に従えというやつよ。
俺も自分の部下に「ご苦労」なんて言われたらむかつくな。
0490デフォルトの名無しさん
NGNGmin x^2+y^2+z^2=r^2(とおかせてね)
subject to f(x,y,z)=6x+3y+4z-61=0
f(x,y,z)=0は平面の式になってますよね。
んで、原点からその平面までの距離rの2乗を求めよ、って問題ですね。
答えは
r = |0+0+0-61|/√(6^2+3^2+4^2) = 61/√61
∴ r^2 = 61
だと思う。
Cソースはしばし待て。
0491デフォルトの名無しさん
NGNG0492490
NGNG#include<stdio.h>
main()
{
double a=6.0, b=3.0, c=4.0, d=-61.0, r2;
r2 = d*d/(a*a+b*b+c*c);
printf("%f\n", r2);
}
0493デフォルトの名無しさん
NGNG別にそうとは限らん。あんたがしばしばさように使うというだけだろ
0494デフォルトの名無しさん
NGNGありがとうございます!!!
感謝です!!
0495デフォルトの名無しさん
NGNG日本語知らなさすぎ。
>>491
ダメ。「お疲れ様」。
0496462
NGNG>fprintf(out, "%s %d\n", table[p].name, table[p].balance);
こうすると、%sの後に勝手に改行が入るようになるのは何故?
>table[idx].balance
>table[toIdx].balance
ここのidxとtoIdxとは何を表すのですか?
0497デフォルトの名無しさん
NGNGそうだそうだ。別に目上の者に使ったって良いじゃないか。
俺はよく人にドアを開けてもらったときや物を取ってもらったときに
感謝の気持ちを表すために「うむ、ご苦労。」と言っているぞ。
0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG相手に悪気がないのはわかってるけどあまりいい気はしないなw
>>488
英語でも Thank you. の他に Appreciate you. とかあるよ。
0503デフォルトの名無しさん
NGNGこのスレは学生さんばかりなのかい?
上司に「ご苦労さん」なんて言えるわけ無いだろ。会社に行けば嫌でも分かるよ。
失敗しでかす前にこのスレでちゃんと社会勉強できてよかったな。
0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNG一応>>481嫁。
「ご苦労様」は「ご苦労さん」よりマシだとは思うが、どっちにしろ上司に使う言葉じゃない。
>>501
意味分からん。
0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNGスレ違いを延々続けるヤツは厨房。
0508デフォルトの名無しさん
NGNG自分の発した言葉に責任をもてない奴が増えてきてるな。
>>507
同意。
スレ違い発言なので漏れも厨房。終了。
0509デフォルトの名無しさん
NGNGソシュール言語学を知らんな?
常のことだがここも厨房(含厨房社会人)が多いな
0510デフォルトの名無しさん
NGNG> 感謝の気持ちを表すために「うむ、ご苦労。」と言っているぞ。
へへー、御殿様。m(__)m
0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG知っているだけじゃ話にならんが・・・
あんた日常的に使ってるの?
0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG使う!?
0516デフォルトの名無しさん
NGNG2ちゃんねるの馬鹿は特にそうですね。
0517デフォルトの名無しさん
NGNG( ヽ
ヽ ノ ヽ
ゞ、 丶
ヽ ノ \ _ _, ─' ─ ─ ,、 _
|\_ ノ\ ─=・=― ─=・=―
/⌒\ 丶 / / ヽ-、___ ,-r' ヽ.
│ \ 人 |/⌒ヽ | ! ヽ | ..|
/ \ / | | ! ! . ! |
( \ ヽ / / | ! ! . ! ..|
( | / ) | ! ! ...|
ヽ \ ヾ 丿(( ̄)/ 'i `'ー--‐‐'´ ノ
\ ヾ丿 ヽソ `''ヽ ヽ. ─''
ヽ ノ _ __/ ヽ __ノ:: 人__
|:::: 丶ー ̄ :: ::::::::::::::::: ̄ノ ̄ー-- ,,.__
\:::::::: ::::::::: ヾ ソ 丶 ヽ
ヽ:::: ヽ/ :|
\_| ::::::::: : |
| :: ミ: :: ::...........:::::|
. .|:::::: . ミ:::: ::::::::i :::::::::::::::|
.|:::::: ヾ:::: ::::::::::::| :::::::::::|
| ::::::: ミ: :::::::::::| :::::::::::|
|:::::: ノ ヾ :::::::::| :::::::::::|
0518513
NGNGようするに、ソシュール言語学を念頭において、
話をしているかということを俺は言いたい。
0519デフォルトの名無しさん
NGNG君もレスしているから、馬鹿の仲間入り!!
0520デフォルトの名無しさん
NGNG2ちゃんねるはそういう所だという噂が流布されてるですよ
0521デフォルトの名無しさん
NGNGこのような水掛け論になるのだ
とか言ってみる
0522デフォルトの名無しさん
NGNGなんの引用ですか?
0524デフォルトの名無しさん
NGNG0525デフォルトの名無しさん
NGNG> 基本的に本は読まないポリシーだが、
> ちなみにそれはどこの出版社から出ているのですか?著者は誰ですか?いくらですか?
プログラマに向いてない今すぐやめろ。
0526デフォルトの名無しさん
NGNG言語仕様書を理解・暗記していると考えてみるテスト
当然RFC丸暗記
0527しろーと ぷろぐらまー
NGNGお願いします m(__)m
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main(int argc, char * argv[]) {
int i, n = 404;
char * str;
str = malloc(10);
for (i = 0; i < 9; i ++) {
if (n & (int) pow(2, i)) {
* (str + 8 - i) = '1';
} else {
* (str + 8 - i) = '0';
}
}
* (str + 9) = 'エ0';
printf("%s\n", str);
str += 2;
printf("%s\n", str);
strncpy(str, "011", 3);
printf("%s\n", str);
n = 0;
for (i = 0; i < 7; i ++) if (* (str + 6 - i) == '1') n += (int) pow(2, i);
printf("%d\n", n);
free(str -= 2);
return 0;
}
0530デフォルトの名無しさん
NGNGint main()
{
int n = 404 ;
int ans = ( 404 & 0x7F );
ans = ( ans | 0x30 );
printf( "%d\n" , ans );
return 0 ;
}
/* 上位3bitっていうのを、7bitの中の上位3bitと判断しました
8bit中なら 0x30の代わりに0x60を使ってください */
0531デフォルトの名無しさん
NGNGvoid Test3Func(UINT& ref){
_asm{
mov eax,ref
mov ebx,[eax]
or ebx,48
and ebx,63
mov [eax],ebx
}
}
0532デフォルトの名無しさん
NGNGお、入出力をファイルを開くように書き換えたようだね。
じゃあきっと gets() を fgets() に置き換えたでしょう。
gets()は入力の改行を読み捨てるが、fgets() だと改行はデータの一部になるよ。
だからきっと table[p].name の末尾に改行がついているよ。
末尾の改行を潰すには、例えば次のように書く。
char* p = table[p].name;
p[ strlen(p) ] = '\0'; // 改行かどうか調べずに、とにかく末尾を潰しちゃってる
idx は、(大き目のループの中で)あげた人の(calloc() とその下のループで作ったデータの
配列上の)位置、toIdx はもらった人(プレゼントのあて先の人)の位置。
C だと、tabl;e["dave"] のように名前(文字列)を添え字に使ってデータを読み書きすることは
できないので、ちょっと遠回りしているのだ。
0533デフォルトの名無しさん
NGNG下7bitに384加えるのか?
0534530
NGNG下7bitに384加えるのか?
(・ω・ )モニュ?
俺カーヨ
ans = ( ans | 0x30 ); はansと0x30の論理和
つまり
| 01
0 01
1 11
だから
0010110
論理和 0110000
で
0110110
になるんさね
0535530
NGNG鬱だ・・・
ついでに補足
>>528さんは2進数に変換するのもプロセスの一部として捉えてらっしゃるみたいで
漏れは手抜き思考だから2進数に変えるのは考え方として捉えたのね
だから下位7bitを取り出すのに論理積を使って、
011を付加するのに論理和を使ってるの
0536デフォルトの名無しさん
NGNG>int n = 404 ;
>int ans = ( 404 & 0x7F );
nは何に使うのかと小一時間…(略)
0537デフォルトの名無しさん
NGNGふと思いついた解釈。
110010100
0010100 - 9 ビットを右から7 ビット残す
0110010100 - 上位3 ビットを011とする
…一緒やん(w
それじゃあんまりなんで、
/* 上位3bitっていうのを、7bitの中の上位3bitと判断しました */
#include <stdio.h>
char* f(char *s) {
int n = 0;
while (*s)
n = n * 10 + *s++ - '0';
n = n & 15 | 48;
do {
*--s = n % 10 + '0';
} while (n /= 10);
return s;
}
main() {
char s[] = "404";
puts(f(s));
return 0;
}
0539デフォルトの名無しさん
NGNGよし、おもいきって(以下略
0540528 ◆F52DmOxJlc
NGNG>2進数に変換するのもプロセスの一部として捉えて
はい、そのとおりです。
「10進数の404を2進数に変換し…これを10進数に変換するプログラム」
となっているので「ちゃんと2進数にしましたよ」と主張するために
ところどころで printf() してます。
でもなんか論点ズレてる気が…。
実は>>527さんが10進数と2進数を異なるデータ型と勘違いしてたりするとイヤソな感じですw
0541しろーと ぷろぐらまー
NGNGで、結局どれがあなたの求めるものに近い?
2進数に変換云々てのはただの考え方にすぎないの?
0543デフォルトの名無しさん
NGNGはっきり言って意味が分からんのだが
>10進数の404
って言うのは、
char s[]="404";
なのか
int n=404;
の意味であるのか
>2進数に変換し
って言うのは
char s[]="110010100";
なのか
int n=0b110010100; /* 普通のCには無いが2進表現の定数 */
の意味であるのか
>10進数に変換する
の意味は…以下略…をはっきりせい
0544デフォルトの名無しさん
NGNG0545しろーと ぷろぐらまー
NGNG0546デフォルトの名無しさん
NGNG>途中経過はintでもchar s[]でもどちらでも良いんで
それだと意味が分からんが・・・
表示する必要はないという解釈でよろしいですね?
0548デフォルトの名無しさん
NGNGint n=404;
n=(n&127)|48;/*変換終了*/
0549しろーと ぷろぐらまー
NGNG0550デフォルトの名無しさん
NGNG527 しろーと ぷろぐらまー 02/12/21 23:25
548 デフォルトの名無しさん sage 02/12/22 02:53
3時間半かかって結論がそれかよw
0551548
NGNGint n=404;
n=(n&63)|48;/*変換終了*/
0552デフォルトの名無しさん
NGNG括弧必要なの?
0554デフォルトの名無しさん
NGNGコメントにかいとけば?
int n=404;
/* 0x0000007Fと論理積を取り下位7ビットを取り出す*/
n &= 127;
/* 0x0000003Fと論理和を取る*/
n |= 48;
0556デフォルトの名無しさん
NGNG別にいらないと思うけど。それが何か?
括弧付けてる方がいい。
0557デフォルトの名無しさん
NGNGn=(a+b)-c;
あなたはこんな風にかいているの?
0558デフォルトの名無しさん
NGNGにしちまえば良いような気が。
0560デフォルトの名無しさん
NGNGあのねえ、、極論ぶちまけるんじゃないよ。
四則演算は義務教育で優先順位習うだろ。
0561デフォルトの名無しさん
NGNGあとn=(a+b)-c; は n=a+b-cと書くが、
n=someA+someB-otherCだったら
n=(someA+someB)-otherC と書くよ。
AとBの結びつきが強いことを明示的に示す場合ね。
ソースを読みやすく書くのは当たり前だろ?
0562デフォルトの名無しさん
NGNG絶対に破られないシリアルの作り方、教えてください。
0563デフォルトの名無しさん
NGNGすげぇ宿題だな。
無限の時間と無限の空間があればいつかは破られる気がする。
正直俺にはさっぱり分からん。
解答は
・不可能である
じゃダメ?
0564デフォルトの名無しさん
NGNG製造番号を破る?認証を(破壊的でない手段で)破るね
言いたいことは分からんでもないがもう少し具体的に
どのような性質のものか書いて
そのままだと個別の製造番号にユニーク(かつランダム)な
パスコードを付加する原始的でコストの大きい方法とかになるから
0565デフォルトの名無しさん
NGNG有限のビット長を鍵にしてる限り総当りで必ず解かれないか?
0566デフォルトの名無しさん
NGNG0567しろーと ぷろぐらまー
NGNGその例として404をあげました。でもわかりづらかったようなので、
出された課題について説明します。まず、いくつかの10進数(3桁)の整数を入力し、
縦に並べて表示させます。その整数をそれぞれ2進数(9桁)にします。
その2進数の下7桁を取ります。さらにこの7桁の2進数の上3桁を強制的に011にします。
できた7桁の2進数を10進数に変換して、
最初に縦に表示した10進数の横に対応させて表示させます。
私ははじめ、itoa関数を使ってこのプログラムを作ろうとしたんですが、
うまくいきませんでした。
なんとかほとんど素人の私にもわかるようなプログラムを作ってもらえないでしょうか。
お願いします。
以上のようなプログラムを作成したいのです。
0568デフォルトの名無しさん
NGNGあなたは今↓の1部の人を馬鹿にしましたね
http://pc3.2ch.net/test/read.cgi/tech/1016362068/
0569しろーと ぷろぐらまー
NGNG10進数(整数)の404を2進数(整数or文字)に変換し(110010100)、この9桁の右から7 桁(0010100)を残します。これの上位3 桁を011 として(0010100)→(0110100)これを10進数(整数)に変換します。
0570デフォルトの名無しさん
NGNGだったら>>551で大丈夫だろ。
0571デフォルトの名無しさん
NGNGもう何と説明すれば良いのか分からんが
>10進数(整数)の404を2進数(整数or文字)に変換し(110010100)、
>この9桁の右から7 桁(0010100)を残します。
と言うのは、10進でも2進でも値は同じなので2進の下位7桁を残すには
n=n&127;/* 127は2進表現で…001111111 */
これの上位3桁を011とする為には
n=n&63;/* 63は2進表現で…000111111 */
n=n|48:/* 48は2進表現で…000110000 */
で↑の3つの式を合わせると
n=(n&63)|48;/* (n&127)&63==n&63 */
0572デフォルトの名無しさん
NGNG必ず認証に失敗すればよい
0573デフォルトの名無しさん
NGNGワロタ
0574デフォルトの名無しさん
NGNGどうやって整数に変換するのかが分からなかったりして…
0575530
NGNG#include <stdio.h>
int main( void )
{
int data[ 256 ];
int rslt[ 256 ];
int cnt = 0 ;
int i ;
while( 1 )
{
scanf( "%d" , &data[ cnt ] );
if( data[ cnt ] >= 1000 )
break ;
cnt ++ ;
}
cnt -- ;
for( i = 0 ; i < cnt ; i ++ )
{
rslt[ i ] = ( data[ i ] & 0x7f ) | 0x30 ;
printf( "%d\t%d\n" , data[ i ] , rslt[ i ] );
}
return 0 ;
}
0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNGfprintf(out, "%s %d\n", str, number);
とすると、%sの後に勝手に改行(\n)が入ってくるのは何故?
fprintf(out, "%s %d\n", str, number);
↓↓↓↓
str
number
となって出てくるのを、
str number
にするにはどうすればいいんでしょうか?
0578デフォルトの名無しさん
NGNGstrの終端文字の前に改行が入ってるから
次のコードをfprintf()の前に書いて改行を消せばOK
i=strlen(str);
if(str[i]=='\n')str[i]='\0';
winなら
i=strlen(str);
if(i>1&&str[i]=='\n'&&str[i-1]=='\r')str[i-1]='\0';
0579デフォルトの名無しさん
NGNGY等分されたお金は整数じゃなければなりません。
XがYで割りけれなければ、XをYで割った余りはあなたのお金として残ります。
という、アルゴリズムが分かる方いませんでしょうか?
C/C++でお願います。
0580579
NGNG0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNGchar s[2] = { c, '\0' };
const char *cs = s;
0584デフォルトの名無しさん
NGNG0585bloom
NGNGhttp://www.agemasukudasai.com/bloom/
0587デフォルトの名無しさん
NGNGマジか
0588菊地桃子
NGNGつかえない
0589デフォルトの名無しさん
NGNGcnt--;
は消しとくんじゃない?
0590デフォルトの名無しさん
NGNGヒット&ブローを "効率よく" 解くプログラムを
教えてください。
0591デフォルトの名無しさん
NGNG課題の意味がわからず、とりあえずテキトウに作成・・・
#include <stdio.h>
void printbit(int bit){
for(int i = 8; i >= 0; i--)
printf("%d", (bit >> i) & 1);
putchar('\n');
}
int main(void){
int data;
printf("3桁の数字を入力:");
scanf("%d", &data);
int data_1 = data % 10;
int data_2 = (data % 100) / 10;
int data_3 = data / 100;
puts("--------計算前--------");
printf("3桁目:%3d:%3d:", data_3, data_3*100);
printbit(data_3*100);
printf("2桁目:%3d:%3d:", data_2, data_2*10);
printbit(data_2*10);
printf("1桁目:%3d:%3d:", data_1, data_1);
printbit(data_1);
puts("--------計算後--------");
printf("3桁目:%3d:%3d:", data_3, (data_3 * 100 & 127 | 48) & 63);
printbit((data_3 * 100 & 127 | 48) & 63);
printf("2桁目:%3d:%3d:", data_2, (data_2 * 10 & 127 | 48) & 63);
printbit((data_2 * 10 & 127 | 48) & 63);
printf("1桁目:%3d:%3d:", data_1, (data_1 & 127 | 48) & 63);
printbit((data_1 & 127 | 48) & 63);
return 0;
}
"効率よく"ってなに?
短い時間で解けること?
メモリ消費量の少なさ?
行数の短さ?
それともひねったところで可読性をよくして再利用可能にする?
また、その基準は?
オーダはどのくらい?
0594デフォルトの名無しさん
NGNG> 行数の短さ?
> それともひねったところで可読性をよくして再利用可能にする?
この辺だったら、何も考えずに総当りだな(w
0595デフォルトの名無しさん
NGNG(逆さに読んでも同じ)となっている数のリストを作るプログラムをお願いします。
例:5 500
↓↓
5
7
11
101
131
151
181
191
313
353
373
383
ただし、(5 <= a < b <= 100,000,000)とする。
a, bも素数&&回文ならばそのリストに入る。
0596デフォルトの名無しさん
NGNG載っているページを見つけた。あとはがんばれ。
ttp://www2.ocn.ne.jp/~mizuryu/toukou/toukou35.html
0597デフォルトの名無しさん
NGNGServer.cc:108: declaration of `void Server::ReadyData(const
OReadyEvent&)' outside of class is not definition
どうか宜しくお願いします。
0598デフォルトの名無しさん
NGNGServer.ccの108行目には何が書いてあるの?
0599デフォルトの名無しさん
NGNGわざわざレスして頂きありがとうございます。108行目はこのようになっております。
Server::ReadyData(const OReadyEvent& event);
ヘッダの方で宣言はしているのですが…
0600デフォルトの名無しさん
NGNGうにゅ
和訳するとさ、クラスの外部の定義は無効だ、ってことでしょ?
ヘッダの中も見てさ、関数の型宣言と引数がServer.ccの108行目と一致してるか確認
つかさ、これ型名抜けてるけどいいの?
0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNGどっちが当ってんの?
>>595 の仕様でコード書いてしまったけど.....
0603デフォルトの名無しさん
NGNGレスありがとうございます。確認したところヘッダと198行目の内容は一致しておりました。
型名抜けてるとはどういう意味でしょうか?浅学の為申し訳ございません
0604デフォルトの名無しさん
NGNG丁寧は結構だが正直、勉強不足すぎ。
0605デフォルトの名無しさん
NGNGキモ
0606デフォルトの名無しさん
NGNG申し訳ないと思ったらもうちょっと勉強してください。
せめて、質疑に支障のない程度の知識は…
0607590
NGNG"効率よく" とは、勿論、正解を求めるまでに
トライする回数が(平均で)少ない事です。
0608デフォルトの名無しさん
NGNGご清聴頂きありがとうございました。勉強してきます…
0609デフォルトの名無しさん
NGNGつーかあれだよ
なんでクラス外部で
Server::ReadyData(const OReadyEvent& event);
かいてるんだよっつー
これじゃプロトタイプ宣言じゃねーか
実体なら
Server::ReadyData(const OReadyEvent& event)
{
/* 処理 */
}
0610デフォルトの名無しさん
NGNGこういうことなのだろうか?
Server::ReadyData(const OReadyEvent& event);←
{
/* 処理 */
}
0612デフォルトの名無しさん
NGNGそれはプログラムと関係ない
・・・事もないが、どちらかというと関係は薄い
Hit&Blowの攻略法とかをぐぐった方が"効率よく"答えにたどり着けると思う
0614デフォルトの名無しさん
NGNG宿題のソース載せる掲示板ってどこにあったけ?
ここに載せるのは(別の話題が始まってるので)申し分けないので、捜してきてくらはい。
0615デフォルトの名無しさん
NGNGご親切にありがとうございます!ヘッダからコピペしてたもので気づきませんでした。
しかし今度は以下のエラーが出ました…
EchoServer.cc: In member function `void EchoServer::ReadyData(const
OReadyEvent&)':
自分でも厨であることは自覚しておりますので、これから勉強を重ねエラーを直したい
と思っております…
0616デフォルトの名無しさん
NGNG>>>610=613
違う。
0618デフォルトの名無しさん
NGNG実装以前のアルゴリズムの話だからとかじゃないの?
どっちにしろ、自分で考えた形跡の全くない奴がごちゃごちゃ抜かす権利はない。
へこへこしながら神が答え書いてくれるの待ってろ。
0619デフォルトの名無しさん
NGNG申し訳ございません。間違えました。
後のエラーは中身が間違ってるという事なので、見直してみます。
0620595
NGNG宿題のソースはここに置いてね
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433
お願いします。
0621デフォルトの名無しさん
NGNGa'x+b'y+c'z=d
x^2+y^2+z^2=d'
このような連立方程式(2次が入ってる)をc言語で解く場合
どうすればよいでしょうか?
0622デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNG' ←の記号の意味は?
微分?
>>622
全然C/C++じゃないけど
何も出来ない魔法の箱
>>623
>「コーダとSEの違い」
違う
ヘボコードで良かったら書いてやる
しばらく待ってろ
0625デフォルトの名無しさん
NGNGヨイショ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=46&fi=no
0626620
NGNGどうもありがとうございました。
0627621
NGNGa'の意味はaと区別するためだけにつけたものです。
任意の値です。
0628デフォルトの名無しさん
NGNG眠い
取りあえず寝る
ろくにコーディングできる体力も残ってないので、
とりあえず考え方だけ書く
i回目の試行のHit+Blowをn(i)として
試行回数
Σn(i)
i=1
が4になるように求めてから組み合わせ問題
0629デフォルトの名無しさん
NGNGax + by + cz = 0
dx + ey + fz = g
x^2 + y^2 + z^2 = h
って事か。
とすると
ax+by+cz=0
-(a/d)(dx+ey+fz=g)
で
(b-ae/d)y+(c-af/d)z=-ag/d
y=(-ag/d -(c-af/d)z)/(b-ae/d)
疲れた。
まあこの調子で式変形すれ。
0631デフォルトの名無しさん
NGNG待ってる間に作れよ(w
0632デフォルトの名無しさん
NGNG>>629とはちょっと違う攻め方かもしれないけど,
3式を上から1, 2, 3式と呼ぶことにして,
1式, 2式はともに平面の方程式, で, しかも平面1は原点を含む.
3式は原点を中心とする球の方程式.
1式と2式を連立すると, 直線の方程式が出る筈(平面1と平面2が平行で交わらないとかいう場合は除いて).
1式と3式を連立すると, 原点を中心とする円の式になる.
つまりこの問題は, 平面1上に落とし込むことで, 円と直線の交点を求める問題に帰着するです.
ここまで私がやらせてもらいました. ありがとん.
0633デフォルトの名無しさん
NGNG例2002/12/22 →2002年12月22日
結果をpsResultにセットしたいんですがうまくいきません。
御教授おねがいします。
#include <stdio.h>
#include <string.h>
int ReptString2(char *psString,char *psResult){
int count=0;
char nen[]="年";
char tuki[]="月";
char niti[]="日";
0634デフォルトの名無しさん
NGNGwhile(*psString){
if(*psString=='/'){
switch(count){
case 0: strncpy(psResult,nen,2); psResult++; count=1; break;
case 1: strncpy(psResult,tuki,2); psResult++; count=2; break;
default: *psResult=*psString; psResult++; psString++; break;
}
}else{
*psResult=*psString;
psString++;
psResult++;
}
}
strncpy(psResult,niti,2);
psResult++;
*psResult='\0';
return(count);
}
0635デフォルトの名無しさん
NGNGで、自分でどこまで書いたんですか?
0636633
NGNG御教授お願いします。
0637デフォルトの名無しさん
NGNG年、日は2バイトだから++じゃ足りないのでは?
0638633
NGNG0639デフォルトの名無しさん
NGNG後、終端のNULLの処理が全くなされていない。
0640633
NGNG0641デフォルトの名無しさん
NGNGcase 0・1の中にpsString++がない。
case0・1とnitiをstrncpyした後の
psResult++をpsResult+=2に変更。
0642デフォルトの名無しさん
NGNGスラッシュだった場合どういう処理をされるか考えてみな。
0643633
NGNG#include <string.h>
int ReptString2(char *psString,char *psResult){
int count=0;
char nen[]="年";
char tuki[]="月";
char niti[]="日";
while(*psString){
if(*psString=='/'){
switch(count){
case 0: strncpy(psResult,nen,2); psResult+=2; psString++; count=1; break;
case 1: strncpy(psResult,tuki,2); psResult+=2; psString++; count=2; break;
default: *psResult=*psString; psResult++; psString++; break;
}
}else{
*psResult=*psString;
psString++;
psResult++;
}
}
strncpy(psResult,niti,2);
psResult+=2;
*psResult='\0';
return(count);
}
0644641
NGNGすまん。言い方を変える・・・
case0とcase1の中にpsString++を加える。
case0とcase1の中のpsResult++と、
nitiをstrncpyした後のpsResult++を、
psResult+=2に変更する。
その他は変更しなくて良い。
0645633
NGNG御教授おねがいします。
#include <stdio.h>
#include <string.h>
int ReptString2(char *psString,char *psResult){
int count=0;
char nen[]="年";
char tuki[]="月";
char niti[]="日";
while(*psString){
if(*psString=='/'){
0646デフォルトの名無しさん
NGNGcase 0: strncpy(psResult,nen,2); psResult+=2; psString++; count=1; break;
case 1: strncpy(psResult,tuki,2); psResult+=2; psString++; count=2; break;
default: *psResult=*psString; psResult++; psString++; break;
}
}else{
*psResult=*psString;
psString++;
psResult++;
}
}
strncpy(psResult,niti,2);
psResult+=2;
*psResult='\0';
return(count);
}
int main(){
char *psString,*psResult;
int i;
scanf("%s",psString);
i=ReptString2(psString,psResult);
printf("%s\n",psResult);
printf("%d\n",i);
return 0;
}
0647633
NGNGやってみたんですが、だめです。
ぱそがフリーズします。
0648デフォルトの名無しさん
NGNG日付を格納する領域を確保しないと・・・
0649633
NGNG0650デフォルトの名無しさん
NGNGint main()
{
char psString[256], psResult[256];
以下変更無し
}
0651デフォルトの名無しさん
NGNGアホか。
psStringをmallocでメモリ確保するなり配列として宣言するなりしないとエラー起こすのは当然だ。
0652デフォルトの名無しさん
NGNGint ReptString2( char *psString, char *psResult)
{
int y, m, d;
sscanf( psString, "%d/%d/%d", &y, &m, &d);
sprintf( psResult, "%d年%d月%d日", y, m, d);
return 0;
}
これじゃあかんの?エラー時の戻り値とかは考えてないけど.
0653633
NGNGみなさんありがとうございます。m(_ _)m
一番の元凶は
int main()
{
char psString[256], psResult[256];
以下変更無し
}
↑これでした。
どうもお騒がせしました!!!
0654デフォルトの名無しさん
NGNGpsStringをyyyy/mm/ddの形にしたいです。
ただし、psStringは数字のみです。
例20021222 → 2002/12/22
御教授お願いします。
int RepYearMonthDay(char *psString,char *psResult){
int i;
int flag=0;
int count=0;
while(*psString != '\0'){
if(*psString < '0' || *psString > '9'){
flag=-1;
break;
}
psString++;
count++;
}
if(count != 8)
flag=-1;
0655デフォルトの名無しさん
NGNGflag=1;
for(i=0;i<4;i++){
*psResult=*psString;
psString++;
psResult++;
}
*psResult='/';
psResult++;
for(i=4;i<6;i++){
*psResult=*psString;
psString++;
psResult++;
}
*psResult='/';
psResult++;
for(i=6;i<8;i++){
*psResult=*psString;
psString++;
psResult++;
}
*psResult='\0';
0656デフォルトの名無しさん
NGNGwhile(*psString == '\0'){
*psResult=*psString;
psString++;
psResult++;
}
}
return(flag);
}
0657デフォルトの名無しさん
NGNGよろしくおねがいします
0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNGメモリがおかしくなってるのかもしれません。
int main(){
char psString[256],psResult[256];
int i;
scanf("%s",psString);
i=RepYearMonthDay(psString,psResult);
printf("%s\n",psResult);
printf("%d\n",i);
return 0;
}
0660デフォルトの名無しさん
NGNGchar *tmp = psString;
とかやって、tmpを使うべき。
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNGsscanf(str, "%4d%2d%2d", &y, &m, &d);
sprintf(dest, "%d/%d/%d", y, m, d);
こんな感じでどうよ。
エラーチェックとかはそっちでつけてね
0663デフォルトの名無しさん
NGNG#include <string.h>
int RepYearMonthDay(char *psString,char *psResult){
int i;
int flag=0;
int count=0;
char *tmp = psString;
while(*tmp != '\0'){
if(*tmp < '0' || *tmp > '9'){
flag=-1;
break;
0664デフォルトの名無しさん
NGNGtmp++;
count++;
}
if(count != 8)
flag=-1;
if(count==8 && (flag != -1)){
flag=1;
for(i=0;i<4;i++){
*psResult=*psString;
psString++;
psResult++;
}
*psResult='/';
psResult++;
for(i=4;i<6;i++){
*psResult=*psString;
psString++;
psResult++;
}
0665デフォルトの名無しさん
NGNGpsResult++;
for(i=6;i<8;i++){
*psResult=*psString;
psString++;
psResult++;
}
*psResult='\0';
}else{
while(*psString){
*psResult=*psString;
psString++;
psResult++;
}
}
return(flag);
}
int main(){
char psString[256],psResult[256];
int i;
scanf("%s",psString);
i=RepYearMonthDay(psString,psResult);
printf("%s\n",psResult);
printf("%d\n",i);
return 0;
}
0666デフォルトの名無しさん
NGNG20021222を2002/12/22
とうまく置換できるんですが、
20021222yyyのように数字8文字でない場合は
20021222yyyとそのまま表示したいです。
その後半部分がうまくいきません。
psResultに変な値がまぎれてしまってるみたいです。
御教授おねがいします。
0667デフォルトの名無しさん
NGNG変 な 値 っ て な ん だ よ
わざとややこしくしてないか?
0668デフォルトの名無しさん
NGNGつーか、コードを解析すればある程度わかるような・・・
0669デフォルトの名無しさん
NGNGじゃ答えよろしく
0670デフォルトの名無しさん
NGNGたとえば41923375が4192/33/75になっていいのかな?とか
psStringがNULL終端されていなかったらどうするとか
0671デフォルトの名無しさん
NGNG入力された文字列がYYYYMMDDかどうかを判定しろ, と.
閏年は考慮するのか?
0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNG2222と入力すると
2222フフフフフフフフフフフフフフフフフ2222
とあいだに半角の”フ”が入ります。
これがなぜなのかわかりません。
よろしくおねがいします
0674デフォルトの名無しさん
NGNG関数の最初にstrlenか何かで、字数を取得して
判定するっていうのは?
0675デフォルトの名無しさん
NGNG0676674
NGNG2222とそのまま表示したいです。
0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNGCPUが笑ったのです
0679674
NGNG#include <string.h>
int RepYearMonthDay(char *psString,char *psResult){
int i;
int flag=0;
int count=0;
char *tmp = psString;
while(*tmp != '\0'){
if(*tmp < '0' || *tmp > '9'){
flag=-1;
break;
}
tmp++;
count++;
}
if(count != 8)
flag=-1;
0680デフォルトの名無しさん
NGNG>665のレスの、
}else{
while(*psString){
*psResult=*psString;
psString++;
psResult++;
}
}
を、
}else{
while(*psString){
*psResult=*psString;
psString++;
psResult++;
}
*psResult = '\0'
}
に変更。(*psResult = '\0'を付け加える)
0681674
NGNGflag=1;
for(i=0;i<4;i++){
*psResult=*psString;
psString++;
psResult++;
}
*psResult='/';
psResult++;
for(i=4;i<6;i++){
*psResult=*psString;
psString++;
psResult++;
}
*psResult='/';
psResult++;
for(i=6;i<8;i++){
0682674
NGNGpsString++;
psResult++;
}
*psResult='\0';
}else{
while(*psString){
*psResult=*psString;
psString++;
psResult++;
}
}
return(flag);
}
int main(){
char psString[256],psResult[256];
int i;
scanf("%s",psString);
i=RepYearMonthDay(psString,psResult);
printf("%s\n",psResult);
printf("%d\n",i);
return 0;
}
0683674
NGNG>>678さん かなりおもしろいです(笑
0684デフォルトの名無しさん
NGNGVC++は範囲選択→Alt+F8で整形されるからいいけど…
0685デフォルトの名無しさん
NGNG674さんが載せたプログラムの間にレスが載ったので分かりにくいが、
680の方法を試してくれ。
0686674
NGNG解決しました。
なるほど、終端NULLがぬけてました。
またまたお騒がせして申し訳ないです。
皆さんありがとうございました。
0687668・680
NGNGどうだ?答えを出してやったぞ。
0688デフォルトの名無しさん
NGNGうちのブラウザは →(スペース)変換してくれないからダメ。
0689デフォルトの名無しさん
NGNG長々とありがとうございました
0690デフォルトの名無しさん
NGNG#include<stdlib.h>
int main(){
char psString[256],psResult[256];
long i ;
int y, m, d;
scanf("%s",psString);
i = atol(psString);
if( strlen(psString)==8 && i>=10000000L ){
y = i/10000;
d = i % 100;
m = (i % 10000)/100;
printf("%d/%.2d/%.2d\n", y, m, d);
}else{
printf("%s\n", psString);
}
}
/*たったこれだけで収まるわけだが...*/
0691デフォルトの名無しさん
NGNGそれを言っちゃ〜おしまいよ!
0692デフォルトの名無しさん
NGNGどんな糞ブラウザやねん…
0693693
NGNG/****************matrix.h*********************/
#ifndef GUARD_matrix_h
#define GUARD_matrix_h
#include <vector>
using std::vector;
#include <iostream>
using std::cout;
using std::endl;
class Matrix{
Matrix();
public:
typedef vector<double> d_vec;
vector<d_vec> components;
int row_size;
int file_size;
Matrix(int, int);
friend const Matrix operator + (const Matrix&, const Matrix&);
friend const Matrix operator - (const Matrix&, const Matrix&);
friend const Matrix operator * (const Matrix&, double);
friend const Matrix operator * (double, const Matrix&);
friend const Matrix operator * (const Matrix&, const Matrix&);
};
#endif
/****************EOF*********************/
続く
0694693
NGNGusing std::cout;
using std::endl;
#include <vector>
using std::vector;
#include <cstdlib>
#include "matrix.h"
Matrix::Matrix(int a, int b)
{
if(a < 1 || b < 1)
{
cout << "行列のサイズは自然数で入力して下さい" << endl;
exit(1);
}
else
{
vector<double> width;
for(int i = 0; i < a; ++i)
{
width.push_back(0);
}
for(int j = 0; j < a; ++j)
{
components.push_back(width);
for(int k = 0; k < b; ++k)
{
components[j].push_back(0);
}}}}}
続く
0695693
NGNGconst Matrix operator + (const Matrix & a, const Matrix& b)
{
int rs = a.row_size;
int fs = a.file_size;
if(rs == b.row_size && fs == b.file_size)
{
Matrix ret(rs, fs);
for(int i = 0; i < rs; ++i)
{
for(int j = 0; j < fs; ++j)
{
ret.components[i][j] = a.components[i][j] + b.components[i][j];
}
}
return ret;
}
else
{
cout << "2項演算子+の両オペランドのサイズが違います。" << endl;
exit(1);
}
}続く
0696693
NGNGconst Matrix operator * (const Matrix& a, double b)
{
int rs = a.row_size;
int fs = a.file_size;
Matrix ret(rs, fs);
for(int i = 0; i < rs; ++i)
{
for(int j = 0; j < fs; ++j)
{
ret.components[i][j] = a.components[i][j] * b;
}
}
return ret;
}
const Matrix operator * (double a, const Matrix& b)
{
int rs = b.row_size;
int fs = b.file_size;
Matrix ret(rs, fs);
for(int i = 0; i < rs; ++i)
{
for(int j = 0; j < fs; ++j)
{
ret.components[i][j] = a * b.components[i][j];
}
}
return ret;
}//続く
0697693
NGNG{
int afs = a.file_size;
if(afs != b.row_size)
{
cout << "二項演算子*の左オペランドの列数と右オペランドの行数が違います。" << endl;
exit(1);
}
else
{
int ars = a.row_size;
int bfs = b.file_size;
Matrix ret(ars, bfs);
for(int i = 0; i < ars; ++i)
{
for(int j = 0; j < bfs; ++j)
{
double sum = 0;
for(int k = 0; k < afs; ++k)
{
sum += a.components[i][k] * b.components[k][j];
}
ret.components[i][j] = sum;
}
}
return ret;
}
}//続く
0698693
NGNGint main()
{
int m = 5;
int n = 8;
Matrix mt(m, n);
for(int i = 0; i < m; ++i)
for(int j = 0; j < n; ++j)
mt.components[i][j] = (i + 1) * 10 + j + 1;
Matrix mt1(mt);//コピーコンストラクタのテスト
Matrix mt2(m, n); mt2 = mt;//代入演算子のテスト
//mt1 = mt * 2;//他の演算子もうまくいきません
for(int ii = 0; ii < m; ++ii)
{
cout << endl;
for(int jj = 0; jj < n; ++jj)
{
cout << mt1.components[ii][jj] << " ";
}
}
return 0;
}
/**********************EOF(matrix.cpp)***********************/
で、オーバーロードした演算子を試すと、コンストラクタの
エラーが発生します。私のコードを手直しもしくはほぼ同じ
インターフェイスを持つ行列演算のコードを書いて頂けない
でしょうか?質問すれではないので恐縮ですが、もしよろしければ
私のコードについて何かアドバイスなど頂けたらと思います。
0699デフォルトの名無しさん
NGNGそんなのならこんなんで十分じゃないか?
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=47&fi=no
0700693
NGNGstd::exitをexitに置換したら動きました。ありがとうございました!
0701デフォルトの名無しさん
NGNGdeita.txt
1(Tab間隔)2 300 0 0
2 3 0 0.001 0
3 4 0 0.001 0
4 5 0 0.001 0
5 6 0 0.001 0
6 7 0 0.001 0
1 0 0 0 0
2 0 0 0 0.0000005
3 0 0 0 0.000001
4 0 0 0 0.000001
5 0 0 0 0.000001
6 0 0 0 0.000001
7 0 300 0 0.000001
取り込んで 番号付けて並べ替えるプログラムを作りたいんですが
一番右の番号順に データを並べ替えるにはどうしたらいいでしょうか?
0702701
NGNG#defineN20
voidamatprt(int a[][N],int m,int n,int k,char tag[])
{inti,j,l;
if(k==0) l=0;else l=1;
printf("\n %s\n ",tag);
for(j=0;j<n;j++) printf("%4d",j);printf("\n");
for(i=l;i<=m;i++) {
printf("%3d",i);
for(j=0;j<n;j++) printf("%4d",a[i][j]);
printf("\n");
}
if(k<0) {
i=0;
printf("%3d",i);
for(j=0;j<n;j++) printf("%4d",a[i][j]);
printf("\n");
}
}
voidbubble(int p[],int n)
{inti,j,k,m;
m=n-1;
for(i=0;i<m;i++) for(j=m;j>i;j--)
if(p[i]>p[j]) {
k=p[i];p[i]=p[j];p[j]=k;
0703701
NGNG}
voidmain()
{inti,j,k,n,nn;
static intp[N],itoj[N][2],a[N][N];
static doubler[N],el[N],c[N];
charfname[]="deita.txt";
FILE*fp;
if((fp=fopen(fname,"r"))==0) {
printf("\n Input file %s not found.",fname);
return;
}
n=0;
fscanf(fp,"%d",&i);
do {
itoj[n][0]=i;
fscanf(fp,"%d",&i);
itoj[n][1]=i;
fscanf(fp,"%le",&r[n]);
fscanf(fp,"%le",&el[n]);
fscanf(fp,"%le",&c[n]);
n++;
fscanf(fp,"%d",&i);
}
while(feof(fp)==0);
fclose(fp);
0704701
NGNGprintf("\n Input data.\n");
for(i=0;i<n;i++) {
printf("%5d",i);
for(j=0;j<2;j++) printf("%5d",itoj[i][j]);
printf("%15.5le",r[i]);
printf("%15.5le",el[i]);
printf("%15.5le\n",c[i]);
}
k=0;
for(i=0;i<n;i++) if(c[i]!=0.0) { p[i]=k;k++; }
for(i=0;i<n;i++) if(c[i]==0.0) { p[i]=k;k++; }
printf("\n Input data.\n");
for(i=0;i<n;i++) {
printf("%5d",i);
for(j=0;j<2;j++) printf("%5d",itoj[i][j]);
printf("%15.5le",r[i]);
printf("%15.5le",el[i]);
printf("%15.5le",c[i]);printf("%5d",p[i]);
printf("\n");
}
0705701
NGNGbubble(p,n);
printf("\n Input data.\n");
for(i=0;i<n;i++) {
printf("%5d",i);
for(j=0;j<2;j++) printf("%5d",itoj[i][j]);
printf("%15.5le",r[i]);
printf("%15.5le",el[i]);
printf("%15.5le",c[i]);printf("%5d",p[i]);
printf("\n");
}
}
0706デフォルトの名無しさん
NGNG構造体は使わないのかい?
0707取り敢えず
NGNG=>
int main
0708621
NGNGy=((a*f/d-i)*z-a*g/d)/(b-a*e/d);
x=((d*f/e-i)*z-g*d/e)/(a-b*d/e);
z=(h*h-x*x-y*y);
このように式変形しました。
このまま記述したら当然1式目のzに値が入ってないので
エラーが出るけど、どう記述したらいいんでしょう?
1,2式を3式に代入して、zに関する2次方程式を作るまで
手計算でやらんとだめですか?
0709デフォルトの名無しさん
NGNG当然
0710デフォルトの名無しさん
NGNGこんなんでました。
#include <stdio.h>
typedef struct{
int index, number1, number2;
double number3, number4;
}Data;
int main(void){
FILE* fp = fopen("deita.txt", "r");
int count = 0;
Data data[256];
while(fscanf(fp, "%d %d %d %lf %lf",&data[count].index,
&data[count].number1,&data[count].number2,
&data[count].number3,&data[count].number4) != EOF)
count++;
fclose(fp);
for(int i = 0; i < count; i++)
for(int j = i+1; j < count; j++)
if(data[j].index < data[i].index){
Data temp = data[i];
data[i] = data[j];
data[j] = temp;
}
for(i = 0; i < count; i++)
printf("%3d %3d %3d %f %.7f\n", data[i].index,
data[i].number1, data[i].number2,
data[i].number3, data[i].number4);
return 0;
}
0711デフォルトの名無しさん
NGNGQ:仕入れ量
D:需要量
Q>Dならば、売れ残りが発生し、廃棄
Q<Dならば、品切れが発生し、信用失墜
Q=Dならば、利益のみ
最適な仕入れ量は?
0712デフォルトの名無しさん
NGNG線型計画の教科書買って来い
0713デフォルトの名無しさん
NGNGそりゃ最適な仕入れ量はDに決まってるじゃねーか
0714デフォルトの名無しさん
NGNG相変わらず沢村並みに内容がないな
氏ねbogus
0715クラッシュしてしまいます
NGNGint i, c;
int alph[52];
for (i = 0; i < 52; i++)alph[i] = 0;
while ((c = fgetc(fin)) != EOF){
if (c >= 'A' && c <= 'Z')
++alph[c - 'A'];
else if (c >= 'a' && c <= 'z')
++alph[c - 'a' + 26];}
for (c = 'A'; c <= 'Z'; c++){
fprintf(stdout, "%s: ", c);
for (i = 0; i < alph[c - 'A']; i++)fputc('*', stdout);
fputc('\n', stdout);}
for (c = 'a'; c <= 'z'; c++){fprintf(stdout, "%s: ", c);
for (i = 0; i <= alph[c - 'a' + 26]; i++)fputc('*', stdout);
fputc('\n', stdout);}}
0716デフォルトの名無しさん
NGNG質問者はせめてインデントぐらいつけようよ、とか思った
0717デフォルトの名無しさん
NGNGここに質問に来る香具師にインデントのタグ使えって?
そいつはチンパンジーに因数分解しろってのに近いぜ
0719デフォルトの名無しさん
NGNG718さんが指摘した部分と、
下から2行目の、
for(i = 0; i <= alph[c-'a'+26]; i++)を
for(i = 0; i < alph[c-'a'+26]; i++)に変更(条件の部分)
0720デフォルトの名無しさん
NGNGインデントのタグって何だ?お前チンパンジーか?
0721デフォルトの名無しさん
NGNGc = getchar();についてなのですが、
なぜこれは必要なんですか。
一様、c = getchar(); がないと永久に
入力された文字が出るのはわかります。
しかし、それはなぜですか?
#include <stdio.h>
main()
{
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}
よろしくお願いします。
0722721
NGNG0723デフォルトの名無しさん
NGNGそれが無かったら同じ文字しか表示されないから
0724デフォルトの名無しさん
NGNG「整数xの値を右にnビット回転する関数rightrot(x,n)を書け」
という問題が分かりません。
int rightrot (int x , int n) {
return (x >> n) + ( (x & ~(~0 << n) ) << ? )
}
この「?」に部分に何を書けばいいかが…
どうかご教授願います。
0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNGK&Rとかやる気だったら、ちゃんとなぜそうなったのかの意味も考えた方がいいよ
0729693
NGNG重ねてお礼を申し上げます。
読み返すと、とても勉強になります。
0730デフォルトの名無しさん
NGNG(枝長も与えられるとする)
main関数その他必要な修正を加えて,1番の節点から他の節点
への最短経路をわかり易く表示させるようにし,プログラムの
動きを解説せよ.グラフは隣接行列表現とする.
という問題です。よろしくお願いします。
0731730
NGNG#include <stdio.h>
#include <stdlib.h>
#define MAXVSIZE 256
#define INTDIGIT 4
#define ON 1
#define OFF 0
typedef char *String ;
int Unseen = -10000 ;
int Graph[ MAXVSIZE ][ MAXVSIZE ] ;
int Dis[ MAXVSIZE ], Dad[ MAXVSIZE ] ;
int NodeLabel[ MAXVSIZE ] ;
int NodeNum ;
0732730
NGNGFILE *file_Access(char *fname,char *mode)
{
FILE *f;
if ((f = fopen(fname,mode)) == NULL) {
fprintf(stderr,"can't open file ");
fprintf(stderr,fname);
fprintf(stderr,"\n");
exit(0);
}
return f;
}
0733730
NGNG/* Get Matrix (グラフの隣接行列表現)*/
/* **************************** */
int GetMatrix(String MatFileName)
{
FILE *MatFile ;
int i ;
int ColumnLine[ MAXVSIZE ] ;
int RowNum, ColNum, LabelNum ;
int ElementSeparate( FILE *, int *) ;
MatFile = file_Access( MatFileName,"r") ;
LabelNum = ElementSeparate( MatFile, NodeLabel) ;
ColNum = 1 ;
while( ( RowNum = ElementSeparate( MatFile, ColumnLine ) ) > 0 ) {
if( LabelNum != RowNum ) {
fprintf(stderr,"Fail to read the Matrix in Column %d LabelNum %d != DocNum %d \n",
ColNum, LabelNum, RowNum) ;
exit(-1) ;
}
for( i = 1 ; i < RowNum ; i++ ) {
Graph[ ColNum ][i]= ColumnLine[i] ;
}
ColNum++ ;
}
fclose( MatFile ) ;
NodeNum = LabelNum ;
}
0734730
NGNG{
char Store ,c;
char IntString[INTDIGIT] ;
int LabelNum ,i,j;
LabelNum = 1 ;
Store = OFF ;
j = 0 ;
c = fgetc( InFile ) ;
if ( c == EOF ) return 0 ;
do {
if ( !Store && !(isdigit(c)) ) continue ;
else if ( Store && !(isdigit(c)) ) {
Store = OFF ; IntString[j] = '\0' ;
List[LabelNum] = atoi( IntString ) ;
if(ON) printf(" List[%d] %d", LabelNum, List[LabelNum] ) ;
LabelNum++ ;
}
else if (Store) {
IntString[j++] = c ;
}
else {
Store = ON ;j = 0 ;
IntString[j++] = c ;
}
} while( ( c = fgetc( InFile ) ) != '\n') ;
if(ON) printf("\n" );
return LabelNum ;
}
0735730
NGNG{
int k, t, min = 0 ;
for( k = 1 ; k < NodeNum; k++) {
Dis[k] = Unseen ;
Dad[k] = 0 ;
if(ON) printf("Dis[%d] %d\n", k, Dis[k] ) ;
}
Dis[0] = Unseen - 1 ;
for ( k = 1 ; k != 0 ; k = min, min = 0 ) {
Dis[k] = -(Dis[k]) ;
if ( Dis[k] == -Unseen ) Dis[k] = 0 ;
if(ON) printf("min %d Dis[%d] %d\n", min, k, Dis[k] ) ;
for ( t = 1; t < NodeNum ; t ++ ) {
if ( Dis[t] < 0 ) {
if(ON) printf(" Dis[%d] %d", t, Dis[t] ) ;
if ( Graph[k][t] && ( Dis[t] < -( Dis[k] + Graph[k][t]) ) ) {
Dis[t] = -( Dis[k] + Graph[k][t]) ;
Dad[t] = k ;
}
if ( Dis[t] > Dis[min] ) min = t ;
}
}
}
}
0736730
NGNGプログラムには,次のような行列表現したグラフを入力として与える.
例えば,節点数は13で,1番の節点と7番の節点の枝長は6である.
1 2 3 4 5 6 7 8 9 10 11 12 13
0 1 0 0 0 2 6 0 0 0 0 0 0
1 0 1 2 4 0 0 0 0 0 0 0 0
0 1 0 0 4 0 0 0 0 0 0 0 0
0 2 0 0 2 1 0 0 0 0 0 0 0
0 4 4 2 0 2 1 0 0 0 0 4 0
2 0 0 1 2 0 0 0 0 0 0 2 0
6 0 0 0 1 0 0 3 0 1 0 5 0
0 0 0 0 0 0 3 0 2 0 0 0 0
0 0 0 0 0 0 0 2 0 0 1 0 0
0 0 0 0 0 0 1 0 0 0 1 3 2
0 0 0 0 0 0 0 0 1 1 0 0 0
0 0 0 0 4 2 5 0 0 3 0 0 1
0 0 0 0 0 0 0 0 0 2 0 1 0
0737デフォルトの名無しさん
NGNGもちろん分かっていて炒っているんだと思うけど、 のことと思われ。
タグじゃないけどw
質問者は、インデントのためのハンカクスペースは と書いてね。
このようにインデントされる。
0738デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNGほほう・・・
0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNG激ワロタ
0743デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNGつくってるんですが、うまくいきません。ちなみに、数字以外の場合はpsResultは空に
します。とりあえず、作ったのを載せておきます。御教授おねがいします。
#include <stdio.h>
int CheckYubin(char *psPosNum,char *psResult){
char *tmpNum;
int i=0;
int Hint=0; //ハイフンのチェック
int flag=0;
int count=0;
while(*tmpNum != '\0'){
if(count == 3 && *tmpNum == '-'){
Hint=1;
}
if(*tmpNum < '0' || *tmpNum > '9'){
flag=-1;
break;
}
tmpNum++;
count++;
}
if(count == 7){ //すべて数字の場合
flag=0;
}
if(count == 8 && Hint == 1){ //ハイフンが入っている場合
flag=1;
}
0746デフォルトの名無しさん
NGNG*psResult='\0';
}
if(flag == 0){
for(i=0;i<7;i++){
*psResult=*psPosNum;
psPosNum++;
psResult++;
}
*psResult='\0';
}
if(flag == 1){
for(i=0;i<3;i++){
*psResult=*psPosNum;
psPosNum++;
psResult++;
}
psPosNum++;
for(i=4;i<8;i++){
*psResult=*psPosNum;
psPosNum++;
psResult++;
}
*psResult='\0';
}
switch(flag){
case 0:
case 1: return 0;
case -1: return (-1);
}
}
0747デフォルトの名無しさん
NGNGchar psPosNum[80],psResult[80];
int i;
scanf("%s",&psPosNum);
i=CheckYubin(psPosNum,psResult);
printf("%s\n",psResult);
printf("%d\n",i);
return 0;
}
0748デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNG747のscanf("%s", &psPosNum);っておかしくないかい?
0751745
NGNG749さんの指摘のとおりでした。
お騒がせしました!!!
みなさんありがとうございました
おかしいねえ。
0753デフォルトの名無しさん
NGNGと同じアドレスになるので問題が露見しない。
いいのか悪いのか。
0754デフォルトの名無しさん
NGNG年明けにテストがあるのですが、その問題というのは先生があらかじめ示した
問題とヒントとなる元ソースが与えられていて、テストには先生自身が完成させたプログラムが
穴埋めで出てきて、その穴を回答するという方式のようなのです。
そこで、みなさんに先生がヒントのソースと先生自身が出したヒントを元に、
どのようなプログラムを組んで、どこらへんを穴埋めにするか想像して
いただけないでしょうか?
先生になったような気持ちでお願いします。
※授業進度は初歩程度で、文系のプログラミング科目なので、
難易度はかなり易しめなのだと思います。
問題
ここに試験の結果がある、この試験で70点であれば、全体の順位としては
何位となりますか?
ヒントとヒントのソースは以下です・・・
0755デフォルトの名無しさん
NGNG#include <stdio.h>
main()
{
int a[8];
int x;
int i;
int flag;
int b[0];
a[0]=50; a[1]=70; a[2]=45; a[3]=55; a[4]=85;
a[5]=90; a[6]=50; a[7]=70;
flag=1;
while (flag==1){
flag=0;
0756デフォルトの名無しさん
NGNGif(a[i]<a[i+1]){
x=a[i];
a[i]=a[i+1];
a[i+1]=x;
flag=1;
}
}
1.b[0]...b[7]に1から8を代入する(たとえばfor文でつくる
2.a[1]...a[7]を順にたどりながら(たとえばfor文でつくる
もし、今の得点と直前の得点が等しければ(例えばifで作る
今の得点の順位を、直前の得点と同じ順位にする。
「もし・・・」の場合の処理終わり
2のa[1]...a[7]をたどる処理終わり
0757名無し@沢村
NGNG私はCのprintf関数みたいに書式付き文字列を引数とする関数をつくりたくて、
printf関数を検索し、書式付き文字列の引数の部分にconst char *format [, argument] ...と書いてあったので、
const char *format [, argument] ...をそのままコピペして引数としたのですが、コンパイルしてみるとエラーを起こしました。
皆々様方〜、どうしてエラーを起こしたのでしょうか?
printfでは引数がconst char *format [, argument] ...となっているので、const char *format [, argument] ...は引数にできるはずですが…?
皆々様方〜、教えてくだされ〜♪
0758デフォルトの名無しさん
NGNGprintf使えば充分だろ。
0759デフォルトの名無しさん
NGNGttp://www.google.co.jp/search?q=%E5%8F%AF%E5%A4%89%E9%95%B7%E5%BC%95%E6%95%B0&ie=UTF-8&oe=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
まあもうすぐお前は出入り禁止になるからな。
優しくしといてあげるよ。
0760デフォルトの名無しさん
NGNGネタですか?
0761デフォルトの名無しさん
NGNGみんなスルーしる
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNG情報不足。
ぜひ私にやらせてほしいので、詳しく説明してくれ。
0765篭城学生
NGNGdouble型の変数dと文字列保存用のポインタp、基数radixを引数に餅
dの内容をradix進文字列に直し、常にsを返す関数
char* double_to_ascii(double d, int radix, char *s);
を作成せよ。
なんですがよろしくおながいします(;´Д`)
sprintfとかstringstream系を使わないで実装しなきゃだめって言われます田…
鬱です
0766デフォルトの名無しさん
NGNG/*数値Nを入力し1からNまでの総和を求めるプログラムただし計算には関数を使う*/
void wa(int x,int y,int *w)
{
for(x=1;x<=y;x++){
*w=+x;
}
}
void main(void)
{
int a=1,b,d;
printf("N=");
scanf("%d",&b);
printf("1から%dまでの総和\n",b);
wa(a,b,&d);
printf("%d \n",d);
}
こういうプログラムの課題が出たんですが動かないんです.
おそらくfor文でプログラムをまわすときに変数の中身まで0に
してしまっているのではないかと考えています。
足した数を入れる変数をつくってみたのですが上手くいきません
もしかして私の考え方自体が間違っているのですか?
誰か教えてください.
0767デフォルトの名無しさん
NGNGWindowsでPlatform SDK入れてればMicrosoft SDK\src\crt\xtoa.cにまんまのがあるな。整数だが。
・d % radixを文字列に追加、d /= radix;してループ。
・最後に文字列の中身を逆順に。
というようなことをやっているようだ。
*w=+x; → *w+=x;
0769デフォルトの名無しさん
NGNG> int a=1,b,d;
int a=1, b, d = 0;
0770デフォルトの名無しさん
NGNGガウスのアルゴリズム知ってるかい?
for使うより早いと思うんだが…
(n+1)*n/2って奴
0771デフォルトの名無しさん
NGNG0772C言語
NGNG当方WindowsXPなんですが、エスケープシーケンスを利用して
画面消去などの操作を行いたいんですが…どうもXPや2000では
エスケープシーケンスが扱えないみたいなんです。
何か良い代替法はありませんか? お願いします。
0773デフォルトの名無しさん
NGNGVCヘルプでここを調べてみそ
[目次]-[Windows開発]-[Windows開発]-[Windowsベースサービス]-[ファイルおよび入出力]-[SDKドキュメント]-[ファイル入出力]-[コンソール]
0774C言語
NGNG項目は見当たらず、解決法が分かりません。
今はCode WarriorというC言語の開発ソフトを使ってます。
画面消去、文字色変更すら出来ず苦しい状態です。
今もこんな方法で画面を消去させてたり(正確には違う)・・・
int cls(){//画面消去のため
int i;
for(i=0;i<=30;i++)printf("\n");
return 0;
}
0775デフォルトの名無しさん
NGNGdevice=c:\windows\system32\ansi.sys
0777デフォルトの名無しさん
NGNGWindows専用でいいならConsole用のAPIがあるが
0778C言語
NGNGそれも探したんですが、手詰まりで・・・。(なるべく)DOSでやりたいんです。
違う方法を考えてみます。
ありがとうございました。
参考:
ttp://f1.aaacafe.ne.jp/~pointc/log137.html
0779デフォルトの名無しさん
NGNG何が 「手詰まり」 なのか教えてくれんか?
ドキュメントが見つからないのか?
それとも、見つかったが扱い切れないのか?
0780C言語
NGNGWindowsのAPIを利用してやる方法は確かにありますが、上記の理由で
敬遠しているので他に手段も無く手詰まり、と。
>>778の後いろいろとプログラミングの本と他の有志の方からアドバイスを
貰いました。DOS窓の画面の座標を記録し、そこを黒で塗りつぶすという
案が使えそうなのでそれで頑張ろうかと思います。
となると、今度はコンソールを左上に持って来ないといけないですね。
…うーん。
0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNG/*
x 検索する数
v[] 検索対象の配列
n 配列の上限
*/
int binsearch1 (int x, int v[], int n) {
int low, high, mid;
low = 0;
high = n - 1;
while (low <= high) {
mid = (low + high) / 2;
if (x < v[mid])←1
high = mid - 1;
else if (x > v[mid])←2
low = mid + 1;
else
return mid;
}
return -1;
}
この二分検索のループ内の2つのテストを外部でのテストを多くしてでも一回に減らし、実行時間を比較せよ
という課題ですが、検索などをしても上のほぼ同じコードしか出てきません。
そもそも二回のテストが矢印をした部分ではないとかそんな事はありませんよね?
これは?
int binsearch1 (int x, int v[], int n) {
int low, high, mid;
low = 0;
high = n - 1;
while (low <= high) {
mid = (low + high) / 2;
if (x < v[mid])
high = mid - 1;
else
low = mid + 1;
}
if (x == v[mid])
return mid;
else
return -1;
}
訂正。
int binsearch1 (int x, int v[], int n) {
int low, high, mid;
low = 0;
high = n - 1;
while (low <= high) {
mid = (low + high) / 2;
if (x < v[mid])
high = mid - 1;
else
low = mid + 1;
}
if (x == v[mid])
return mid;
else if (x == v[--mid])
return mid;
else
return -1;
}
0787デフォルトの名無しさん
NGNGなぜ?
普通は逆だと思うよ。
0789篭城学生
NGNGPlatformSDKってなんでしょうか・・・
来年の1月1日が宿題提出日なのです…
∧_∧ うわぁぁーん
( ´Д` )っ
( つ /
( | (⌒)`) 誰かソースくれよぉ
(´ ´し'⌒^ミ `)`)
0790デフォルトの名無しさん
NGNG・whileを含め3ヶ所で比較
比較1箇所
・whileを含め2ヶ所で比較
要素数 n
山の高さ h = log n
検索で一致を見つける確率 p
一致があった場合でもループが最後まで回るため、
確率 p で h^2/n 回の余分な比較が発生する。
したがって ph^2/n となって、これと比較回数の改善数を比較し ・・・
面倒だ、自分で計算しる!
0791デフォルトの名無しさん
NGNG例えば、test.csvに、
1,2,3,4
6,7,8,9
とかなっている感じです。
0792デフォルトの名無しさん
NGNGifstrem in = ifstream("filename");
in.read(...);
0793デフォルトの名無しさん
NGNG次のようにしていいってこと?
#include <fstream>
int main(){
int A[4],B[4];
ifstream in("test.csv");
in.read(A,4);
in.read(B,4);
return 0;
}
0794デフォルトの名無しさん
NGNGはアボーンでした。
getline()を使って、実装を考えなくちゃいけないかな。。。
0795デフォルトの名無しさん
NGNGdouble ってのがきつそうだな。
激しく環境依存になりそうな予感・・・
本当にできるのか?
0796篭城学生
NGNG( ´Д` )っ 馬鹿なのでソース丸々おながいしまーす
( つ /
( | (⌒)`)
(´ ´し'⌒^ミ `)`)
0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNG0799デフォルトの名無しさん
NGNG0800デフォルトの名無しさん
NGNGたしかに。
宿題出さなくて単位を落とすのであれば、
まあ、落とすべくして落とす単位だ罠。
0801篭城学生
NGNG予想どおり強がってる能無しばっか(´,_ゝ`)プッ
0802デフォルトの名無しさん
NGNG俺C++は知らないんだよ。
0803デフォルトの名無しさん
NGNGなんで友達に聞くと言う選択肢をとらないのかききたいYO!
0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNGそんな残酷なこと言うなYO!
0806デフォルトの名無しさん
NGNGほら、類はなんたらってやつ、あれだよ。
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNGHallo, Weld!
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNG0812篭城学生
NGNGあと1時間じゃないか。
0813デフォルトの名無しさん
NGNG何進数までサポートするの?
0814デフォルトの名無しさん
NGNGこんな感じでテストしたのですが、駄目でしょうか?
/*
binsearch1 K&Rに書いてあったもの
binsearch2 教えていただいたもの
*/
int main () {
int main () {
int v[20]={0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95};
int i , time;
time = timeGetTime();
for (i = 0 ; i < 10000000 ; ++i)
binsearch1 (v[i % 20] , v , 20);
printf ("�@%5dms\n" , timeGetTime() - time);
time = timeGetTime();
for (i = 0 ; i < 10000000 ; ++i)
binsearch2 (v[i % 20] , v , 20);
printf ("�A%5dms\n" , timeGetTime() - time);
return 0;
}
いいと思うよ。
あけおめ。
0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNG0818篭城学生
NGNG0819デフォルトの名無しさん
NGNG0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNGIsLeapYear();
0823デフォルトの名無しさん
NGNGあけおめ。
宿題はちゃんと提出できたか?
0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNG何万年前の星が残ってるぞ
0826824
NGNG二時間くらいだな、多分。
0827デフォルトの名無しさん
NGNGごめんなさい、>>788の私の発言はたぶん間違いです。
うちでは試してないけど>>790のレスが正解と思います。
binsearch1 だと時間がかかることもあれば短時間ですむこともあります。
binsearch2 だと常に一定の時間がかかります。
後者では「比較が一つ減ったので短時間ですむ」と勘違いしてました。
0830785=814=828
NGNGどうだろ。期待値を考えないと一概には答えられないかも。
今から計算してみます。
投了!
配列の要素数 n が pow(2, x - 1) < n < pow(2, x + 1) の場合
binsearch2 のループ回数は x + 1 回、比較回数は 2 * (x + 1) - 1 回。
binsearch1 で y 回目にループを抜ける確率 p(y) は pow(2, y - 2)/n < p <= pow(2, y - 1)/n
一回のループで 2 回または 3 回比較が行われるので比較回数の期待値 E は
for (i = 1, E = 0; i <= x + 1; i ++) E += (2.5 * (x + 1) - 1) * p(i);
ここで n = pow(2, x) と近似すると 3 < x < 5 辺りで binsearch1 と binsearch2 の比較回数の大小が入れ替わります。
で、この考え方が正しいとすれば配列の要素数が多くなれば binsearch2 の方が平均的には速いと言えそうですが…。
>>814のテストを v[] の要素数を色々変えて試してみると良いと思います。
0833830
NGNG要素数が少ないとあまり時間がかからないので差を考える必要が少なくなるから特別な場合でない限り
binsearch2を使った方が良いというのは素人考えかな…
0834名無し@沢村
NGNGそれがヤツがヤシに変化し、ヤシ=香具師になったものよ。
覚えておけ。
0835デフォルトの名無しさん
NGNGローカルな方言でしょ?
0836デフォルトの名無しさん
NGNG0837754
NGNG数日助け船を待ったのですが・・・。
スレを移動した方がいいのでしょうか?
0838デフォルトの名無しさん
NGNG日本語は正しく使いましょう。
電波さんだけがわかる言葉なんて意味がありません。
つまりソートして何番目かを調べるプログラムを理解してればいいのかな?
#include <stdio.h>
int main(int argc, char * argv[]) {
int x, i, flag, b[8];
int a[8] = {50, 70, 45, 55, 85, 90, 50, 70};
flag = 1;
while (flag == 1) {
flag = 0;
for (i = 0; i < 7;i ++) {
if (a[i] < a[i + 1]) {
x = a[i];
a[i] = a[i + 1];
a[i + 1] = x;
flag = 1;
}
}
}
/* つづく */
for (i = 0; i < 8; i ++) b[i] = i + 1;
for (i = 1; i < 8; i ++) {
if (a[i] == a[i - 1]) {
b[i] = b[i - 1];
}
}
for (i = 0; i < 8; i ++) {
if (a[i] == 70) {
printf("%d\n", b[i]);
break;
}
}
return 0;
}
・for 文の i の意味を理解する。
・a[] と b[] の使われている目的を理解する。
こんなところでどうでしょ。
0842デフォルトの名無しさん
NGNGA[100]
の配列からランダムに選ばれた80個の要素には1を割り振り
残りの20個には0を割り振るようなコードを
書きたいのですが、どうすればよいですか?
0843デフォルトの名無しさん
NGNGそれは密かに乱数のアルゴリズムを聞いているんでせうか。
すごく頭の悪い方法かもしれないけど…。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char * argv[]) {
int i, j, A[100];
srand(0);
for (i = 0; i < 100; i ++) A[i] = 0;
for (i = 0; i < 80;) {
j = rand() % 100;
if (A[j] == 0) {
A[j] = 1;
i ++;
}
}
for (i = 0; i < 100; i ++) {
printf("%d ", A[i]);
if ((i % 20) == 19) printf("\n");
}
return 0;
}
0845デフォルトの名無しさん
NGNGここに1〜Nまでの整数をランダムに発生して利用したい。
条件は以下
・完全な乱数を発生する方法。
・時間とかシステムによらない乱数。
・同じ条件で再現性がない乱数を取得できること。
提案、ネットワークを利用してURLの
一行の文字列(改行までの)から乱数を得る方法等。
だと、速度が遅い。
0846デフォルトの名無しさん
NGNG完全な乱数なんて不可能です。
0847デフォルトの名無しさん
NGNG不可能です。
0848デフォルトの名無しさん
NGNG小数点が切り捨てられるのですが、
そこを、四捨五入にするような方法はありますか?
0849デフォルトの名無しさん
NGNGです。
0850デフォルトの名無しさん
NGNG#incude <stdio.h>
main(){
double d1=0.5l,d2=0.49l;
int i1, i2;
i1 = d1 + 0.5l ;
i2 = d2 + 0.5l ;
printf("%d %d",i1,i2);
return 0;
}
0851デフォルトの名無しさん
NGNGround
0852デフォルトの名無しさん
NGNG円周率(π)を求める計算で有名な東大の金子教授ですが、
なぜそれが正しい解答だと言えるんでしょうか?
0853デフォルトの名無しさん
NGNGフェルマーの定理も解いたそうです。
0854デフォルトの名無しさん
NGNGBorlandのフリーコンパイラ(BCC55)で画面描画を
「Jpg」形式のファイルで保存する方法。
「問3」
Borlandのフリーコンパイラ(BCC55)で「BMP」形式のファイルを
「Jpg」形式のファイルに保存する方法。及びその逆(「jpg」→「Bmp」)
0855デフォルトの名無しさん
NGNGfclose("*.bmp",fin);
0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNGrand()ですら完全な乱数ではない
トランジスタのベースをオープンにした基板でも作るか?
いや,それでも完全な乱数とは言えないかも
「完全な乱数」を数学的に定義してごらん
そんな問題を出した先生に反論できそう
もしかして,それが正解なのかも知れない
0858デフォルトの名無しさん
NGNG$ cc -lm simulation.c
/tmp/ccqjEObs.o: In function `main':
/tmp/ccqjEObs.o(.text+0x30c): undefined reference to `round'
というエラーがでます。
どうしてでしょうか?
0859754-756
NGNGばっちし参考になります。
自分でも数パターン考えてみます。
レベルが低いので、問題はもっと稚拙な
プログラムになる可能性もあるのですが・・・。
わざわざ、あまり美しくないプログラムを聞く
っていうのもなんですが・・・^^;
0861デフォルトの名無しさん
NGNGCではround関数をサポートしてないのでしょうか?
それとも、コンパイラが悪いのでしょうか?
私の手持ちのリファレンスには載ってません。
他の方法を考えた方が良いと思います。
0863デフォルトの名無しさん
NGNG他の方法なにかないですか?四捨五入の。
0.5 足して int にキャストすればいいんじゃないかな。
0865864
NGNG0866デフォルトの名無しさん
NGNGひたすらに回り道してたから……
0867デフォルトの名無しさん
NGNG環境依存だが /dev/random 系のエントロピーものを使うか、
が妥当なレベルではある。
0868デフォルトの名無しさん
NGNGそこで質問なんですが、
2003/01/02
入力:_
2003/01/02
のように表示し、入力をアンダーバーのところで待つ といったことはできるんでしょうか?
2003/01/02
入力:_
のような形ならもちろんできるんですが、入力を文字列の途中で行いたいです。
御教授よろしくお願いします。
0869デフォルトの名無しさん
NGNGprintf("入力:\n");
scanf(
を
printf("入力:");
scanf(
0870デフォルトの名無しさん
NGNGhttp://www.geocities.co.jp/Beautycare/8256/2002.5after.html
・゚・(ノД`)・゚・。
0871デフォルトの名無しさん
NGNGこれはどうすればいいんでしょうか?
0872デフォルトの名無しさん
NGNG0873868
NGNGありがとうございます!!早速やってみます。
0874868
NGNG0875あぼーん
NGNG0876デフォルトの名無しさん
NGNGttp://www.google.co.jp/search?q=VT100+%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9&ie=UTF-8&oe=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
0877デフォルトの名無しさん
NGNGしたのですが、
simulation2.c:158: arithmetic on pointer to an incomplete type
というエラーがでます。
簡単化したソースは
main()
{
int rt[MAX_NODE][MAX_RES][MAX_NODE];
rt_initialize(rt);
}
void rt_initialize(int rt[][][MAX_NODE])
{
int i,j,k;
for ( i=0; i < MAX_NODE; i++){
for(j=0; j < MAX_RES; j++){
for(k=0;k < MAX_NODE; k++){
rt[i][j][k] = 0;
}
}
}
}
というものです、どうすればいいでしょうか?
よろしくお願いします。
0878C++厨
NGNG空でイイのはもっとも変数名に近い左の1つだけなはず
//int rt[][MAX_RES][MAX_NODE]
//int (*rt)[MAX_RES][MAX_NODE]
void rt_initialize(int rt[MAX_NODE][MAX_RES][MAX_NODE])
{
int i,j,k;
for ( i=0; i < MAX_NODE; i++){
for(j=0; j < MAX_RES; j++)
for(k=0;k < MAX_NODE; k++)
rt[i][j][k] = 0;
}
0879C++厨
NGNG0880デフォルトの名無しさん
NGNGそうだったんですか。
一つ学びました。有難うございます。
0881デフォルトの名無しさん
NGNG俺なんか2次元配列引数に渡すだけで大パニックだす。
0882754
NGNG年明けにテストがあるのですが、問題とヒントとなる元ソースが与えられていて、
テストには完成したプログラムが、穴埋めで出てきて回答するという方式のようなのです。
そこで、みなさんに先生が、ヒントのソースと先生自身が出したヒントを元に、
どのようなプログラムを組んで、どこを穴埋めにするか想像していただけないでしょうか?
先生になったような気持ちでお願いします。
※授業進度は初歩程度で、文系のプログラミング科目なので、
難易度はかなり易しめです。
問題
次表のような試験の結果がある。この試験で学籍番号の生徒は、何位になりますか?
学籍番号 0 1 2 3 4 5 6 7
得点 50 70 45 55 85 90 50 70
ヒントの元ソースは以下です・・・
0883754
NGNGmain()
{
int a[8];/*得点を記録する変数*/
int i,j;
int x;/*人数を記録する変数*/
int b[8];/*順位を記録する配列*/
a[0]=50; a[1]=70; a[2]=45; a[3]=55; a[4]=85;
a[5]=90; a[6]=50; a[7]=70;
/**** 一人の生徒の順位だけ求める場合 ****/
/** まずはこれをつくる **/
/* 例えば0番の生徒の順位を求める*/
/* B1.人数は1からはじめる(最後に1足す分を最初に済ませる)*/
/* B2.全員の得点をひとつずつ順番に取り出しながら */
for(i=0; i<8; i=i+1){
printf("%d番の生徒 得点%d\n",i,a[i]);
/* B3.もし、a[0]より取り出した得点(例えばa[i])が大きければ */
if(a[0]<a[i]){
0884754
NGNG}/* B3.の終わり */
}/* B2.の終わり*/
/* B4.人数の値が0番の生徒の順位 */
/**** 一人の生徒の順位だけ求める場合 終わり ****/
/**** 全員の順位を求める場合 ****/
/* 0番から7番まで、生徒を順番に呼び出しながら、B1.〜B4.を繰り返す */
/**** 全員の順位を求める場合 終わり ****/
長くて読みづらく申し訳ありません。
お願いします
0885デフォルトの名無しさん
NGNG0886754
NGNGなんとか教えていただきたいのですが・・・。もちろん、回答を元にして、
もう一度自分で理解してみようとするつもりですが・・・。
必要があれば暗記もしますし・・
処理の内容としては、
・生徒Aの得点とほかの生徒の得点を順番に比較
・Aより高い得点をとっている生徒数Xを求める
・Aと全生徒との得点比較終了時に、Xに1を加えるとAの順位になる
・これを全ての生徒について実行すると全員の順位がきまる
ぐらいでいいと思うんですが・・・
0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNGC言語についての質問ではないと思うのですが質問します.
1フレーム640×480画像(RGB各値)をキャプチャできるものを
プログラムしたのですが,
これをmpegで保存したいんです.
フレームは何枚もキャプチャできます.
どのライブラリをどのように使用していけばいいのでしょうか?
一応宿題といえば宿題なんで。。。
教えてください。
0889デフォルトの名無しさん
NGNG>どのようなプログラムを組んで、どこを穴埋めにするか想像していただけないでしょうか?
> 先生になったような気持ちでお願いします。
ワラタ
0890C初級者
NGNG>先生になったような気持ちでお願いします。
その先生は多分根性が曲がっていると思うので、ヒントのソースを変更する可能性があるっす。
んで、取り合えず組んでみたものの、デバックしてないのであとはよろしく。
穴埋めに関しては、>>885と同意見
#include <stdio.h>
int ban[8] = { 0, 1, 2, 3, 4, 5, 6, 7 };
int ten[8] = { 50, 70, 45, 55, 85, 90, 50, 70 };
int i, j, zyu[8];
void mainloop( void )
{
for( i=0; i < 8; i++ ){
for( zyu[i]=1, j=0; j < 8; j++ ){
if( ten[i] < ten[j] )
zyu[i] += 1;
}
}
}
int main( void )
{
mainloop( );
fprintf( stderr, "番号:" ); scanf( "%d", &i );
fprintf( stderr, "[%d]番目\n全員の順位\n", zyu[i] );
for( i=0; i < 8; i++ )
fprintf( stderr, "[%d]番目,,,学生番号[%d],,,点数[%d]\n", zyu[i], ban[i], ten[i] );
return (0);
}
0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNGなぜstderr?
ban[i]はiでいいような気も
0893デフォルトの名無しさん
NGNG入力形式がYYYYMMで、190001から999912の間だとOKなんですが、
if(strcmp(sItemYear,"190001") < 0 || strcmp(sItemYear,"999912") > 0)
ではチェックできないんでしょうか?
ちなみに、sItemYearは年月が入っています。
よろしくお願いします。
0894デフォルトの名無しさん
NGNG190013というのが不正であることを考慮する必要がある(13月は存在しない)
0895デフォルトの名無しさん
NGNG数値型に変換して出力したいのですがうまいきません。
何がいけないのか教えてください。
#include<stdio.h>
#include<stdlib.h>
main()
{
char a[10][5];
int j;
printf("数値を5個入力して下さい。\n");
for(j=0;j<5;j++)
scanf("%s",a);
printf("今、入力した数値は\n");
for(j=0;j<5;j++)
printf("%d\n",atoi(a[j]));
}
0896デフォルトの名無しさん
NGNG#include<stdlib.h>
main()
{
char a[5][10];
int j;
printf("数値を5個入力して下さい。\n");
for(j=0;j<5;j++)
scanf("%s",a[j]);
printf("今、入力した数値は\n");
for(j=0;j<5;j++)
printf("%d\n",atoi(a[j]));
}
0897デフォルトの名無しさん
NGNG「うまいこといかない」ではなく、どんな風になってしまうのか
きちんと書きましょう。それがデバッグへの第一歩。
まずは、入力された内容が何処に格納されるのかチェックだ。
0898デフォルトの名無しさん
NGNGありがとうございました。
0899754
NGNG自分なりにも試行錯誤してみます。
0900デフォルトの名無しさん
NGNGまた、疑問がでたので質問させて欲しいのですが
2次元の配列に数値を文字列で入力して、それを
数値型に変換したものをそのまま利用するには
どうすればいいでしょうか。変換した数値をクイック・ソート
したいのですが・・・。
お願いします。
0901デフォルトの名無しさん
NGNG{
return *(int *)p - *(int *)q;
}
int main(void)
{
char a[5][10];
int j, i[5];
printf("数値を5個入力して下さい。\n");
for (j = 0; j < 5; j++)
scanf("%s", a[j]);
printf("今、入力した数値は\n");
for (j = 0; j < 5; j++)
printf("%d\n", i[j] = atoi(a[j]));
qsort(i, 5, sizeof(int), cmp);
printf("ソートした数値は\n");
for (j = 0; j < 5; j++)
printf("%d\n", i[j]);
return 0;
}
0902デフォルトの名無しさん
NGNGありがとうございます。
勉強になります。
0903ムズ過ぎ
NGNG1.)
実数を4個読み込み、その中の最大値を出力するプログラム(mymay.c)を作れ。
2.)
2つの正整数を読み込み、それらの最大公約数と最小公倍数を求めるプログラム(gcdlcm.c)を作れ。
3.)
高所から物体を離して自由落下させたとき、初速度を0とすると時刻t、時刻tのときの速度v、t秒間の垂直方向の距離(変化)yとした時の、
各時間における速度と変位を計算し、時刻t、速度v、変位yを画面に表示するプログラムを作成せよ。
このとき時刻tは0.0から1.0まで変化するものとし、0.1刻みで計算して表示せよ。
・v=gt
・y=gt*gt/2
・g=9.8[m/s*s]
4.)
n(n≦100)人の学生の英語・国語・数学の試験の点数を読み込み、各人の3科目の合計点と平均点及び各科目の平均点を計算して出力するプログラム(exam.c)を作りなさい。
ただし、プログラムをテストする時は学生数を5人としてよい。
5.)
f(x)=sin(x)をマクローリン展開すると
f(x)=
∞
Σ *(-1)^k-1*{(x^2k-1)/(2k-1)!}
k=1
となる。これを利用してsin(x)の値を多項式近似する関数double mysin(double x)を定義し、この関数を利用して、読み込んだxのsin(x)を計算して出力するプログラム(sin.c)を作りなさい。
このプログラムを実行して、xがπ/12・π/6・π/4・π/3・5π/12の時のsin(x)の値を出力しなさい。
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG0908906
NGNG0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNG長方形を表示させたいのですが、うまくいかなくて困っています。
Visual C++を使用しています、アドバイスをいただいてもよろしいでしょうか?
0912デフォルトの名無しさん
NGNGVC++ は知らないのだけど graph.h が C++ で書かれているならだめだろう。
0913デフォルトの名無しさん
NGNGgraph.hはどこにあるのかと、小一時間(ry
0914デフォルトの名無しさん
NGNG0915デフォルトの名無しさん
NGNGだとしますとC言語では図形描画は不可能ですか…?
最終的な目標は前にprintfで表示した数字を消したいのです。
長方形で塗り潰そうと思ったのですが…他にいい案が思いつきません。
まだまだCへの理解が未熟で申し訳ないのですが、他の良い方法を教えていただきたいです。
よろしくお願いします。
0916デフォルトの名無しさん
NGNG>C言語では図形描画は不可能ですか…?
環境依存。できなくはない。
とりあえず拡張子を .cpp にしてコンパイルしてみたら?
0917デフォルトの名無しさん
NGNGcppにするなとのお達しでして…すみません(´Д`;)
0918デフォルトの名無しさん
NGNG>長方形で塗り潰そうと思ったのですが…他にいい案が思いつきません。
(;⌒ー⌒) オイオイ
0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNG>printfで表示した数字を消したい
無理。待人来らず。早々に諦めて吉。
0921デフォルトの名無しさん
NGNGもっと具体的な最終目標は5×5の配列に1〜50の数字をランダムに配置したものを、
ビンゴのように1つずつ消していきたいのです。
エスケープシーケンスで部分的に消すことは可能ですか?
0922デフォルトの名無しさん
NGNG前の行に遡るのは不可能だよ。
一手ずつ5×5の数字だかマスだかを再表示するしかないよ。
コンソールのバッファなんか気にしなくてもいいんじゃないかな。
0923デフォルトの名無しさん
NGNGunsigned int aaa; ← 0xFFDDEECCの4byte Data
下記のように1byte Dataにしたいのですが
どのようにやればうまくいきますか?
unsigned char a1; ← 0xFF
unsigned char a2; ← 0xDD
unsigned char a3; ← 0xEE
unsigned char a4; ← 0xCC
また逆に詰め込みたい場合はどうするのが良いのでしょう。
0924デフォルトの名無しさん
NGNGそうでつか…ありがとうございます。
再表示は考えましたが…ビンゴゲームの為消していく順番もランダムなので、
相当というか無駄に物凄く長いソースになりそうなのです…
ぐぐったり参考書を漁ってビンゴゲームのサンプルソースを探してみたのですが
参考にできるものがなかなか見つかりません…
出題者は構造体を使えばできると言っていたのですが、なかなか難しいので困っています…
0925デフォルトの名無しさん
NGNGa1 = (aaa & 0xff000000) >> 24;
0927デフォルトの名無しさん
NGNGよろしければ、方法をお願いします。
0929デフォルトの名無しさん
NGNG少しは頭を使え…
a2 = (aaa & 0x00ff0000) >> 16;
>>927
sprintf
0930927
NGNGほんとに助かりました。m(_ _)m
0931デフォルトの名無しさん
NGNGint型では、どのくらい収納できるの?
2次元配列で6万×6万でできなかったです。
(サイズでかすぎと警告がでた)
0932デフォルトの名無しさん
NGNG規格では上限はない
翻訳環境と実行環境がそれぞれ持つ処理系限界の悪い方に束縛されることになる
0933デフォルトの名無しさん
NGNG0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNG例えばsizeof(int)==4の処理系でint a[60000][60000];を使おうとすると
4x60000x60000で14,400,000,000bytesのメモリが必要だが
おまえさんのマシンはメモリをどのくらい積んでいるんだ?
あるいは買い揃える場合の予算はどのくらいだ?
0936デフォルトの名無しさん
NGNGaaa = ((unsigned int)a1 << 24) | ((unsigned int)a2 << 16) | ((unsigned int)a3 << 8) | a4;
0937デフォルトの名無しさん
NGNGそれテストしてるだけ?それとも実際に必要なの?
実際に必要なら疎な配列作るか
struct{
int x, y;
struct{
} yourdata;
}
な配列を作れ。
0938デフォルトの名無しさん
NGNG>PCの
( ´,_ゝ`)プッ
0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNGファイル名=SEC01.E
(1) I turn off the alarm clock.
(2) I wake up.
(3) I stretch.
ファイル名=SEC01.F
(1) 目覚まし時計を止める
(2) 目がさめる
(3) のびをする
まとめたファイル=SEC01.G
I turn off the alarm clock.
目覚まし時計を止める
I wake up.
目がさめる
I stretch.
のびをする
まとめたファイルでは、(1)などの数字は除きます。また1つのフォルダにこのような2つのファイルの組が20組ある(SEC01.E〜SEC20.E)のを全部同じ操作するにはどういうコードにすれば良いですか?
おながいします。
0941デフォルトの名無しさん
NGNGCでか? C++?
0942940
NGNGどちらでもかまわないです。
0943デフォルトの名無しさん
NGNG#include <fstream>
#include <string>
#include <cstdio>
int main()
{
for (int i = 1; i <= 20; i++) {
char sece[20], secf[20], secg[20];
std::string buf1, buf2;
std::sprintf(sece, "SEC%02d.E", i);
std::sprintf(secf, "SEC%02d.F", i);
std::sprintf(secg, "SEC%02d.G", i);
std::ifstream ifs1(sece);
std::ifstream ifs2(secf);
std::ofstream ofs(secg);
while (std::getline(ifs1, buf1)) {
if (!std::getline(ifs2, buf2)) break;
ofs << buf1.substr(4) << '\n' << buf2.substr(4) << '\n';
}
}
}
0944デフォルトの名無しさん
NGNG#include <sstream>
#include <iomanip>
#include <fstream>
#include <string>
#include <cstdio>
int main()
{
for (int i = 1; i <= 20; i++) {
std::ostringstream sece, secf, secg;
std::string buf1, buf2;
sece << "SEC" << std::setw(2) << std::setfill('0') << i << ".E";
secf << "SEC" << std::setw(2) << std::setfill('0') << i << ".F";
secg << "SEC" << std::setw(2) << std::setfill('0') << i << ".G";
std::ifstream ifs1(sece.str().c_str());
std::ifstream ifs2(secf.str().c_str());
std::ofstream ofs(secg.str().c_str());
while (std::getline(ifs1, buf1)) {
if (!std::getline(ifs2, buf2)) break;
ofs << buf1.substr(4) << '\n' << buf2.substr(4) << '\n';
}
}
}
0945デフォルトの名無しさん
NGNG0946940
NGNG考えて見ます。
0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNGかける数を文字列として受け取ります。
つぎに何桁に区切って他のint型の配列に入れたいのですが、char型をint型にうまくできません。
どのようにしたらいいのでしょうか?
0950デフォルトの名無しさん
NGNGとりわけPGは言葉の正確さを大事にせい
i=a[i]-'0';
0951949
NGNGありがとうございます。
>とりわけPGは言葉の正確さを大事にせい
すいません。32ビットより大きい整数で。
次からはちゃんと書きます。
0952デフォルトの名無しさん
NGNGそんなプログラムはC/C++で書けないでしょうか?
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNGi=0;
i=i*10+a[0]-'0';
i=i*10+a[1]-'0';
i=i*10+a[2]-'0';
i=i*10+a[3]-'0';
0955デフォルトの名無しさん
NGNG配列で保持しておいて消していくところを0にして
0のところをスペースにすれば良いだけでは?
対して処理もいらないと思う。
0956デフォルトの名無しさん
NGNGmain(){
FILE *fp
if((fp=fopen(FILENAME,"r"))==NULL){
printf("cannot open FILENAME,");
exit(1);
}
fclose(fp)
}
ファイルが開けなかった時に
cannot open FILENAMEと出てしまいます。
cannot open xxx.xと表示させるにはどうしたらよいでしょうか。
0957デフォルトの名無しさん
NGNG095860cm浮き上がるストレート
NGNG遅レスですがビンゴを作ってみました。かなり読みにくく、無駄は多いと
思いますが、よかったら参考にしてみてください。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=61
0959デフォルトの名無しさん
NGNG数値以外を入力した時に、エラー表示を繰り返させたいのですが
どのようにすればいいでしょうか。お願いします。
0960デフォルトの名無しさん
NGNG#include <stdlib.h>
#define NUM_COLUMNS 2
#define INPUT_NUM 5
int main()
{
char num_buf[INPUT_NUM][NUM_COLUMNS + 1]; // 二次元配列
char buf[256];
int i, dummy;
printf("に %d 桁の数値を %d 個入力してください。\n", NUM_COLUMNS, INPUT_NUM);
for(i = 0; i < INPUT_NUM; i++) // 5 回入力
{
if(fgets(buf, sizeof(buf), stdin) == NULL)
exit(-1);
if(sscanf(buf, "%d", &dummy) == 1 && dummy >= 0 && dummy <= 99)
{
sprintf(num_buf[i], "%02d", dummy);
continue;
}
for(; ; )
priintf("エラー\n"); // エラー表示を繰り返す
}
return 0;
}
0961デフォルトの名無しさん
NGNG> priintf("エラー\n"); // エラー表示を繰り返す
素敵だ
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNG10
数値入力
10
数値入力
10
という風にで入力する度に改行するのではなく、
数値入力 10 数値入力 10 数値入力 10
という風に入力を行いたいのですが
どのようにすればいいでしょうか?
0964デフォルトの名無しさん
NGNG5×5の配列を与えて1〜100までの数を乱数で与え、
しかも全ての数値が異なる値にするにはどうすればよいでしょうか?
乱数で与えるところまではわかるのですが
同じ値の数値があるかどうかのチェックの仕方がわかりません・・・
0965デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define swap_int(i, j) do { int tmp = i; i = j; j = tmp; } while(0)
int main()
{
int base_table[100], rand_table[5][5];
int i, j, r;
srand(time(NULL));
for(i = 0; i < 100; i++)
base_table[i] = i + 1;
for(i = 0; i < 99; i++)
{
r = (int)(rand() / (double)RAND_MAX * (99 - i) );
swap_int(base_table[99 - i], base_table[r]);
}
for(i = 0; i < 5; i++) for(j = 0; j < 5; j++)
rand_table[i][j] = base_table[i * 5 + j];
for(i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
printf("%4d", rand_table[i][j]);
putchar('\n');
}
getchar();
return 0;
}
0966デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int rand_table[5][5];
int i, j, r, i_sub, j_sub;
srand(time(NULL));
for(i = 0; i < 5; i++) for(j = 0; j < 5; j++)
{
try_rnd:
r = (int)(rand() / (double)RAND_MAX * (99 - i) ) + 1;
for(i_sub = 0; i_sub < i - 1; i_sub++) for(j_sub = 0; j_sub < 5; j_sub++)
if(rand_table[i_sub][j_sub] == r)
goto try_rnd;
for(j_sub = 0; j_sub < j - 1; j_sub++)
if(rand_table[i][j_sub] == r)
goto try_rnd;
rand_table[i][j] = r;
}
for(i = 0; i < 5; i++)
{
for(j = 0; j < 5; j++)
printf("%4d", rand_table[i][j]);
putchar('\n');
}
getchar();
return 0;
}
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNG#define N 25
int one_times_rand(void)
{
static int first = 1, size = N;
static pool[N];
int i, j, t;
if (first) {
for (i = 0; i < N; i++)
pool[i] = i + 1;
first = 0;
}
j = rand() % size--;
t = pool[size]; pool[size] = pool[j]; pool[j] = t;
return pool[size];
}
0969デフォルトの名無しさん
NGNGstatic pool[N] → static int pool[N]
まあどっちでも動くが、念のため。
0970デフォルトの名無しさん
NGNGstatic pool[N] → static int pool[N]
まあどっちでも動くが念のため。
0971デフォルトの名無しさん
NGNG0972デフォルトの名無しさん
NGNGそれを何に使えと?
0973arm
NGNG0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNG自分で考えろ。
0976デフォルトの名無しさん
NGNGあなたが何も考えていない事はわかった。
0977デフォルトの名無しさん
NGNGマルチポスト?するとこういうことに……
0978964
NGNGなんとなく雰囲気はつかめました。
後は実際に自分で書いてみることにします。頑張ります。
ちなみに私は失礼ですが972さんではないです。念のため。
0979デフォルトの名無しさん
NGNGその他なら'.'に変更する関数をポインタを用いて作りなさい。
このとき、その関数が正しく実行されるかどうかを確認するための
プログラムの全体を提出しなさい。
ポインタがまだ理解できてないので分からないです。よろしくお願いします。
0980デフォルトの名無しさん
NGNGwhile ( *s ) {
if ( isdigit(*s) )
*s++ = '9';
else if ( isupper(*s) )
*s++ = 'A';
else if ( islower(*s) )
*s++ = 'a';
else
*s++ = '.';
}
}
0981デフォルトの名無しさん
NGNG{
while (*str) {
if (isdigit(*str)) {
*str = '9';
} else if (isupper(*str)) {
*str = 'A';
} else if (iflower(*str)) {
*str = 'a';
} else {
*str = '.';
}
str++;
}
}
「ポインタを用いる」というのがどんなものを想定しているのかはわからないけど、
こんな感じでいいんじゃないかな。
あと、「プログラム全体」というのは、main関数のことだろうけど、
それくらいは自分で書いてね。
0982981
NGNGタイプミスがあったよ。ごめん。
0983979
NGNGint main() {
int a,i;
char *b;
scanf("%d",&a);
for(i=0;i<a;i++) {
gets(b);
f(b);
printf("%s",&f);
}
return 0;
}
0984デフォルトの名無しさん
NGNGchar *b;
を
char b[265];
くらいにしとき。
0985979
NGNGprintfのところがおかしいと思うんだけど。
0986デフォルトの名無しさん
NGNG0987979
NGNGどうもありがとうございました。
0988デフォルトの名無しさん
NGNG[問題]CPUのシミュレータ
CPUの動作を模擬するプログラムを書いてみよう。
CPUは、命令をメモリから取り出し、その命令に基づいた動作をする。
動作は例えばメモリからデータを読み出してCPU内のレジスタにコピーしたり、加減乗除演算をしたりする。
この一連の動きを真似るプログラムを書く。
CPUは、8ビット演算、メモリ容量は32ワード、入出力は2進数で表示。
動作の検証には、簡単なプログラムをメモリ上に用意し、
それを1ステップごとに実行した結果を表示する。
命令部分はswitch文を使うのはわかるのですが、
2進数による入出力というのができず、全体的にどのようにすれば良いかもわかりません。
どうかお願いします。
0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNGCASL/COMETエミュレータでも提出しとけ。
0991デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNGSIMCOMをどうぞ
0993デフォルトの名無しさん
NGNGman qsort
man binsearch
0994C++厨 ◆vKuy6bx7T2
NGNG0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG逝って
0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。