宿題、手伝おっか?

このエントリーをはてなブックマークに追加
>>835
ゲームのループってーのは、ディスプレイのリフレッシュレートに
あわせて回すのが一般的です。

例えば、リフレッシュレートが60Hzの場合、画面は1秒間に60回しか
書き換わらないので、それ以上の速度でVRAMを書き換えても、
無駄です。

なので、普通は1ループ終了後(すなわち、キーを一回読み込み、
必要な処理をし、バックバッファに次のVRAMイメージを描画し終った後)、
ダブルバッファをフリップするタイミング(垂直帰線期間の開始)までウェイトします。

つーことで、CALLBACKやループでキーを読み出すのではなく、
垂直帰線期間が開始したら、1回分読み出せばOKです。

(DirectDraw使ってるなら、LPDIRECTDRAWSURFACE3のFlip()呼ぶ時に、
Flip(NULL, DDFLIP_WAIT)みたいにDDFLIP_WAIT指定すれば、
勝手に垂直帰線期間までウエイトしてくれるんじゃないかなぁ?
まちがってたらスマン。)
そもそも、ノートとか垂直同期検出不可能な環境もあるから、
現在はタイマで待つのが一般的かと。
C言語で、BMPファイルのグラフィクデータを直接いじるやり方ってどうやるのでしょうか。
調べましたが、どうにもアドレスでどうにかするしかないらしいのですが・・・
>>840
アドレスでどうにかするんじゃないとしたら、どんなふうに直接
いじりたいの???
getColor(bmp,x,y)とかsetColor(bmp,x,y,color)みたいなかんじ?
842デフォルトの名無しさん:02/04/17 12:52
不定期アゲ
>>835
ちゃんとスレッドを作って実行してる?

>>840
直接操作しないとパフォーマンスが悪いよ
844デフォルトの名無しさん:02/04/17 22:08
すいません、教えてください。
Cなんですが
宿題で、ANK文字や漢字1バイト、漢字2バイトを
見分けなければならないのですが、
どうやって見分ければいいのでしょうか?
教えてください。
>>844
ctype
>>844
ANK文字って響き、懐かしいなぁ。
ほい。
http://www.google.com/search?hl=ja&q=%8A%BF%8E%9A+ANK+%94%BB%95%CA%81@%91%E6%82P%83o%83C%83g&btnG=Google+%8C%9F%8D%F5&lr=lang_ja

