
No.4ベストアンサー
- 回答日時:
No.1 No.3のarukamunです。
皆さんが書かれているのは関数です。
main等から正しく呼び出せば良いのです。
sample.cとした場合
#include <stdio.h>
#include <stdlib.h>
void ichimatsu(int v,int h)
{
int i,j ;
for (i=0 ;i<v ;i++){
for (j=0 ;j<h ;j++){
if ( (i+j)%2 ){
printf("*");
} else {
printf(" ");
}
}
printf("\n");
}
}
main(int argc,char *argv[])
{
if ( argc < 3 ){
printf("usage : sample 縦 横");
} else {
ichimatsu(atoi(argv[1]),atoi(argv[2]));
}
}

No.5
- 回答日時:
>私の使っているのでコンパイルしたら
>エラーが出てできませんでした
環境とエラーの内容を提示すれば助言できます。
念のため確認します。arukamunさんのコード(私のコードも)はレイアウトの都合上行頭のスペースが全角になっていますが、それをきちんと半角スペースかTABに直してますか?
>#include <stdio.h>
>int main()
>から始まる形で作りたい
#include <stdio.h>
int main(int argc, char* argv[])
{
void ichimatsu(int, int); // プロトタイプ宣言
ichimatsu(10, 20);
return 0;
}
void ichimatsu(int v,int h)
{
~(略)~
}
厳しいことを言うようですが、市松模様以前の問題かと思います。
C/C++のテキストはお持ちでしょうか。
後々のためにも、応用に入る前にテキスト片手に基礎知識を固めておきましょう。
そうすれば道は必ず開けますよ。
No.3
- 回答日時:
No.1のarukamunです。
解説します。
void ichimatsu(int v,int h)
// 市松模様を書き込む関数
// v 縦の個数
// h 横の個数
{
int i,j ;
for (i=0 ;i<v ;i++){ // 縦方向のループ
for (j=0 ;j<h ;j++){ // 横方向のループ
// ここがこの問題の鍵になります。市松模様になるためには、
if ( (i+j)%2 ){ // (縦+横)を2で割った余りが
printf("*"); // 1の場合は"*"を表示
} else {
printf(" "); // 0の場合は" "を表示
}
}
printf("\n"); // 一行分表示したので、改行
}
}
判らないところがありましたら、補足してください。
この回答への補足
私の使っているのでコンパイルしたら
エラーが出てできませんでした
#include <stdio.h>
int main()
殻始まる形で作りたいのですが
どうすればいいでしょうか?

No.2
- 回答日時:
別解。
void ichimatsu(int v,int h)
{
const char ptn[2][2] = {{'*', ' '}, {' ', '*'}};
int i, j;
for (i = 0; i < v; i++) {
for (j = 0; j < h; j++) {
putchar(ptn[i % 2][j % 2]);
}
printf("\n");
}
}
やってることはarukamunさんと同じです。
一つの目的を実現するための手段は一つではないということの参考程度にでもなれば幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 逆順の配列の仕方を教え...
-
C# 配列時のrefの意味
-
C言語の課題です
-
ラップ関数とはどんなものですか?
-
if と配列の組み合わせ
-
整数データの配列から同じ値の...
-
C言語 エラーの原因がわからな...
-
転置行列アルゴリズム
-
ポインタを使って関数の値の...
-
c言語の配列を使ってサイコロを...
-
深さ優先探索について・・・
-
CStringの配列要素を関数で受け...
-
system関数がうまくいかない
-
プログラミング☆
-
C#のコンパイルエラーCS0120に...
-
初項a_0=aとし、漸化式 a_n+1=(...
-
return 1L
-
「指定されたキャストは有効で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数桁10進数の*桁目だけを抽出...
-
C言語での引数の省略方法
-
「指定されたキャストは有効で...
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 エラーの原因がわからな...
-
【C++】関数ポインタの使い方
-
ラップ関数とはどんなものですか?
-
エラー 添字が付けられた値が、...
-
acceptをalarmでタイムアウトさ...
-
if と配列の組み合わせ
-
式は定数値が必要です」という...
-
「{ } で囲むだけ」は正しい?
-
(マルチスレッド)_beginthrea...
-
構造体の勉強中です 合計点の高...
-
数字列を3桁ごとにカンマで区切...
-
return 1L
-
std::set<int> で、ある値が何...
-
C#のコンパイルエラーCS0120に...
-
比較回数と交換回数表示について
-
C言語で分からないところがあり...
おすすめ情報