配列の取り出し – プログラミング – Home

通知
すべてクリア

[解決済] 配列の取り出し

固定ページ 1 / 3

貞松
 貞松
(@貞松)
ゲスト
結合: 21年前
投稿: 13
Topic starter  

count⇒
1 2 3 4 5 6 7 8 下:turn
* * * * * * * *
* * * * * * *
* * * *
* * *
*

このような形で配列として取り出したいのですが、方法が分かりません。
本当に宜しくお願いします。
現在*の値を左上から順番(この図ですと)に取り出すところまでできています。

ptr= &A;//ポインタ
ER[count][turn]= *ptr;


引用未解決
トピックタグ
貞松
 貞松
(@貞松)
ゲスト
結合: 21年前
投稿: 13
Topic starter  

Aには*が全て格納されています。

for(count=0 ; count<10; count++){
for(turn=0 ; turn<10; turn++){
/*
何らかの処理によってAを計算する。
そのときAは10個以内の値です。
*/

ptr= &A;//ポインタ
ER[count][turn]= *ptr;
}
}


返信引用
貞松
 貞松
(@貞松)
ゲスト
結合: 21年前
投稿: 13
Topic starter  

count⇒
1 2 3 4 5 6 7 8 下:turn
* * * * * * * *
* * * * * * *
* * * *
* * *
*
この隙間を0で埋めることはできるのでしょうか?
宜しくお願いします。


返信引用
貞松
 貞松
(@貞松)
ゲスト
結合: 21年前
投稿: 13
Topic starter  

ずっとつまっています。
どなたかご教授ください!お願いします。
count⇒
1 2 3 4 5 6 7 8 下:turn
* * * * * * * *
* * * * * * *
* * * *
* * *
*
この配列の隙間を0で埋め以下のようにする方法はありますか?
count⇒
1 2 3 4 5 6 7 8 下:turn
* * * * * * * *
* * * * 0 * * *
* 0 * * 0 0 * *
* 0 0 * 0 0 0 *
* 0 0 0 0 0 0 0


返信引用
n
 n
(@n)
ゲスト
結合: 23年前
投稿: 159
 

ERの型は何ですか?


返信引用
ん
 ん
(@ん)
ゲスト
結合: 23年前
投稿: 106
 

> どなたかご教授ください!お願いします。

質問内容がよく理解できないのでお答えするのは難しいです。

とりあえず、下記内容を明確にしてはどうでしょう。

1.質問内容に出てくる変数の型(一つも書いてないのでよくわからないです)

2.元になるデータが具体的に、どのように格納されているか不明

3.開発環境が不明(VCのバージョン、MFCの使用有無等)

質問の前提条件が明確になれば、ひょっとしたら回答もくるかもしれません。


返信引用
貞松
 貞松
(@貞松)
ゲスト
結合: 21年前
投稿: 13
Topic starter  

皆様有難うございます。
ERの方はdoubleです。
>1.質問内容に出てくる変数の型(一つも書いてないのでよくわからないです)

>2.元になるデータが具体的に、どのように格納されているか不明
上に示しましたとおり
Aには*が全て格納されています。
for(count=0 ; count<10; count++){
for(turn=0 ; turn<10; turn++){
/*
for{
何らかの処理によってAを計算する。
そのときAは10個以内の値です。
(ここではAがある値がきたらbreakする。)
}
*/

ptr= &A;//ポインタ
ER[count][turn]= *ptr;
}
}

そのためAには1つのデータの時もあれば6つ、5つといった値のときもあります。
そこで、breakしたらそのあとは0にしてすべて同じ個数で統一したいのですが分かりま
せん。

count⇒
1 2 3 4 5 6 7 8 下:turn
* * * * * * * *
* * * * 0 * * *
* 0 * * 0 0 * *
* 0 0 * 0 0 0 *
* 0 0 0 0 0 0 0

本当に申し訳ないです。宜しくお願いします。

>3.開発環境が不明(VCのバージョン、MFCの使用有無等)
windowsXP VC++6.0 コンソールアプリです。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

最初に全部0で埋めとくというのはダメなんですか?


返信引用
貞松
 貞松
(@貞松)
ゲスト
結合: 21年前
投稿: 13
Topic starter  

あとすいません。

