-1

私の課題は、printf を使用してプログラムを表示することです。私の解決策は、引用符ですべての行を通過することです。しかし、コンパイル時にスタックして、「d」を宣言する必要があります

このプログラム全体を印刷するとエラーが発生します。「d」を定義してほしいのですが、これについて助けてください。

#include <stdio.h>

int main(void)
{

printf(
"/* This program reads two integers from the keyboard and prints their product."
"Written by: A Katheravan"
"Date : 10/02/2012"
"*/"

"#include <stdio.h>"
"int main (void)"

"{"
"//Local Definitions"

"int number1;"
"int number2;"
"int result;"

"//Statements"

"scanf("%d", &number1);"
"scanf ("%d", &number2);"
"result = number1 * number2;"
"printf("%d", result);"
"return 0;"

"}"
"//main");

return 0;
}
4

4 に答える 4

2

以下はあなたに役立つかもしれません:

FILE * fp = fopen("program.c", "r");  

char c;
while ((c = fgetc(fp)) != EOF)   
    printf("%c", c);

fclose(fp);
于 2012-10-04T04:49:45.943 に答える
0
#include <stdio.h>

int main(void)
{
    printf("%s",
       "#include <stdio.h>\n"
       "\n"
       "int main (void)\n"
       "\n"
       "{\n"
       "\n"
       "//Local Definitions\n"
       "\n"
       "int n1;\n"
       "int n2;\n"
       "int result;\n"
       "\n"
       "//Statements\n"
       "\n"
       "scanf(\"%d\", &n1);\n"
       "scanf (\"%d\" , &n2);\n"
       "result = n1 * n2;\n"
       "printf(\"%d\", result);\n"
       "return 0;\n"
       "\n"
       "}\n"
       "//main\n");

   return 0;
}

OPがコードを投稿するときにコードをフォーマットしなかったため、これはおそらく完全には正しくありません。スペースやタブを挿入して、目的のインデントを取得します。

編集:これは元の質問に対する回答でしたが、OPは質問を(誤った)質問への回答の試みに変更しました。

于 2012-10-04T05:38:42.180 に答える
0

さて、あなたが何を得ようとしているのかについてのいくつかの難しい考えに基づいて、私は最終的にあなたがこれを望んでいると思います:

#include <stdio.h>

int main(void)
{

    printf(
        "/* This program reads two integers from the keyboard and prints their product.\n"
        "Written by: A Katheravan\n"
        "Date : 10/02/2012\n"
        "*/\n\n"

        "#include <stdio.h>\n\n"

        "int main (void)\n"
        "{\n"
        "\t//Local Definitions\n\n"

        "\tint number1;\n"
        "\tint number2;\n"
        "\tint result;\n\n"

        "\t//Statements\n\n"

        "\tscanf(\"%%d\", &number1);\n"
        "\tscanf (\"%%d\", &number2);\n"
        "\tresult = number1 * number2;\n"
        "\tprintf(\"%%d\", result);\n"
        "\treturn 0;\n\n"

        "}\n"
        "//main\n"
    );

    return 0;
}

"文字列内を印刷するには、それをエスケープする必要があり\"ます:、それは文字列内の問題でした。

また、各行に改行とタブを含めたので、コードはコンソールの1行だけで出力されません。

また、文字列のフォーマット用に予約されていることを後で学習するため、印刷%するにprintfは、を使用する必要があります。%%%

\nは「改行」、\t「TAB」、参考までに。

于 2012-10-04T05:38:50.407 に答える
0

独自のソースコードを出力として生成するこれらのタイプのプログラムは、「Quines」と呼ばれます。

ウィキペディアによると、クワインは

「クインは、入力を受け取らず、唯一の出力として独自のソースコードのコピーを生成するコンピュータプログラムです。」

例と完全な説明をチェックしてくださいQuines

これが古典的なCクワインです

char*f="char*f=%c%s%c;
main()
     {
printf(f,34,f,34,10);
}%c";
     main(){printf(f,34,f,34,10);}
于 2012-10-04T05:09:47.527 に答える