2016-09-09 4 views
0

На прошлой неделе я только начал изучать программирование на C, и я узнал об основных принципах этого. Итак, теперь я пытаюсь создать программу, которая может содержать два числа и показывать результат. Вот мой код:C: Дополнительный вывод в printf

#include <stdio.h> 

int main (void) 
{ 
    int a; 
    int b; 
    int result; 

    printf("Insert a number:%d\n"); 
    scanf ("%d",&a); 

    printf ("Insert the next number:%d\n"); 
    scanf ("%d",&b); 

    result = a + b; 

    printf ("Result is:%d\n",result); 
    return 0; 

} 

Он может быть составлен и запустить, но следующий результат показан. [1] http://i.stack.imgur.com/4Xjdv.png

Может ли кто-нибудь помочь мне избавиться от этого 4200612, который выводится в первом заявлении printf? Спасибо за вашу помощь и извините за мой плохой английский.

+5

Удалив ненужный '% d' из первых 2' printf' операторов, у которых нет соответствующего аргумента, чтобы они печатали мусор. –

+0

"показан следующий результат". Какой результат? – Gabriel

+0

Следуйте правилам сайта и публикуйте текст как текст, а не изображения! – Olaf

ответ

1

В первых двух случаях %dprintf.

printf("Insert a number: "); 
scanf ("%d",&a); 
printf ("Insert the next number: "); 
scanf ("%d",&b); 

Поскольку соответствующих аргументов нет. Он напечатает некоторое случайное значение.

+0

Хорошо, понял. Благодаря! И могу ли я спросить, в чем разница между% d и% f? –

+1

@ J.Yang: '% d' и'% f' используются для чтения и записи и целого числа и числа с плавающей запятой соответственно. – Shravan40

1

Попробуйте избавиться от дополнительных% d's в ваших printfs.

#include <stdio.h> 

int main (void) 
{ 
    int a; 
    int b; 
    int result; 

    printf("Insert a number:\n"); 
    scanf ("%d",&a); 

    printf ("Insert the next number:\n"); 
    scanf ("%d",&b); 

    result = a + b; 

    printf ("Result is:%d\n",result); 
    return 0; 

} 
+1

Получил, спасибо! –

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