c语言int循环语句是,分支与循环语句的简单应用(c语言)

打印倍数int main()

{

int x = 0;//倍数目标

int y = 0;//倍数范围

int i = 1;

scanf("%d %d", &x,&y);

for (; x <= y; x = i * x)

{

printf("%d ", x);

i++;

};

return 0;

}

三数排序int main()

{

int a;//最大值

int b;//中间值

int c;//最小值

scanf("%d %d %d", &a, &b,&c);//随机输入数值(无序)

if (a < b)

{

int tmp;

tmp = a;

a = b;

b = tmp;

}

if (a < c)

{

int tmp;

tmp = a;

a = c;

c = tmp;

}

if (b < c)

{

int tmp;

tmp = b;

b = c;

c = tmp;

}

printf("%d %d %d", a, b, c);

return 0;

}

求两数间最大公约数(辗转相除法)

以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数。{

int a;//数字a

int b;//数字b

int ret;

scanf("%d %d", &a, &b);

while (ret=a % b)//a%b=0时跳出循环

{

a = b;

b = ret;

}

printf("%d", b);

return 0;

}

判断某个范围内各个自然数的个位或十位是否为九int main()

{

int a;//判断目标

int b;//范围

int count=0;//计数

scanf("%d %d",&a,&b);

for (a = 1; a <= b; a++)

{

if (a % 10 == 9)

{

printf(" %d", a);

count++;

}

//若使用else if会缺少99(个位和十位都是9,必须重复计数)

if (a / 10 == 9)

{

printf(" %d", a);

count++;

}

};

printf("\ncount=%d", count);

return 0;

}

打印素数

素数是除一及其本身外无其他公约数的自然数2。

判断方法:

试除法(将小于指定数的自然数一一试除,皆无法整除者为素数)int main()

{

int i = 0;

int k = 0;//起始数

int p = 0;//结束数

int j = 0;

int count = 0;//计数范围内素数个数

scanf("%d %d ",&k,&p)

for (i = k; i <= p; i++)//给出范围内各个数

{

//素数的判断

for (j = 2; j <= i - 1; j++)

{

if (i % j == 0)

break;

}

if (j == i)

{

count++;

printf("%d ", i);

}

}

printf("\ncount=%d", count);

return 0;

}

优化:{

int i = 0;

int k = 0;//起始数

int p = 0;//结束数

int count = 0;

for (i = k; i <=p; i += 2)//跳过所有偶数,减少计算量。

{

int j = 0;

//素数的判断:无法被2到指定数的开方数整除的自然数

for (j = 2; j <= sqrt(i); j++)

{

if (i % j == 0)

break;

}

if (j > sqrt(i))

{

count++;

printf("%d ", i);

}

}

printf("\ncount=%d", count);

return 0;

}

求某个范围的闰年非整百年份:能被4整除的是闰年。(如2004年就是闰年,2001年不是闰年)

整百年份:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)int main()

{

int a;

int b;

int count = 0;

scanf("%d %d", &a, &b);

for (; a < b; a++)

{

if (((a % 4 == 0) && (a % 100 != 0)) || (a % 400 == 0))

{

printf("%d ", a);

count++;

}

}

printf("\ncount=%d", count);

return 0;

}

计算阶乘(计算数学上的n!)int main()

{

long x=0;//目标n

int y=0;

int ret = 1;

scanf("%d/n", &x);

for (y = 1; y <= x; y++)//给出计算所需值

{

ret = ret * y;//进行累乘

};

printf("%d\n", ret);

return 0;

}

加大难度:计算阶乘相加int main()

{

long x = 1;

int y = 0;

int ret = 1;//累乘媒介

int sum = 0;//相加结果

int n = 0;//阶乘范围

scanf("%d/n", &n);

while(x<=n)

{

ret = 1;

for (y = 1; y <= x; y++)

{

ret = ret * y;

};

sum += ret;

x++;

}

printf("%d", sum);

return 0;

}

打印1 / 2 + 1 / 3 - 1 / 4.... - 1 / 100结果int main()

{

int a = 1;

int f = 1;

double sum = 0;

//由于计算结果为小数,只能使用浮点数

double b = 0.0;

for (b=1; b <= 100; b++)

{

sum +=( f * 1 / b);

f = -f;//交替出现加号与减号

}

printf("%lf", sum);//浮点数对应%lf

return 0;

}

二分查找

注:只能在有序数组中才能使用。int main()

{

int left = 0;//左下标

int right = 0;//右下标

int k = 0;//查找值

int n = 0;//数组长度

int z = 0;//中间值

char arr[] = { 1,2,3,4,5,6,8,9 };//查找范围

scanf("%d", &k);

right = n - 1;

n = sizeof(arr) / sizeof(arr[0]);//计算数组大小

while (left <= right)//易错:等于号不可省略

{

z = (left + right) / 2;

if (arr[z] < k)

{

left = z + 1;

}

else if (arr[z] > k)

{

right = z - 1;

}

else

{

printf("找到了,下标是%d", z);

break;

}

}

if (left > right)

printf("找不到");

return 0;

}

打印乘法口诀表

右下角int main()

{

int a;//行数

int b;//列数

for (a= 1; a <= 9; a++)

{

for (b = 1; b <= a; b++)

{

printf("%d*%d=%d\t", b, a, a * b);//\t一个制表符距离

}

printf("\n");

}

return 0;

}

正方形int main()

{

int a;//行数

int b;//列数

for (a = 1; a <= 9; a++)

{

for (b = 1; b <=9; b++)

{

//%-2d为向左对齐两个字符

printf(" %d*%d=%-2d", a, b, a * b);

}

printf("\n");

}

return 0;

}

总结

或许,以上只是常见的c语言编程题,但在这其中我领会了一些简单算法的应用,直至懂得了分支与循环语句的基础使用逻辑。相信我将会慢慢进步,在这条道路上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值