Чем отличаются эти выходы ?
В простой программе умножения на языке Си, если мы хотим, чтобы число, введенное пользователем, было умножено, мы принимаем значения по scanf("%d%d",&a,&b); а затем программа запрашивает ввод в 1-й и 2-й строках и получает вывод в третьей строке. Но почему, если я использую scanf("%d%d\n",&a,&b);, он запрашивает вход 3 раза и дает выход 4-й строки из 1-го двух чисел. Кроме того, если scanf ("%d%d\n\n\n\n\n",&a,&b);, дает тот же результат, почему он не принимает столько чисел ввода, сколько мы добавили больше\n, он все равно принимает три входа и в 4-й строке выдает выход первых двух чисел?
я использую
#include<stdio.h> int main() { int a,b,result; printf("enter two numbers\n"); scanf("%d%d",&a,&b); result=a*b; printf("%d",result); return 0; }
2-я попытка
#include<stdio.h> int main() { int a,b,result; printf("enter two numbers\n"); scanf("%d%d\n",&a,&b); result=a*b; printf("%d",result); return 0; }
3-я попытка
#include<stdio.h> int main() { int a,b,result; printf("enter two numbers\n"); scanf("%d%d\n\n\n\n\n",&a,&b); result=a*b; printf("%d",result); return 0; }
и вторая, и третья попытки имеют схожие результаты
Что я уже пробовал:
1-я попытка
#include<stdio.h> int main() { int a,b,result; printf("enter two numbers\n"); scanf("%d%d",&a,&b); result=a*b; printf("%d",result); return 0; }
2-я попытка
#include<stdio.h> int main() { int a,b,result; printf("enter two numbers\n"); scanf("%d%d\n",&a,&b); result=a*b; printf("%d",result); return 0; }
3-я попытка
#include<stdio.h> int main() { int a,b,result; printf("enter two numbers\n"); scanf("%d%d\n\n\n\n\n",&a,&b); result=a*b; printf("%d",result); return 0; }
Richard MacCutchan
Что вы ожидаете, что произойдет со всеми этими символами новой строки?
Rick York
Если вы хотите ввести два числа, попробуйте использовать этот формат для scanf : "%d %d". Это предполагает наличие двух чисел, разделенных пробелом.
Кроме того, вы можете получить целую строку текста в качестве входных данных, а затем разобрать числа. Лично я думаю, что это проще.
Третий вариант-взять их из командной строки. По-моему, это даже проще.