Есть ошибка в моем коде, кто-нибудь может помочь с отладкой?Видимо, что-то не так в scanf
части, чтобы получить мой x
.Инструкции приведены ниже:
Эта программа представляет собой простое введение в приложение на языке C, которое включает отображение консоли, ввод пользователя, строки и циклы.Введите коды, которые будут отображать экран, как показано:
Во-первых, программа предлагает пользователю ввести его или ее имя.Затем будет отображаться
Hello <user name>
Далее распечатывается меню, содержащее 4 параметра:
- добавить два целых числа
- добавить две строки
- вычислить факториал для целого числа меньше, включая
10
или меньше 11
- Выйти из программы
Кодировать все 4 задачи соответствующим образом.
Когдазадание завершено (конечно, не включая выход из программы), снова появляется меню и просит пользователя примерить другое задание.Это повторяется до тех пор, пока не будет нажата q или Q .Вы можете использовать switch-case или if-else , но первый выглядит более разборчиво.
Даже если вы знаете, как писать функции, не используйте функции в этой программе.
#include <stdio.h>
char name[20],
c[1000],
d[1000],
x;
int a, b, i, n,
factorial = 1;
int main() {
do {
printf("\nPlease select one:\n");
printf("**********MENU**********\n");
printf("1 - add two integers\n");
printf("2 - add two strings\n");
printf("3 - compute factorial for integer less and including 10 or less than 11\n");
printf("Q - quit program\n");
printf("************************\n");
scanf("%s", x);
switch(x) {
case '1':
printf("Enter first integer:\n");
scanf("%d", &a);
printf("Enter second integer:\n");
scanf("%d", &b);
printf("%d + %d = %d\n", a, b, a + b);
break;
case '2':
printf("Enter first string:\n");
scanf("%s", c);
printf("Enter second string:\n");
scanf("%s", d);
strcat(c, d);
printf("%s\n", c);
break;
case '3':
printf("Enter integer less than 11:\n");
scanf("%d", &n);
if (n > 0 && n < 11) {
for(i = 1; i <= n; ++i) {
factorial *= i;
}
printf("factorial of %d is %d\n", n, factorial);
break;
}
else {
printf("error, please enter an integer\n");
}
case 'Q':
printf("Program quitting...\n");
break;
}
} while (x != 'Q');
}