(余談だけど、ANKって、Alphabet Numeric Kana の略なんだね。)
>>846
魚でなく釣り竿を渡す。大岡越前のようです。
漏れは消防の頃、大岡越前をおおおかこしまえと読んでいました。
849844:02/04/17 22:19
わかんない(汗
ctypeはしらべてわかりましたが
やっぱ漢字を見分けるのが出来ません。
どなたか簡単に教えてください〜
851844:02/04/17 22:24
>>850サマ!!
ありがとうごぜえます〜♪
>>850の悪行によって>>851のプログラマ人生は絶たれたのでした・・・。
そんな事も自分で調べられないなら
元々プログラマに向いてないでしょ。
>>851>>850のソースを活用できないに1ドラクマ。
>>844
その課題、それを分別してから、単語ごとに区切ってクイックソートしたりする?
856デフォルトの名無しさん:02/04/23 19:52
fortranの参考書を本屋で探したんですが、どこにも売ってませんでした。
先生も文法をたいして教えずに課題を出しやがる。
問題は1、2、3、・・・20の等差数列の和を出すプログラムを書けをいうものです。
どなたかまじで助けてください。
1から20までの総和

01 c
02 c
03 c
04 s=0.
05 do i=1,20
06 s=s+i
07 end do
08 c
09 write(*,*) 's=',s
10 c
11 end
>>856
Σn=(n+1)*n/2
n=20として 21/20/2=21*10=210

よって
INTEGER ANS
    ANS=210
    WRITE(*,*) '答えは',ANS
    END

の4行で終わりかと
859デフォルトの名無しさん:02/04/23 20:43
ほんとありがとうございました。
まんま書いてもなぜかできなかったんですが、
この前授業でもらったプリントと重ねあわせてやってみたところ。
下のやつで出来ました。
n=0
do i=1,20
n=n+i
end do
write(*,*) 'n=',n
stop
end
注文した参考書が届いたらちゃんと勉強したいと思います。
860デフォルトの名無しさん:02/04/26 16:47
答えを整数型で表示する次のプログラムを、実数で表示するようにかえてください。
言語は見ての通りCです。お願いします。
#include <stdio.h>
#define INPUT_FORMAT "%d"
#define SUM_FORM "%d"
void input(int);
void sum(int);
int M[100],n,m,l,s=0;
main()
{
printf("数を入力してください。結果を出したいときは数字以外のものを入力してください\n");
input(n);
sum(n);
m=s/6;
l=s%6;
printf("商="INPUTF_ORMAT"\n",m);
printf("あまり=" SUM_FORM"\n",l);
}

void input(int n)
{
for(n=0; n<100; n++)
{
if( scanf(INPUT_FORMAT,&M[n])!=1 )
break;
printf("M[%d]="SUM_FORM"\n",n,M[n]);
}
return (M);
}
void sum(int n)
{
for(n=0;n<100;n++)
s+=M[n];
return (n);
}
>>860
void の関数でreturn(M)とかやって、コンパイルとおるのか?
それ以前に、
void input(int n)
{
...(略)
return (M);
}
void sum(int n)
{
...(略)
return (n);
}
って何よ。
>861
VC++6のデフォルトなら、
「warning C4098: 'input' : 戻り値の型が 'void' で宣言された関数が、値を返しました」
とか言われるけど、コンパイルはできる。
なんかCのイヤなところを見てしまった気分
864860:02/04/26 17:01
>861さん
863さんの言う通りコンパイルは出来るんですよ。
ただこのプログラムを実数表示にしようとするともう頭が・・・・。
何とかなんないでしょうかね?
printf("商=%d.0\n",m);
printf("あまり=%d.0\n",l);
866デフォルトの名無しさん:02/04/26 17:06
>>864

main()
{
printf("数を入力してください。結果を出したいときは数字以外のものを入力してください\n");
input(n);
sum(n);
printf("商=%g\n",s/6.0);
printf("あまり=%d",l%6);
}

あんたの意図がいまいちわからんけど、
実数表示ならこれでいいと思う。
input()もsum()も引数をとる意味が無いような…
868860:02/04/26 17:15
>865さん
>866さん
ありがとうございます。今からやってみます。ちなみにdefine文は書き
換えなくてもいいのでしょうか?それとこのプログラムの正しい戻り値っ
てどうすればいいのでしょう?気になったもので。
>867さん
僕にも意味はわかりません(笑 

869860:02/04/26 17:33
先生曰く「戻り値が正しくないから駄目です。やり直し。」
誰か〜、戻り値教えてください〜(泣
870デフォルトの名無しさん:02/04/26 17:41
>>869
もしかして教室から?

int input(int n)
int sum(int n)
871860:02/04/26 17:51
>870さん
回答ありがとうございます!コンパイルできました!ちなみにただ今授業の
真っ最中です。コソーリ書き込んでます。
で、新たな問題が・・・865さんと866さんの教えてくれたプログラムに
書き換えたんですけど、入力で実数の4.5とか入れるとその時点で終わってしま
います。この解決方法はどうすればいいのですか?
>>871
「答えを整数型で表示する次のプログラムを、実数で表示するようにかえてください。 」
って言ってたじゃん・・・
873860:02/04/26 18:12
>872さん
!!(;´Д`) すみません!どうやら間違いがあったようです。
正しくはさっきのプログラムに実数を入力しても正しく動くようにして
ください、ってことです。たとえば5.4と8.3と9.4を入力すると商に3、
あまりに5.1を表示できるように、ということです。文章力&プログラム力
なくてすみませんがよろしくお願いします。

874デフォルトの名無しさん:02/04/26 18:15
http://choco.2ch.net/test/read.cgi/news/1019808938/

【2ch vs TIME】我等が不死鳥田代-12【戦争】

1 :番組の途中ですが名無しです :02/04/26 17:15 ID:n4EtZFI6
■STEP 1
-------↓ここから-------
<html><head><meta http-equiv="refresh" content="0"></head><body>
<iframe height=500 width=500 src="http://www.time.com/gdml.dyn?page=www/time/asia/features/heroes/poll/asianheroes_new.oft&gameid=asianheroes2&q1=M%3C%21--2ch--%3Easashi+T%3C%21--2ch--%3Eashiro ">
</iframe></body></html>
-------↑ここまで-------
をメモ帳を立ち上げ、コピー&ペースト。
■STEP 2
それを、ファイルに「tashiro.htm」と名前を付けてデスクトップに保存。
■STEP 3
デスクトップにできた「tashiro.htm」を飽きるまでダブルクリックして、ブラウザを立ち上げる。

    ___
    /     \     __________
   /   ∧ ∧ \  /
  |     ・ ・   | < 生きろおめーら
  |     )●(  |  \__________
  \     ー   ノ
    \____/
875デフォルトの名無しさん:02/04/26 18:30
>>873
授業料500円払えや!
(って仕様を読み違えてる可能性有り)

#include <stdio.h>
#include <math.h>
int input(float M[], int);
float sum(float M[], int);

main()
{
float M[100], s;
int num;
printf("数を入力してください。結果を出したいときは数字以外のものを入力してください\n");
num = input(M, 100);
s = sum(M, num);
printf("商=%g\n", s / num);
printf("あまり=%g\n",fmod(s, num));
}

int input(float M[], int max)
{
int i;
for(i=0; i<max; i++)
{
if( scanf("%f",&M[i])!=1 )
break;
printf("M[%d]=%g\n",i,M[i]);
}
return i;
}

float sum(float M[], int num)
{
int i;
float s = 0.0;
for(i=0;i<num;i++)
s += M[i];
return s;
}
876860:02/04/28 09:31
>>875さん
お礼が遅れてすみません!ありがとうがざいました!
遅れた言い訳→授業中にネットをやっているのがばれて先生に激怒され、今日まで
演習室に立ち入り禁止処分を食らったため・・・・。しかも宿題増やされるし。
欝だ逝ってきます。

>>144
> 正確に言うとコンパイルとリンクね。
正確に言うと、プリプロセス -> コンパイル -> アセンブル -> リンク ね。

>>233
>使わない、と言うかぁー、使えない。

return そのものは使えるよ。

void func(void){
if(....){
........
return;
}else{
........
........
}
}

とか。
途中で処理を打ち切るのに使ってる。

>>390
> C言語での個人情報ファイルの作り方を教えてください。
>(ソート、検索が可能でレコードの追加、削除、訂正、新規などの操作ができるもの)
K&R の 5 章と 6 章に殆どそのものが載ってる。
880デフォルトの名無しさん:02/04/28 19:44
c++で1234と表示するプログラムなんですが、
kazu.cpp: In function `int main (...)':
kazu.cpp:21: no matching function for call to `kazu::setkazu (const
char[5])'
kazu.cpp:7: candidates are: void kazu::setkazu (const int *)
というエラーがでてうまくいきません。intとcharに関連したエラーだという
ことはわかるのですが、始めたばかりでどう直せばよいのかよくわかりません。
よろしく頼みます
//ヘッダファイル"kazu.h"
class kazu
{
int a [20];
public :
virtual void setkazu (const int *p_a);
virtual void putkazu();
};
//"kazu.h"END

//mainファイル"kazu.cpp"
#include<stdio.h>
#include<string.h>
#include<iostream.h>
#include"kazu.h"

void kazu::setkazu(const int *p_a)
{
for(int i=0;p_a[i]!='\0';i++){
a[i]=p_a[i];
}
}
void kazu::putkazu()
{
cout<<a\n;
}
void main()
{
kazu ka;

ka.setkazu("1234");
ka.putkazu();
}


881デフォルトの名無しさん:02/04/28 19:48
C言語で、+・−の演算子を使わずに、加算・減算ができるプログラムを
作りたいのですが・・・。教えていただけますか?インクリメント・デクリメントの
使用はOKらしいです。
>>880
setkazu に数字の配列を渡してるつもりなんだろうけど
"1234"は文字列(charの配列)だぞ。
883882:02/04/28 19:59
の割には
a[i]!='\0'
って書いてあったりするんだね。
わかってるのか、わかってないのか・・・
>>881
+=や-=はOKなのか?
>>883
intとcharの違いがわかってないと読んだ。
>>881
元の上位=A
元の下位=B
後の上位=C
後の下位=D
として
C=A and B
D=A xor B
とすれば加算になる。
これを桁数分だけ繰り返す。
887880:02/04/28 20:03
>>882
なるほど・・・では数字の配列として渡すにはどうすればいいですか?
888886:02/04/28 20:03
1ビットずつね
頭悪い回例
int add( int left, int right )
{
for( int i=0; i<right; i++ )
left ++;
return left;
}
ところで、型がdoubleだったら面倒だよな。

>>880
int nums[]={1,2,3,4,5,0};
ka.setkazu(nums);
とか
890882:02/04/28 20:07
>>887
というか、このクラスのコンセプトは?
もともと数を文字列で持つつもりで作ったんじゃないの?
>>881
こんなんどう?

int add( int i, int j)
{
_asm
{
mov eax, i
add eax, j
mov i, eax
}
return i;
}
>881
いいにくいんだが、別スレでがいしゅつ・・・。
ttp://pc.2ch.net/test/read.cgi/tech/1019372139/162-
893デフォルトの名無しさん:02/04/28 20:35
>>892
・・・鬱。
同じ授業か何かか?
894892:02/04/28 20:52
漏れも昔、他人のレポート丸写したから、べつにいいんだけどね。
たしかに授業でやるにはちと難かしいかも。
895881:02/04/28 21:33
>892様
既出でしたか。すいませんでした。リンク先を参考にしてみます。
896デフォルトの名無しさん:02/04/29 12:31
C言語の質問なんですが、int型の配列に、キーボードからの入力を格納していくにはどうすればいいですか?
>>896
getchar()で一文字ずつ取得するってのはどぉ?
>>896

char buf[MAX];
int k=0,n[N] ;
while(fgets(buf,MAX,stdin) && k<N){
/*ここでbufの内容が(scanfに)適正かチェック*/;
sscanf(buf,"%d",n+(k++));}

みたいな
899太田家:02/04/29 13:53
a.rea1+jimag
b.real+b.imag に対し、
a+b, a-b, a*b, a/b , eのa乗, aの絶対値
を求めるプログラムを教えて!ヒントキボンヌ
>>899
君は『人に何かを伝える』とはどういうことか、考えた事はありますか?
>を求めるプログラムを教えて!ヒントキボンヌ

無理に2ch用語使わなくてもいいんだよ?
やべっ漏れマジでe^a忘れた。
だれかe^aだけでいいから教えてくれよ。
>>902
a = x + iy
e^a = e^x * e^iy = e^x * ( cos(y) + i * sin(y) )
904900:02/04/29 14:19
良く見ると >>899 は…複素数か?
C99 で _Complex 型を使うってのはどうだ?つーか、言語何よ?
>>903
サンクス。
指数の加算は分離できるんだったね。
実数を一つ入力して(%lf)、全体の桁数を10桁として、それぞれ小数以下を
3桁、2桁、1桁で表示するプログラムを作りなさい。(%10.3f、***、***) ***
は各自決定せよ。
という問題があるのですが誰かわかりませんか?

>>906
VC++です
>>906
printfで%10.3fだと13桁にならない?
%*.*fを使うとよいかも。
>>906
私はわかりますが、決定するのはあなたです。
910デフォルトの名無しさん:02/05/01 16:27
>>909
てつだってねー
問題文見て答えが推測できなきゃダメ。
912デフォルトの名無しさん:02/05/01 16:31
>>911
だって〜まだ初めて一週間もたってないんですよ
たのみますよ〜
913デフォルトの名無しさん:02/05/01 16:33
#include <stdio.h>
void main(void)
{
double a;
scanf("%d",&a);
printf("%10.3f%10.2f%10.1f\n");
}
のどこが悪いかわかりません
始める前でもある程度予想つきそう。
>>908には手伝ってもらわないほうがいいでしょう。
916デフォルトの名無しさん:02/05/01 16:36
>>914
つかないっすよ〜
プログラムなんて初めてなんだから
>>916
参考書買え。
918908:02/05/01 18:03
>>915
(^_^;)

>>916

#include <stdio.h>

int main()
{
double d;
int keta;

scanf("%lf",&d);
for(keta=3;keta>0;keta--)
printf("%10.*f\n",keta,d);
return 0;
}
919デフォルトの名無しさん:02/05/01 18:08
次スレの女の子の名前は?
>>918
理解しにくい、プログラムの見本だな。出力結果も3行になるし、やっぱ
こいつには手伝って欲しくないよ。
921デフォルトの名無しさん:02/05/01 18:16
>>918
お〜すごいです〜!!!
欲を言うとFor関数習ってないので使わないでできるでしょうか?
”のえみ”でどうよ?
923918:02/05/01 18:18
>>920
なんで三行になってはいけないのよ・・・・

>>921
#include <stdio.h>

int main()
{
double d;

scanf("%lf",&d);
printf("%10.3f %10.2f %10.1f\n",d,d,d);
return 0;
}

forは関数じゃない。
924デフォルトの名無しさん:02/05/01 18:20
>>923
mathematicaと混同したw
まじでありがとうございます!!!!!!!!!!!!!!!!!!!!!!!
神!!
(・∀・)/I
少ないですがこれで
10.3fだと9桁しか出ないという罠
>>925
小数点は桁に含めないの?
>>923
元が一行だから。
>>920
この程度のプログラムで、理解しにくいってどのへん??
もしかしてネタなのか・・・
>>928 相対的な話だよ。
930928:02/05/02 01:28
>>929
なるほどね。
で、俺的にはfor()のあとには{}付けてほしいってくらいだけど、
他になんか気になる点ある?
>>929
もしかしてエラーチェックしていないってこと?
そんなの省略したに決まっているじゃない。
932930:02/05/02 01:58
>>931
エラーチェックしてないことが、理解しにくいってことにはならないだろ。
理解しにくいってのは、記述やアルゴリズムの問題。
933929:02/05/02 02:54
漏れは>>920じゃ無いから、べつに理解しにくいとは思わないけど。
934930:02/05/02 03:01
む・・・
すると>>920はやはりネタなのか・・・。ムカツク野郎だな。
935デフォルトの名無しさん:02/05/02 16:59
スマソ、
VBマガジン11月号の記事みてちとやってみたらクイックソートがうまくいかなんだが
ちと知恵貸してくれんかのう・・・

まずクラスモジュール定義して・・・

'qsort class

Option Explicit

Public Event compare(ByVal x As Long, ByVal y As Long, ByRef flag As Long)

Public Event swap(ByVal x As Long, ByVal y As Long)

Public Sub sort(ByVal startPos As Long, ByVal endPos As Long)

Dim i As Long
Dim j As Long
Dim xPos As Long
Dim compareflag As Long

i = startPos
j = endPos
xPos = (startPos + endPos) \ 2

Do
RaiseEvent compare(i, xPos, compareflag)
While (compareflag < 0)
i = i + 1
RaiseEvent compare(i, xPos, compareflag)
Wend
RaiseEvent compare(j, xPos, compareflag)
While (compareflag > 0)
j = j - 1
RaiseEvent compare(j, xPos, compareflag)
Wend

If (i <= j) Then
RaiseEvent swap(i, j)
i = i + 1
j = j - 1
End If
Loop Until (i > j)

If (startPos < j) Then sort startPos, j
If (endPos > i) Then sort i, endPos
End Sub
936デフォルトの名無しさん:02/05/02 17:00
次に

Option Explicit

Private WithEvents objQSort As qsort

Dim data(4) As Long

Private Sub Command1_Click()

data(0) = 10
data(1) = 3
data(2) = 30
data(3) = 6
data(4) = 2

Set objQSort = New qsort
objQSort.sort 0, 4

Dim i As Long
For i = 0 To 4
Debug.Print data(i)
Next

End Sub

Private Sub objQSort_compare(ByVal x As Long, ByVal y As Long, ByRef flag As Long)

flag = (data(x) - data(y))

End Sub

Private Sub objQSort_swap(ByVal x As Long, ByVal y As Long)

Dim temp As Long

temp = data(x)
data(x) = data(y)
data(y) = temp

End Sub

とやってるのだが、これだと

2
3
10
6
30

の並びなってうまくいかんのだが、どこがおかしいんだか教えてくれんかキボーン
VBか・・・配列は?
938920:02/05/02 21:20
>>908=>>918=>>923, >>928=>>934
バカ。単純に書ける所をわざわざ for() なんか使って書くからバカだって言っ
てんだよ。質問の本質と違うところで変な変更するなよ。しかも、動きまで違う
し。バグ作りこむ前に氏ね。
939!=920:02/05/03 00:18
オレなら、>>923 のprintfを3つに分割するか、関数化して3回呼ぶかな。
940!=923:02/05/03 01:04
オレは、>>923のように書くなぁ。
941デフォルトの名無しさん:02/05/03 19:38
>>938
ところで、改行してはいけないってどこに書いてあるんだ?
>>941
バカか、お前。
> 質問の本質と違うところで変な変更するなよ。しかも、動きまで違うし。
> バグ作りこむ前に氏ね。
おまえもなぁ〜〜〜。
宿題はSCHEMEもやってくれるんですか?
>>943
schemeでもかまわないが、まるまるやってはやらんぞ。
どこまで自分でやって、どこでつまずいてるか教えてね。
久しぶりに来てみたが・・・怜ちゃんはいるのか?
スレを読めば分かることだと思いますが?
>946
久しぶりに名前を出したかっただけだ、ageてすまない。
ぐはっ
シェルの作成についての課題なのですが、

MyshellはCshellと違って、Cで実行できていたコマンドや機能のうち
働かないものがある。これらを調べ、どのような機能が実行できないか、
なぜできないか、どのような機能を追加すればいいか?

例えば次のが実行できない

エイリアス、ヒストリー、ワイルドカード、ファイルへのリダイレクト、
shellプログラミング、ディレクトリー操作(popd、pushdなど)

これらから4つほど(エイリアス、ヒストリーは必須)をmyshellに追加せよ。

という課題です。助けてください、お願いします。できればソースを、、。
>>949
Myshellは一般的なものじゃないので、それがどんなものか
教えてくれないとわかんないよーん。
951949:02/05/05 01:06
>>950様、これです#include<stdio.h>
#define MAXARGS 10 /* 許されるコマンドの引数の最大の数 */
#define LINELENGTH 80 /* コマンドラインの最大文字数 */
#define CONTINUE 1
#define EXITCOM 0

main(int argc,char* argv[])
{
char linebuf[LINELENGTH];
int hist;

for(hist=1; ;hist++){
printf("myshell[%d] ",hist);

    gets(linebuf);
  
if(exec_one_command(linebuf)==EXITCOM) break;
}
}
char *skipspace(char* s)
{
while(*s==' ') s++;

return s;
}

952949:02/05/05 01:07
int getcl(char* line,char* argmv[])
{
int argnum=0;

do{
line=skipspace(line);
if(*line=='\0'){
argmv[argnum]=NULL;
return argnum;
}
argmv[argnum++]=line;
while(*line!='\0' && *line!=' ') line++;
if(*line=='\0'){
argmv[argnum]=NULL; return argnum;
}
*line='\0'; line++;
}while(1);
}

int exec_one_command(char linebuf[])
{
int argnum, status;
char *argmv[MAXARGS];

argnum=getcl(linebuf,argmv);
if(argnum==0) return CONTINUE;

if(strcmp(argmv[0],"exit")==0){
return EXITCOM;
}
if(fork()==0){
execvp(argmv[0],argmv);
printf("Error at execvp\n");
exit();
}
wait(&status);
return CONTINUE;
}

953950:02/05/05 01:32
>>951
おぉぉ。おもしろいね。コレ。
で、まず
エイリアス:
1.exec_one_command()で、alias っていうコマンドが来たら、第2引数(エイリアス名)と第3引数以降(コマンド)を何か(alias_bufと名づけよう)に保存。
2.exec_one_command()で、alias_bufに登録してあるエイリアス名を探して、存在すれば、保存してあるコマンドを代わりに実行する。

ヒストリ:
1.exec_one_command()で、コマンドを実行するたび、何か(history_buf[hist]としよう)に保存していく。
2.exec_one_command()で、!数字 っていうコマンドが来たら、代わりにhistory_buf[数字]に保存しといたコマンドを実行する。

でできるよ。簡単簡単。
あと簡単そうなのは、shellプログラミング(制御構造が無い、batファイルみたいな単純なの)と、
ディレクトリ操作かなぁ。ワイルドカードも、そんなに難しくないかも。リダイレクトは、ちと難しい。
954949:02/05/05 02:34
>>950
丁寧な説明、ありがとうございます!
おもしろい、、のでしょうか?(汗
僕もそう思える日がくればいいなぁ、、。
(冗) <フムフムソレカラ?
956デフォルトの名無しさん:02/05/06 00:47
ageてみるか
957デフォルトの名無しさん:02/05/06 00:54
そろそろ新スレを誰か。
958玉三郎:02/05/06 00:56
ワシの出番か・・・
>>958
玉三郎が宿題を教えてくれても、あまり嬉しくないぞ
960玉三郎:02/05/06 01:06
こら誰が金玉三郎じゃヽ(`Д´#)ノ
玉三郎は、金玉三郎と… φ(.. )
962デフォルトの名無しさん:02/05/06 01:12
そういや、えれながいつのまにか消えたな・・・
最多真鯛の宿題か…
えれなや怜って演じてる奴何回くらい変わってんだろ?
>>949はマルチポスト厨房
無視が一番
968まとめ:02/05/06 09:58
969えれな:02/05/06 20:05
>962
呼んだ?
970デフォルト:02/05/07 21:41
#include<stdio.h>

void main(void)

{
int a;

a = 10;
}

上のプログラムを実行すると「aの値は10です」と
出力するようにするにはどうしたら良いのでしょうか?
(%dを使って)
>>970

%dとまでいってて、何がわからないの?
もしかして全角でってこと?
972デフォルトの名無しさん:02/05/07 22:50
その前にニホンゴができてないな。
母国語なんだろうけどいいたいことを正確に伝えられない
言語障害者はプログラミング言語をつかっても駄目なこと多いよ。
973初心者:02/05/07 23:04
簡単なアルゴリズムを教えてください。
問題は
「キーボードから文字列を読み込んで,
読み込んだ文字列を逆にした文字列を表示する」解答 I94==>49I
という問題なのですが。。配列でやったのですが。。。
>>973
スタック使え...。多分これだけでは、ちんぷんかんぷんだろうから、
スタックを配列で作れ。とまでは言っておこう。
配列でやったならあとは一文字ずつ...
976デフォルト:02/05/07 23:14
>>971
自分、超初心者なんで%dも良く分からないです。
全角でとは、どういう事ですか?
文字を入力してカウントするプログラムで

main()
{
int i=0,j;
while(j=getchar()){
if(j==EOF)break;
i++;
}
printf("文字数は%dです。\n",i);
}

と記述したのですが、
どうしても文字数+1となります。
なぜでしょうか?
978初心者:02/05/07 23:23
973ですが、スタックってキューとかって
実際今まで使ったことがないのでわかりません。
基本情報を勉強したときに障った程度です。

配列でいこうと思っているのですが。。。
979素人。:02/05/07 23:25
printf("aの値は10です\n%d%c%c",a,0x08,0x08);

あってる?
980素人。:02/05/07 23:27
getchar()
で開業コードもカウントされるからですかな。
と書いてみるテスト。
981977:02/05/07 23:31
>>980

どうやって回避すればいいのでしょうか?>改行コード
printf("",i-1);
とすると何も入力しないとき-1が帰ってくるので困ってます。
>>973
#define MAX_LINE 2000
int ri;
char line[MAX_LINE];
while(1){
fgets(line,MAX_LINE,stdin);
for(ri = strlen(line)-2;ri>=0;i--)
putchar(line[ri]);
putchar('\n');
}
//toka
983素人。:02/05/07 23:33
strlen
とか使えばいいのではないかしら。
984977:02/05/07 23:36
>>983
すみません。getcharつかうのが前提なんです。(・∀・;)
>>984
なら、改行コード('\n')のときは i++ しないってので、どぉ?
while(j=getchar()){
if(j==EOF)break;
else if(j=='\n')continuel
i++;
}
//違ったらごめん
l → ;
>>982
エラー: 'i' が未定義です。
警告: MAX_LINE より MAX_CHARS のほうがより良いと思います。
警告: プログラムが終了できない可能性があります。EOF を入力したら
   ちゃんと終了するように作りましょう。
#define MAX_LINE 2000
int ri; char line[MAX_LINE];
while(fgets(line,MAX_LINE,stdin) > 0){
for(ri = strlen(line)-2;ri>=0;ri--)
putchar(line[ri]);
putchar('\n');
}
//tekito desuga dozo
990977:02/05/07 23:48
>>986
それでいけました。ありがとです。ヽ( ´ー`)ノ
continueてのは初めて聞きましたよ。
>>973
#include <stdio.h>

rev_put(ch)
{
 if (ch != '\n') {
  rev_put(getchar());
  putchar(ch);
 }
}

main()
{
 rev_put(getchar());
}
992素人。:02/05/07 23:52
mov cx,200
hoge:
mov ah,07h
int 21h
push
loop hoge
mov cx,200
hogehoge:
pop dl
mov ah,02h
int 21h
loop hogehoge

あってる?
>push
994素人。:02/05/07 23:53
push al
ね。
なにがやりたいのかわからん
>>991
そんなのアリか?
997そろそろ:02/05/07 23:55
1000!!!!
998そろそろ:02/05/07 23:56
1000!!!!

999そろそろ:02/05/07 23:56
ほいしょ。
せん。
はいはい
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。