2015-10-24 3 views
-3

поэтому у меня есть этот код Cпрограммы C перестала работать после использования зсапа

#include <stdio.h> 
#include <stdlib.h> 

int main() 
{ 
    int a; 
    int b; 
    int c; 
    scanf("%d", &b); 
    scanf("%d", &a); 
    c = a + b; 
    printf(c); 
    return 0; 
} 

, но, после того, как я вставить номер для а и б, остановка программы работает. пожалуйста, помогите мне C нуб здесь

+4

Вы знаете синтаксис 'printf()' ?? – Haris

ответ

0

В своем коде вы следующая строка является неправильным:

printf(c); 

как синтаксис Е() будет как то, что я написал ниже

printf("%d",c); 

так ваш код прямо сейчас будет:

#include <stdio.h> 

int main() 
{ 
    int a; 
    int b; 
    int c; 
    scanf("%d", &b); 
    scanf("%d", &a); 
    c= a + b; 
    printf("%d",c); //this is the correct printf() syntax 
    return 0; 
} 
+0

Пространства значительно улучшают читаемость. –

+0

И почему? C * игнорирует * пробелы. –

+0

о, я вижу ... я думал, c даст ошибку ... – Cherubim

0
printf(c); 

должен быть

printf("%d\n", c); /* `\n` at the end of the string flushes the `stdout` */ 

потому что printf ожидает const char* в качестве первого аргумента, а не как int.

+0

Не забывайте, что 'scanf' может оставить некоторые символы новой строки и не будет сканировать следующее целое число, в результате чего будет добавлено ненулевое значение' int' и null. – Arc676

+0

Но '% d' не сканирует символ новой строки. Единственными спецификаторами формата, для которых важны пробелы, являются '% c','% ['и'% n'. Попробуйте программу. –

Смежные вопросы