#99 Article 949 Posted at 1995/12/02 11:29:52 by きつねりす (MAP542) [SAHOU.1]

Subject: Re:*6 プログラミングお作法の話 /946 ... /941 /940

なんだか面白そうなので出てきました。

> 「引数かキー入力(どちらか)で数値を読み込み、1からその数まで表示する。
>  ただし、3と5と入力された数の所では数字を表示するかわりに、
>  その回数だけ『にゃん』を表示する」

もっと引数のチェックとかをして
バッファを溢れないようにしたりとか、
しなきゃいけないんだけど、まぁこんなもんでしょう。

うちにはCのコンパイル系が無いので動作は未確認です。
だからバグバグかもしれません。
#動ごかなくても今回は動作が目的ではないし、、:)

-----ここから------
#include <stdio.h>
#include <string.h>
char* strncmp(char* buf,char* string,int count)
{
    while (count--)
        strcat(buf,string);
    return buf;
}

int main (int argc,char** argv)
{
    int max=0;
    int count;
    char buf[2048];
    if (argc != 2)
    {
        printf"\nusage: %s nomber\n   ex: %s 10\n",argv[0],argv[0]);
	return 1;
    }
    max = atoi(argv[1]); // max= atoi(*(argv+1));かも
    for (count = 1;count <=max;count ++)
    {
        switch (count)
        {
          case 3:
          case 5:
          case max:
            printf ("\n%s",strncat(buf,"にゃん",count));
            break;
          default:
            printf("\n%d",count);
        }
    }
    printf("\n");
    return 0;
}
-----ここまで------

自分で診断すると以下の通りです。
	変数の定義で int *a ではなく int* aとしている。
	インデントはハードタブ、ハードタブは4
	caseはハーフインデント
	ifなど文を持つやつは1文のときは{}を付けないが
	文が1文でもその文が複数行にわたるときは{}を使う。
	{}はforとかとおなじ高さ。
	関数を作りたがる。
	改行はフォーマットの先頭。最後にもう一度改行する。