相同点:1.都用到随机出来一个数
2.都用到do-while循环,先键盘输入一个数(即先做一次循环),然后判断你输入的这个数跟我随机产生的数大小如何(即判断)
3.do-while执行后判断条件均是a是否等于number(即a!=number)
不同点:1.在c语言中我们用scanf输入,在java中我们用in.nextInt()输入一个整数 ,而在c语言中用printf输出,在java中用System.out.println()输出。
2.在Java里,math.random()会随机出现[0,1)直接的数,所以我们将math.random()*100变成[0,100),然后再加1变为[1,101),但是题目要求我们是整数,所以需要强制类型转化一下即(int)(math.random()*100+1)这样它就只能取[1,100]之间的整数了
在c语言里,要用rand(),但是rand()会出现很大很大的数,所以要变成rand()%100,把它变为[0,99]这个范围内,之后再加一。(头文件需要写上#include<stdlib.h>)
补充:x%100的结果是[0,n-1]内的整数,所以不需要强制类型转换。
java方法
package wordhello;
import java.util.Scanner;
public class Wordhello {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int number=(int)(Math.random()*100+1);
int a;
int cnt=0;
do {
a=in.nextInt();
cnt= cnt+1;
if(a>number) {
System.out.println("偏大");
}
else if(a<number){
System.out.println("偏小");
}
}while(a!=number);
System.out.println("恭喜你对了!,你猜了"+cnt+"次");
}
}
c语言方法
#include<stdio.h>
#include<stdlib.h>
int main(){
int number=rand()%100+1;
int cnt=0;
int a=0;
printf("我已经想好了一个1到100之间的数\n");
do{
printf("请猜这个数:");
scanf("%d",&a);
cnt++;
if(a>number){
printf("猜大了");
} else if(a<number){
printf("猜小了");
}
} while(a!=number);
printf("太好了,你用了%d次就猜中了!",cnt);
return 0;
}