Не в состоянии решить проблему кода.
Я все еще учусь программировать и решаю сложные задачи. Затем я столкнулся с этой проблемой, чтобы узнать о типах данных. Это базовая проблема, но мне стыдно, что я не могу решить ее даже после нескольких месяцев кодирования.
Задача состоит в том, чтобы объявить 3 переменные: одно целое число, одно двойное и строку. Нам предоставляется 3 переменные, которые мы должны добавить объявленные переменные, которые будут инициализированы путем ввода входных данных. И мы должны напечатать их на экране.
Это мой код.:
#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> int main() { int i = 4; double d = 4.0; char s[] = "HackerRank "; int number; double decimal; char name[50]; scanf("%d",&number); scanf("%lf",&decimal); scanf("%*[\n] %[^\n]",name); printf("\n%d\n%.01lf\n%s%s\n",number+i,decimal+d,s,name); return 0; }
Я получаю тот же результат, что и требуется, но система его не принимает. Затем я нашел редакционную статью, которая дала решение
Это решение при условии :
#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> int main() { int i = 4; double d = 4.0; char s[] = "HackerRank "; int i2; double d2; char s2[100]; // this is not scalable for input of unknown size // Read inputs from stdin scanf("%d", &i2); scanf("%lf", &d2); scanf("%*[\n] %[^\n]", s2); // Print outputs to stdout printf("%d\n", i + i2); printf("%.01lf\n", d + d2); printf("%s%s", s, s2); return 0; }
Я был бы признателен, если бы кто-нибудь рассказал мне о цели %*[\n] в scanf.
Что я уже пробовал:
Я попытался сопоставить их, но не смог найти никакого несоответствия. Я впервые объявленной переменной запятой в формате с плавающей точкой. Позже я изменил его на двойной, но проблема остается.
KarstenK
лучше использовать переменные в коде для вычисления результатов, а не делать вывод. Используйте отладчик.