2016-10-26 13 views
-1

私はCプログラミングには新しく、現在Tony Royce Cプログラミングの本を読んでおり、Microsoft Visual Studio 2015を使って演習を行っています。Visual Studio error in C

#include "stdafx.h" 


int main(); 

    char student_name[11]; 
    int mathsmark = 0; 
    int englishmark = 0; 
    int computingmark = 0; 
    int averagemark = 0; 

    printf_s("Please key in your name:\n"); 
    scanf_s("%s", student_name); 

    printf_s("Please key in your English Mark:\n"); 
    scanf_s("%d", englishmark); 

    printf_s("Please key in your Maths Mark:\n"); 
    scanf_s("%d", mathsmark); 

    printf_s("Please key in your Computing Mark:\n"); 
    scanf_s("%d", computingmark); 

    averagemark = englishmark + mathsmark + computingmark/3; 

    printf_s(student_name, "Your average mark is %d", averagemark); 



    getchar(); 
    return 0; 
} 

私はこのコードを実行すると、しかし、それはこのエラーを思い付く:Tonyroycestuff.exeに0x0F830B5C(ucrtbased.dll)で投げ

「例外:0xc0000005で:アクセス違反の書き込み場所0x00500000 場合この例外のためのハンドラがあり、プログラムは安全に継続できます。

そして、私はそれがこのエラーを思い付く続ける押した場合:

「Tonyroycestuff.exeで0xFEFEFEFEで未処理の例外:0xC00001A5は:無効例外ハンドラルーチンが検出されました(パラメータ:0x00000003)。」

私はなぜ誰かがこれで私を助けることができるかどうか疑問に思っています、どんな助けも大いに感謝されるでしょう!

+0

自分が使用している機能のドキュメントは、常に良いアイデアです。障害報告を受け取った方が良いでしょう。 'scanf_sは余分なパラメータが必要です。 – Olaf

+0

Visual Studioにはデバッガがあり、コードをデバッグすることができます。あなたのコードを詳しく読まなくても、ポインタには何か問題があると言えます。デバッガを起動し、プログラムをステップ実行します(1行ずつ)。あなたのコードに記載されているコードは、このように正確には見えませんでした。整数を持つときは、&演算子を持つポインタを(ポインタを渡すために)スキャン関数に渡します。 – Matthias

+2

まず、投稿されたコードの中括弧(中括弧)とセミコロンを確認します。 – Orangesandlemons

答えて

1

あなたはとしてscanf_sを呼び出す必要があります:

scanf_s("%d", &englishmark); 

...と同様に、他のint型の値について。