我正在创建一个程序来解决测试用例#1中提出的问题。但是我在测试案例#2中总是得到一个错误的答案,因为我从来不知道什么是测试用例#2!
为什么我在第二种情况下出错?
这是问题和我的回答:
任务 在下面的编辑器中完成代码。变量i,d和s已经为您声明和初始化。您必须声明3个变量:一个是int类型,一个是double类型,另一个是String类型。然后你必须从stdin读取3行输入并初始化你的3个变量。最后,您必须使用+运算符执行以下操作:
在新行上打印i加上int变量的总和。 将d加上双变量的总和打印到新行上一位小数的比例。 使用您读取的字符串连接s并将结果打印在新行上。
测试用例#1 - 预期输出:
16
8.0
HackerRank是学习和练习编码的最佳场所!
+测试用例#2 - 预期输出:
7
6.8
是我最喜欢的平台!
这是我的代码:
def test_case_1():
ii = int()
dd = float()
ss = str()
i = 4
d = 4.0
s = 'HackerRank '
ii = 12
dd = 4.0
ss = "is the best place to learn and practice coding!"
total_int = i + ii
print (total_int)
total_double = d + dd
print(total_double)
print (s + ss)
memory = open('memory.txt', 'w')
memory.write("1")
memory.close()
def test_case_2():
ii = int()
dd = float()
ss = str()
i = 4
d = 4.0
s = 'HackerRank '
ii = 3
dd = 2.8
ss = "is my favorite plataform!"
total_int = i + ii
print (total_int)
total_double = d + dd
print(total_double)
print (s + ss)
memory = open('memory.txt', 'w')
memory.write("0")
memory.close()
def starting():
memory = open('memory.txt', 'r')
ted = []
for line in memory:
ted.append(line)
memory.close()
return ted
def test(ted, main):
if ted == ['0'] :
test_case_1()
elif ted == ['1'] :
test_case_2()
def main():
try:
memory = open('memory.txt', 'r')
memory.close()
except:
memory = open('memory.txt', 'w')
memory.write("0")
memory.close()
pronto = starting()
test(pronto, main)
main()
答案 0 :(得分:3)
你正在思考the problem。您将获得必须从标准中读取的示例输入。
它还说变量i,d和s已经为你声明和初始化,所以你不应该对这些值进行硬编码。
此代码可以使用,但要确保您真正了解它,而不仅仅是复制粘贴。
import sys
i2 = int(sys.stdin.readline())
d2 = float(sys.stdin.readline())
s2 = sys.stdin.readline()
# Print the sum of both integer variables on a new line.
print(i+i2)
# Print the sum of the double variables on a new line.
print(d+d2)
# Concatenate and print the String variables on a new line
# The 's' variable above should be printed first.
print(s+s2)
答案 1 :(得分:1)
谢谢cricket_007!为了真实,我理解并在Python中使用自己的代码。看:
def printing():
i = int()
d = float()
s = str()
ii = 4
dd = 4.0
ss = 'HackerRank '
i = int(input())
d = float(input())
s = str(decide(i))
total_int = i + ii
print (total_int)
total_double = d + dd
print(total_double)
print (ss + s)
memory = open('memory.txt', 'w')
memory.write("0")
memory.close()
def decide(val):
if val == 12 :
quote = "is the best place to learn and practice coding!"
elif val == 3 :
quote = "is my favorite platform!"
return quote
def main():
memory = open('memory.txt', 'w')
memory.write("0")
memory.close()
printing()
main()
答案 2 :(得分:0)
按照评论中的内容进行操作,您无需执行任何操作 通常在python中以u调用方式进行输入 你会得到结果的, python的代码如下:
i = 4
d = 4.0
s = 'HackerRank '
i1=int(input())
d1=float(input())
ss=input()
print(i+i1)
print(d+d1)
print(s+ss)
以下代码适用于C:
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main() {
int i = 4;
double d = 4.0;
char s[] = "HackerRank ";
char st[200];
int i1;
double d1;
char str[100];
scanf("%d",&i1);
scanf("%lf",&d1);
scanf(" %[^\n]",str);
printf("%d\n",i+i1);
printf("%.1lf\n",d+d1);
strcpy(st,s);
strcat(st,str);
printf("%s",st);
return 0;}
答案 3 :(得分:0)
int i1 = scan.nextInt();
double d1 = scan.nextDouble();
String s1 = scan.next();
System.out.println( i + i1);
System.out.println( d + d1);
System.out.print(s);
while (scan.hasNext() == true ) {
s1 = scan.nextLine();
System.out.print("is"+s1 + " ");
}