编写一个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>
答案 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 99的the section on compound literals,很明显,强制转换不会形成左值,复合文字也不会。虽然我们可以修改复合文字的结果,但我们无法修改强制转换的结果:
((float) v1 ) = 42; // ERROR! (float) v1 isn't an lvalue.
((float){v1}) = 42; // SUCCESS! (float){v1} is an lvalue.