2017-09-02 8 views
-8
#include <stdio.h> 
//Compiler version gcc 6.3.0 

int main(void) 
{ 

    float a=10; 
    printf("%f"+1,a); 

    return 0; 
} 

出力 - Dは誰も教えてもらえます

#include <stdio.h> 
//Compiler version gcc 6.3.0 

int main(void) 
{ 

    float a=10; 
    printf("%f"+36,a); 

    return 0; 
} 

出力 - P

私は1の値を変更し、これまでそれが異なる出力を提供します。 ...理由を説明してください

+0

すべての警告とデバッグ情報についてコンパイラに尋ねるのを忘れてしまった。 [gcc](http://gcc.gnu.org/)で 'gcc -Wall -Wextra -g'をコンパイルしてください(そして、コンパイラがあなたに警告していました)。 –

+0

ところで、http://floating-point-gui.de/は役に立ちます。 –

+0

'+ 1'と' +36'は実際に何をしていると思いますか?印刷しようとしている番号を変更しておらず、印刷しようとしている書式文字列も変更していません。あなたはいくつかの非常に奇妙なポインタ演算を行っています。これは有用で適切に動作するコードでは結果できません。彼らから勉強しようとして奇妙なことをしようとしているのですか、それとも何ですか? [P.S.実際に知りたいのであれば、なぜこれが起こっているのかを伝えることができますが、まずあなたが実際にやろうとしていることを説明しなければなりません。] –

答えて

0

私は正確に何を達成しようとしていますか分かりません。用

printf("%f",a+36); 

同じ:

あなたは合計を行いたい場合は、あなただけのコンマの後にそれをしなければならない。これに

printf("%f"+36,a); 

:このから

その他の合計。

+0

これがうまくいく場合は、回答として受け入れてください。 そして、私の答えを落とした人は誰でも:それを改善する方法についてコメントを残すことを検討してください。私は本当にそれを感謝します! –

+0

私はこれがOPが実際にやろうとしていることを知る方法がないので、downvoteがあったかもしれないと思っています。私は今投票しているので、OPの2回目の同じ質問に対する投票を閉じることができます(https://stackoverflow.com/questions/46015392/can-anybody-tell-me-why-this-happening-in-c )をこの1つのdupとして。 –

+0

@SteveSummitあなたは完全に正しいです。私の答えは、それがOPの問題です。多くの詳細はないので、彼は何をしようとしているのかを知っている。また、私は前に他の質問は見ませんでしたが、OPは "int"のために 'float'を変更しました。おそらくガイドの代わりにSOを使用して無作為に抽出しようとしているかもしれません。知るか。とにかくありがとうございました! –

0

すべての警告で確実にコンパイルする必要があります。私はgcc -Wall -Wextra -Werror -pedanticを使用しました。 printfの引数が多すぎるので、私の警告ではコンパイルされませんでした。

投稿したコードをテストしたところ、 'f'と 'A ???'が表示されました。私はあなたが何をしようとしているのかは分かりませんが、あなたのフロートがあなたにアスキー文字を与えるための数字をどのように追加しているかとは関係ありません。

関連する問題