以下は理想の形で
count⇒
1 2 3 4 5 6 7 8 下:turn
* * * * * * * *
* * * * 0 * * *
* 0 * * 0 0 * *
* 0 0 * 0 0 0 *
* 0 0 0 0 0 0 0

現在は
1
*
*
*
*
*
2
*
*
0
0
0
3  といったような出力になっています。


返信引用
貞松
 貞松
(@貞松)
ゲスト
結合: 21年前
投稿: 13
Topic starter  

皆様方いろいろ有難うございます。
>最初に全部0で埋めとくというのはダメなんですか?
0が収束値ではないです。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

>> 最初に全部0で埋めとくというのはダメなんですか?
> 0が収束値ではないです。

はぁ? あなたのこれまでの説明はウソだったのですか?

隙間を埋める値は0とは限らないということですか?
絶対に用いられない値で埋めておき、あとでその値のとこだけ
すりかえてしまうのは?


返信引用
貞松
 貞松
(@貞松)
ゲスト
結合: 21年前
投稿: 13
Topic starter  

>最初に全部0で埋めとくというのはダメなんですか?
すいません。隙間は0で埋めておきたいです。


返信引用
ん
 ん
(@ん)
ゲスト
結合: 23年前
投稿: 106
 

結局やりたい事はわからないのですが、何かの参考になればレベルのサンプルです。

char A[] = { '*', '*', '*', '*', '*', '*', '*', '*',
'*', '*', '*', '*', ' ', '*', '*', '*',
'*', ' ', '*', '*', ' ', ' ', '*', '*',
'*', ' ', '*', '*', ' ', ' ', ' ', '*',
'*', ' ', ' ', '*', ' ', ' ', ' ', '*',
'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } ;

int main()
{
int turn, count ;
double ER[10][10] ;

printf( count⇒ \n);
printf(1 2 3 4 5 6 7 8 下:turn \n);

/* Aには*が全て格納されています。 */
for(turn=0 ; turn<10; turn++){
for(count=0 ; count<10; count++){

printf(%c, A[turn*8+count]);

/*
for{
何らかの処理によってAを計算する。
そのときAは10個以内の値です。
(ここではAがある値がきたらbreakする。)
}
*/

/* ptr= &A;//ポインタ */ /* これはよくわからない */
/* ER[count][turn]= *ptr; */
}
printf(\n) ;
}
}

※コンパイルとかしてません。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 600
 

>> 最初に全部0で埋めとくというのはダメなんですか?
> すいません。隙間は0で埋めておきたいです。

ワケわかんね。

全部0で埋めておいて、そこにデータを載せていけばいいんじゃないのかなぁ…


返信引用
貞松
 貞松
(@貞松)
ゲスト
結合: 21年前
投稿: 13
Topic starter  

// 練習1.cpp : コンソール アプリケーション用のエントリ ポイントの定義
//
皆様有難うございます。
皆様すいません。表現力が乏しいので申し訳ないです。
宜しくお願いします。
#includestdafx.h

#include <stdio.h>

int main()
{
int turn, count ;
double ER[10][10] ;

printf( count⇒ \n);
printf(1 2 3 4 5 6 7 8 下:turn \n);

/* Aには*が全て格納されています。 */
for(turn=0 ; turn<10; turn++){
for(count=0 ; count<10; count++){

/*
for{
何らかの処理によってAを計算する。
そのときAは10個以内の値です。
(ここではAがある値がきたらbreakする。)
}
*/
ptr= &A;//ここでcountごとに出力されるAを取り出します。
ER[count][turn]= *ptr;
printf(%c,ER[count][turn]);
//ここで以下のように出力されます。
/*
1(space)
*
*
*
*
*
2(space)
*
*
3(space)
count分続く

この並びをんさんが書いてくださったような以下のような並びに変換します */

}
printf(\n) ;
}

}//main
/*
char A[] = { '*', '*', '*', '*', '*', '*', '*', '*',
'*', '*', '*', '*', ' ', '*', '*', '*',
'*', ' ', '*', '*', ' ', ' ', '*', '*',
'*', ' ', '*', '*', ' ', ' ', ' ', '*',
'*', ' ', ' ', '*', ' ', ' ', ' ', '*',
'*', ' ', ' ', ' ', ' ', ' ', ' ', ' ' } ;
*にはdoubleの数値が入りましてスペースには0が入るもの
を最終的に出力したいと考えています。


返信引用
固定ページ 1 / 3

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました