C程序 - 扫描int并将两个整数的商打印为浮点数。打印整数

时间:2016-03-01 06:26:20

标签: c

  

编写一个C程序,它接收来自用户的两个参数并将它们存储为整数。将两个整数的商打印为浮点数。将两个参数本身打印为整数。约束:您只能声明两个变量int var1, var2;,并且不能使用类型转换。您必须使用字符串格式来转换类型。例如,在printf("%lf", somefloat) %f中,#include <stdio.h> int main() { int v1 = 0; int v2 = 0; scanf("%d %d", &v1, &v2); printf("qot %d %d %f", v1, v2, (float) v1 / v2); // NO TYPE CASTING !!! } 采用浮动并返回双精度。

     

再次:只有两个变量。将商打印为float,将变量打印为整数。

这样的事情 - 没有类型转换:

<!DOCTYPE html>
<html>
<head>
    <title>password strength</title>
    <style type="text/css">
    .red{
        background-color: red;
    }
    .orange{
        background-color: orange;
    }
    .green{
        background-color: green;
    }

    </style>
    <script type="text/javascript" src="angular.js"></script>
    <script type="text/javascript">
        var ans= angular.module("myapp",[]);
        ans.controller("pswdstr",function($scope){
            $scope.show=function(){
                var pswdlen= $scope.pswd.length;
                if (pswdlen==0) 
                {
                    $scope.color="";
                    $scope.validation="Enter password";
                }
                else if (pswdlen<=5) 
                {
                    $scope.color="red";
                    $scope.validation="password is weak";
                }
                else if (pswdlen>5 && pswdlen<=8) 
                {
                    $scope.color="orange";
                    $scope.validation="password is ok";
                }
                else if (pswdlen>8) 
                {
                    $scope.color="green";
                    $scope.validation="password is strong";
                };

            };

        });
    </script>
</head>
<body ng-app="myapp" ng-controller="pswdstr">
<label for="pswd">Enter password</label>
<input type="password" name="pswd" id="pswd" ng-model="pswd" ng-keypress="show()"></input>
<div class='{{ color }}' ng-if="pswd">
{{ validation }}
</div>
</body>
</html>

4 个答案:

答案 0 :(得分:4)

这样可以吗?

#include <stdio.h>

int main() {
    int var1, var2;
    scanf("%d %d", &var1, &var2);
    printf("qot %d %d %f", var1, var2, 1.0f * var1 / var2); // implicit conversion
}

我也注意到了#34;你必须使用字符串格式来转换类型&#34;在你的问题。你这么说是什么意思?

答案 1 :(得分:1)

#include <stdio.h>
int main() {
int v1 = 0;
int v2 = 0;
scanf("%d %d", &v1, &v2);
printf("qot %d %d %f", v1, v2, ( 1.0 * v1 / v2)); 
}

答案 2 :(得分:0)

使用化合物:

printf("%f", ((double){v1})/v2);

答案 3 :(得分:-2)

通过使用float等复合文字,您可以将答案存储在中间(float){v1}中,尽管存在变量限制。

这里介绍的符号看起来很可疑,但是不是演员。花括号将其与演员阵容区分开来;花括号内的表达式构成了匿名对象的初始化。

我们可以客观地证明(float){v1}不是演员;通过观察footnote 99the section on compound literals,很明显,强制转换不会形成左值,复合文字也不会。虽然我们可以修改复合文字的结果,但我们无法修改强制转换的结果:

((float) v1 ) = 42; // ERROR!   (float) v1  isn't an lvalue.
((float){v1}) = 42; // SUCCESS! (float){v1} is    an lvalue.