计算之前保存原有的值,后面可能会用
求log2x
int x;
int ret=o;
sacnf("%d,&x);
int t = x; //计算之前保存原有的值,后面可能会用
while (x>1){
x>/=2;
ret ++;
}
printf("log2 of %d is %d.",&t,&ret);
算平均数
让用户输入一系列正整数,最后输入-1表示输入结束,程序去计算这些数的平均数,输出和输入的数字的个数和平均数
#include <stdio.h>
int main()
{
int number;
int sum=0;
int count=0;
scanf("%d",&number);
while (number!=-1){
sum+=number;
count ++;
scanf("%d",&number);
}
printf("%f\n",1.0*sum/count); /*1.0*很厉害,变精度啦,前面是%f*/
return 0;
}
猜数游戏
计算机来想一个数,然后让用户来猜,用户没输入一个数,就告诉他是大了还是小了,直到用户猜中为止,最后还要告诉用户他猜了多少次
补充知识:
- 随机数–每次召唤rand()就得到一个随机的整数
- 如何获得一个[0-99]的整数?%100
本题逻辑如下
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(0));
int number=rand()%100+1;
int count = 0;
int a = 0;
printf("我已经想好了一个1-100之间的整数");
do{
printf("猜猜这个1-100之间的数:");
scanf("%d",&a) ;
count ++;
if (a > number){
printf("你猜的数大了");
}else if ( a < number) {
printf("你猜的数小了");
}
} while(a != number);
printf("太好了,你用了%d次就猜到了答案\n",count);
}
整数的逆序
整数的分解-一个整数一至多位数字构成,如何分解出各个位上的数字?
- %10——得到个位;
- /10 ——去掉个位;
- 对步骤2 ,再%10—— 得到十位;
- 以此类推
整数逆序–得到正常的数,例如700逆序是7
#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
int digit;
int ret = 0;
while(x>0){
digit=x%10;
printf("%d",digit);
ret=ret*10+digit;
//printf("x=%d,digit=%d,ret=%d",x,digit,ret);
x /= 10;
}
//printf("%d",ret);
return 0;
}
整数逆序–得到的数正好是原数字换顺序,例如700逆序是007
#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
int digit;
int ret = 0;
while(x>0){
digit=x%10;
//printf("%d",digit);
ret=ret*10+digit;
x /= 10;
}
printf("%d",ret);
return 0;
}
以上是参考翁恺老师的C语言-程序设计入门