我正处于编程类中,我们刚从python切换到C.我遇到了一些麻烦,因为C似乎没有像python那样轻松地执行数学运算,或者我错过了在C语言中谈论数学的东西
对于我的家庭作业,我正在写收集了多少英里每加仑用户的汽车节目得到多少,每加仑的燃气费,有多少英里,他们每个月开车.然后,该计划告诉他们他们可以期望为当月的天然气支付多少钱.我目前的代码如下:
#include <stdio.h>
int main () {
int mpg, miles;
double gas_price;
printf("How many miles per gallon does your car get?\n");
scanf("%d", &mpg);
printf("What is the price of gasoline per gallon?\n");
scanf("%lf", &gas_price);
printf("How many miles do you drive in a month?\n");
scanf("%d", &miles);
printf("The cost of gas this month is $%.2lf\n", miles / mpg * gas_price);
printf("%d %d %d", mpg, gas_price, miles);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行程序时,值为24为"mpg",3.00为"gas_price",1000为里程,总计为$ 123.00.这是不正确的,比实际价格低约2美元.当你((1000/24)*3.00),你应该得到125均匀.我添加了一个字符串来打印出所有值以查看C在第23行中使用的公式,而mpg和gas_price是正确的,"miles"显示为值为1,074,266,112.我知道这里肯定会有一些错误,因为这会导致结果超过2美元,但我不禁认为这是相关的.
我为问题的长度道歉,但我希望尽可能具体,我完全难以理解为什么C在如此奇怪地读这个.
我是Java的新手.我参加了C课,所以我试图摆脱这种思维模式.我正在编写的程序有一个部分,用户输入一个整数,n,然后输入n个单词.然后,此部分搜索这些单词并找到最短的单词,然后将其返回给用户.例如,输入可能是:
INPUT: 4 JAVA编程很有趣
输出:是
我目前的代码似乎返回错误的单词.在这种情况下,它返回"PROGRAMMING",它应该返回"IS".我想也许你们都可以指出我正确的方向.
int numwords = scan.nextInt();
String sentence = scan.nextLine();
String shortestword = new String();
String[] words = sentence.split(" ");
for (int i = 0; i < numwords; i++){
if (shortestword.length() < words[i].length()){
shortestword = words[i];
}
}
System.out.printf(shortestword);
Run Code Online (Sandbox Code Playgroud)
为了让你知道我想要做什么,我试图将单词输入一个字符串,"句子",然后将该字符串分解为数组中的单个单词,"words [],"然后运行for循环通过比较数组中条目的长度来比较字符串.谢谢您的帮助!
我在java编写一个简单的迷宫游戏.该程序从输入文件中读取文本"地图"以用于迷宫的布局.规则很简单:通过用户输入导航迷宫(由2D数组表示)并避免塌陷(由X表示),并将"P"(玩家)转到标记为"T"的点.现在,我已经编写了大部分代码,这只是让它正常工作的问题.我已经将大部分游戏设置为使用while循环运行,并将布尔"got treasure"设置为false.一旦这是真的,它应该结束游戏.
但是,我没有编写玩家实际获得宝藏的情况,所以我想知道为什么我的代码只是吐出"恭喜!你找到了宝藏!" 没有别的.如果有人能对此有所了解,我将非常感激.我的代码有点乱,因为我们的老师刚刚学习了方法,构造函数和创建自己的类.这是我到目前为止的代码:
import java.util.*;
import java.io.File;
public class MazeGame {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(new File("maze.txt"));
Scanner user = new Scanner(System.in);
int rows = scan.nextInt();
int columns = scan.nextInt();
int px = 0;
int py = 0;
String [][] maze = new String[rows][columns];
String junk = scan.nextLine();
for (int i = 0; i < rows; i++){
String temp = scan.nextLine();
String[] arrayPasser = temp.split("");
for (int j = 0; j …Run Code Online (Sandbox Code Playgroud)