一、用循环验证用户输入的数字
#include<stdio.h>
int main(){
int num;
printf("请您猜一个正整数:");
scanf("%d",&num);
while (num>=0&&num<=100)
{
if (num==65)
{
printf("恭喜您猜对了。");
break;
}else{
printf("您猜错了。请继续:");
scanf("%d",&num);
}
}
}
运行结果:
二、打印出1到1000以内能被3整除的数字
#include<stdio.h>
int main() {
int a = 1, j = 0;
while (a > 0 && a <= 1000) {
if (a % 3 == 0) {
printf("%4d ", a);
j++;
if (j >= 5) {
j = 0;
printf("\n");
}
}
a++;
}
return 0;
}
运行结果:
三、简单统计输入数的个数(用户可以无限次输入数字,请统计输入数字的正数个数,负数个数,0的个数,当用户输入999时程序结束。)
#include<stdio.h>
int main() {
int num;
int positive = 0, negative = 0, zero = 0;
while (1) {
scanf("%d", &num);
if (num == 999) {
break;
}
if (num > 0) {
positive++;
} else if (num < 0) {
negative++;
} else {
zero++;
}
}
printf("正数个数:%d\n负数个数:%d\n零的个数:%d\n", positive, negative, zero);
return 0;
}
运行结果:
四、阶乘的计算
#include<stdio.h>
int main(){
int n,i=1,sum=1;
printf("请输入一个数字:");
scanf("%d",&n);
while (i<=n)
{
sum=sum*i;
i++;
}
printf("%d的阶乘为:%d",n,sum);
}
运行结果:
五、编写一个程序,让用户输入一个数,然后计算该数各个位数的和。
#include<stdio.h>
int main(){
int a,b,sum;
printf("请输入一个正整数:");
scanf("%d",&a);
b=a;
while (a>0)
{
sum+=a%10;
a/=10;
}
printf("%d的各位的和为:%d",b,sum);
}
运行结果:
六、打印菱形
#include<stdio.h>
int main(){ //i--行 j--列
for (int i = 1; i < 6; i++)
{
printf("\n");
for (int k = 0; k < 5-i; k++)// 空格
{
printf(" ");
}
for (int j = 0; j<2*i-1; j++)// *号
{
printf("*");
}
}
for (int i = 4; i > 0; i--)
{
printf("\n");
for (int k = 0; k < 5-i; k++)// 空格
{
printf(" ");
}
for (int j = 0; j<2*i-1; j++)// *号
{
printf("*");
}
}
}
运行结果:
七、一个球从100米高度自由落下,每次落地后反弹回原高度的一半;再落下,求在第几次之后反弹高度小于0.1米,并计算在这一次落地时共经过多少米?
#include<stdio.h>
int main(){
double sum=100;
double c=1; //次数
for (double h = 50; h > 0.1; h/=2.0) //反弹高度
{
sum = 2*h + sum;
c++;
}
printf("在第%.0f次之后反弹高度小于0.1米,并计算在这一次落地时共经过%.2f米",c,sum);
}
运行结果: