#include<stdio.h>
void sp(int a,int b)
{
int i,r,c;
for(i=0;i<100;i++){
for(r=0;r<100;r++){
if(a[r]==i&&b[r]==r){
c=1;
break;
}
else {c=0;}
}
if(c==1)break;
}
return(c);
}
void main()
{
int x[100],y[100],a;
char b;
x[0]=40; y[0]=200;
a=don(x,y);
if(a==0){
pDC->TextOut(x,y,bon);
}
}
見たいな事をやりたいのですがエラーが出て困っています。
間違ってるところ教えてください。
> void sp(int a,int b)
> {
> int i,r,c;
> for(i=0;i<100;i++){
> for(r=0;r<100;r++){
> if(a[r]==i&&b[r]==r){
aもbも配列ではない。
> a=don(x,y);
??
sp()ってどこで使ってる?
sp()はvoidの様ですが
> return(c);
は何?
> 見たいな事をやりたいのですがエラーが出て困っています。
結局何がやりたいの?エラーとはコンパイル?実行?・・・ってそれは愚問だな。
こん!<=^・^=>
#include<stdio.h>
int don(int a[],int b[])
{
int i,r,c;
for(i=0;i<100;i++){
for(r=0;r<100;r++){
if(a[r]==i&&b[r]==r){
c=1;
break;
}
else {c=0;}
}
if(c==1)break;
}
return(c);
}
void main()
{
int x[100],y[100],a;
char b;
x[0]=40; y[0]=200;
a=don(x,y);
if(a==0){
pDC->TextOut(x,y,bon);
}
}
すいません まちがってかいてました
これでおねがいします
>間違ってるところ教えてください
(誤)見たいな事 -->(正)みたいな事
pDC がいきなり出てくる(宣言せずに変数を使っている)
CDC::TectOut() の第一引数と第二引数とはどんな型何でしょうか?
少なくとも int の排列の x や y やは引数としてふさわしくないでしょう
コンソールアプリケーションとウインドーアプリケーションとがごっちゃになっている
少し妙な点:
定義している函数 sp() は誰も使っていないのに、未定義の函数 don()
を void main() で使っている
void main() は余り好ましくありません
すいません
AppWizard(exe)をつくって
// CTestView クラスの描画
void CTestView::OnDraw(CDC* pDC)
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: この場所にネイティブ データ用の描画コードを追加します。
int x[100],y[100],a;
char b;
x[0]=40; y[0]=200;
a=don(x,y);
if(a==0){
pDC->TextOut(x,y,bon);
}
}
とうち、
メンバ関数をint型で
donという名前で作って
int CTestView::don(int a,int b)
{
int i,r,c;
for(i=0;i<100;i++){
for(r=0;r<100;r++){
if(a[r]==i&&b[r]==r){
c=1;
break;
}
else {c=0;}
}
if(c==1)break;
}
return(c);
}
をしたところエラーが出てしまうんですが。
エラーが出る じゃなくて
「どこで」「どんなメッセージの」エラーなのかが分かると
返事がきやすくなります。
わからないから質問するのでしょうが、いいかげんな内容を提出するのはよしましょうね
void main() と void CTestView::OnDraw(CDC *pDC) とを二度も書き間違えるとは
考えられないのでそう言うのですが、その上「こん!」さんから指摘された点が今回は
元に戻っています(函数 don の引数の型)。
CDC::TextOut() の引数の型についてはお判りになりましたか?
第一、どのようなエラーなのか書いていない点が気になります
エラーは次のように出てます
C:\My Documents\C++\test\testView.cpp(65) : error C2664: 'don' : 1 番目の引数
を 'int [100]' から 'int' に変換できません。 (新しい機能 ; ヘルプを参照)
この変換には reinterpret_cast, C スタイル キャストまたは関数スタイルのキャストが必要です。
C:\My Documents\C++\test\testView.cpp(68) : error C2664: 'int __thiscall
CDC::TextOutA(int,int,const class CString &)' : 1 番目の引数を 'int [100]' か
ら 'int' に変換できません。 (新しい機能 ; ヘルプを参照)
この変換には reinterpret_cast, C スタイル キャストまたは関数スタイルのキャストが必要です。
C:\My Documents\C++\test\testView.cpp(123) : error C2109: 配列または、ポインタでない
変数に添字が使われました。
C:\My Documents\C++\test\testView.cpp(123) : error C2109: 配列または、ポインタでない
変数に添字が使われました。
憐さん?ショウさん?
エラーメッセージを出すのはいいですがその前の島さんのレスを見てその内容に対して確認し
てからビルドをした方がよくないですか?
落ち着いて整理してからにしたほうがよろしいかと。
こん!<=^・^=>
配列つかわなければちゃんと表示はできるのですが
配列にすると上のようなエラーが出ます
すみません。理解力が足りない私には配列の[0]しか初期化していない配列を渡して(渡し
てない)forループで何を処理しようとしているのかよくわからないのですけど。その配列を使
わなければ表示出来たというのはどうやったのですか?
だいたいにして配列にしたっていいますがまさかxとyを配列宣言にして
> pDC->TextOut(x,y,bon);
はこのまま呼んだわけではないでしょうね?
こん!<=^・^=>
> pDC->TextOut(x,y,bon);
そのとおりなんですが。
if文をつかって表示するかしないかを
しようとしただけのプログラムなんですけど
配列使ってみたいとおもいまして
でも配列にするとエラーがでるんです
int x[100];
と宣言した場合に、x =10; という代入が可能かどうか判りますか?
整数と整数の排列とが違うことは判りますか?
今までにこん!さんや私が示していたことをまとめておきます
排列が使いたかったら
int CTestView::don(int a[], int b[])
{
/* この部分は省略 */
}
void CTestView::OnDraw(CDC *pDC) では
pDC ->TextOut(x[0], x[y], don);
のようにしましょう
なお、
CTestView.h では
class CTestView : public CView
{
/* 下の定義以外は省きます */
int don(int a[], int b[]);
}
と訂正しましょう
まずは使う名前をひとつに決めて下さい。
質問はそれからです。
#こん!さんが2002/11/25(月) 18:00:53の最初に書かれていますが……。
#それとも,憐さんとショウさんは別人……?
でもって,
> int CTestView::don(int a,int b)
これがどのような宣言(実際には定義ですが)かはわかっていますか?
これは配列を関数が受け取るような宣言ではないですよ。