通过学习了C语言的循环结构,可以构成了许许多多的算法,如示例一来求平均数:
#include<stdio.h>
int main()
{
int sum;
int count = 0;
int number = 0;
scanf("%d",&number);
while( number != -1 )
{
sum += number;
count ++;
scanf("%d",&number);
}
double dsum = sum;
printf ("The average is %f",dsum/count);
return 0;
}
以及我们可以简单计算log2()的函数值的整数部分,通过一个简单的代码形成一个很粗略的值,即示例二:
// log2x
#include<stdio.h>
int main()
{
int x;
int ret;
scanf("%d",&x);
int t = x;
while ( x>1 ){
x /= 2;
ret ++;
}
printf("log2 of %d is %d",x,ret);
return 0;
}
以及我们可以得到一个简单的猜数字的游戏。如示例三:
#include<stdio.h>
int main()
{
int number = rand()%100 + 1;
int count = 0;
int a = 0;
printf("我已经想好了一个1-100之间的数!\n");
do{
printf("请猜猜这个1-100的数:");
scanf("%d",&a);
if ( a > number ){
printf("你猜的数大了!\n");
} else if ( a < number ){
printf("你猜的数小了!\n");
}
count ++;
}while (a != number);
printf("太好了,你用了%d次就猜到了答案!",count) ;
return 0;
}
但是这种rand()函数所输出的随机数固定,故需要引入新的知识,即示例四:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
srand(time(0));
int a = rand();
printf("%d",a%100);
return 0;
}
我们还可以用循环算法来进行字符串逆序,如实例五:
#include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
int digit;
int ret = 0;
while (x/10 > 0){
digit = x%10;
printf("%d\n",digit);
ret = ret * 10 + digit;
x /= 10;
}
digit = x%10;
printf("%d\n",digit);
ret = ret * 10 + digit;
printf("%d\n",ret);
return 0;
}
3728

被折叠的 条评论
为什么被折叠?



