循环结构程序设计练习2
1、 编写程序,求1-1/2+ 1/3 -1/4 -1/100的值。
For语句
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i,n;
float s=0;
double pw;
for(i=1;i<=100;i++){
pw=pow(-1,i-1);
s=s+pw*1.0/i;}
printf("1-1/2+1/3-1/4......-1/100的值:%f",s);
return 0;
}
While语句
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i=1,n;
float s=0;
double pw;
while(i<=100)
{pw=pow(-1,i-1);
s=s+pw*1.0/i;
i++;}
printf("1-1/2+1/3-1/4......-1/100的值:%f",s);
return 0;
}
Do while语句
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i=1,n;
float s=0;
double pw;
do
{pw=pow(-1,i-1);
s=s+pw*1.0/i;
i++;}
while(i<=100);
printf("1-1/2+1/3-1/4......-1/100的值:%f",s);
return 0;
}
2、 编写程序,已知银行的年率为3%,则每月老师为希望工程存入100元,则20年后共有多少存款?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i,s=0;
for(i=1;i<=12*20;i++)
{s=(s+100);
if(i%12==0)
s=s*1.03;}
printf("银行的年率为3%,则每月老师为希望工程存入100元,则20年后共有%d存款",s);
return 0;
}
3、 在屏幕上输出图形:
*
***
*****
*******
*****
***
*
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i,j;
for(i=1;i<=4;i++){
for(j=1;j<=4-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");}
for(i=1;i<=3;i++){
for(j=1;j<=i;j++)
printf(" ");
for(j=1;j<=2*(4-i)-1;j++)
printf("*");
printf("\n");}
return 0;
}
4、 编写程序实现:输出50到150之间不能被5整除的整数。(要求continue语句进行解答)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i;
for(i=50;i<=150;i++){
if(i%5==0)
continue;
printf("%d\t",i);}
return 0;
}
5、 模拟自动饮料机:在模拟自动饮料机运行的过程中,输入数字n,当输入数字1-5时候给出对应的饮料(饮料名称自己定义),输入其他值的时候给出非法操作的信息,提示重新输入,当输入的值为0时,模拟自动饮料机停止运行。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i;
printf("1=可乐 2=雪碧 3=美年达 4=气泡水 5=苏打水\n请选择你的饮料:");
scanf("%d",&i);
if(i==0) printf("停止运行");
else if(i==1) printf("可乐");
else if(i==2) printf("雪碧");
else if(i==3) printf("美年达");
else if(i==4) printf("气泡水");
else if(i==5) printf("苏打水");
else printf("非法操作");
return 0;
}
6、 陈婷E-mail邮箱的密码是一个5位数。但她好长时间没有打开这个邮箱了,把密码给忘了。不过陈婷的生日是8月1日,妈妈的生日是9月1日,爸爸的生日是10月4日,她只记得密码是81、91和104的公倍数。你能设计一个C语言程序帮她找回这个密码吗?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int a=81,b=91,c=104,i,j,k;
for(i=2;i<=99999;i++){
if(i%a==0&&i%b==0&i>=10000&&i%c==0)
{j=i;
printf("这个密码:%d\n",j);}}
return 0;
}
7、 编写一个程序,输出1000-2000之间第一个素数。
#include<stdio.h>
int main()
{ int number,i;
for(number=1000;number<=2000;number++)
{
for(i=2;i<=number-1;i++)
{ if(number%i==0)
break;}
if(i>=number)
{printf("1000-2000之间第一个素数%d\t",number);
break;}
}
return 0;
}
8、 猜字游戏:使用随机数生成一个三位数作为谜底进行猜字游戏,每次猜的时候给出提示,如果输入的数字比猜的数字大,则给出大的信息,如果所输入的数字比猜的数字小,则给出小的信息,如果猜对了则给出赢了的信息,如果超出10次则给出输了的信息。
#include <stdio.h>
#include <stdlib.h>
int main() {
int a,n,p;
srand((unsigned)time(NULL));
a = rand() % 900 + 100;
printf("猜数字:输入一个三位数");
for(p=0;p<10;p++)
{ scanf("%d",&n);
if(n==a)!
{ printf("猜对了");
break; }
if(n>a)
printf("大了,再来一次\n");
else
printf("小了,再来一次\n");}
printf("正确答案是=%d\n", a);
return 0;
}
结果
1
2
3
4
5
6
7
8