目录
一:C语言第三天所学知识点
二:第三天所学代码
1.求从1到…到n分之1的和
2.算平均数
3.整数逆序
4.求n的阶乘
5.判断一个数是几位数
6.判断一个数是不是素数
7.求100以内的素数
8.计算前50个素数
9.测试continue
10.凑硬币问题
一:C语言第三天所学知识点
二:第三天所学代码
1.求从1到…到n分之1的和
#include
int main()
{
int n;
int i;
double sum=0.0;
scanf("%d",&n);
for(i=1;i<=n;i++){
sum+=1.0/i; //1+2分之1+3分之1+...+n分之1的和
}
printf("f(%d)=%fn",n,sum);
return 0;
// int n;
// int i;
// double sum=0.0;
// int sign=1;
// scanf("%d",&n);
// for(i=1;i<=n;i++){
// sum+=sign*1.0/i; //1-2分之1+3分之1-4分之1+...+n分之1的和
// sign=-sign;
// }
// printf("f(%d)=%fn",n,sum);
// return 0;
// int n;
// int i;
// int sum=0;
// scanf("%d",&n);
// for(i=1;i<=n;i++){
// sum+=i; //求从1+到n的和
// }
// printf("f(%d)=%dn",n,sum);
// return 0;
}
2.算平均数
#include
int main()
{
int number;
int sum=0;
int count=0;
// do{
// scanf("%d",&number);
// if(number!=-1){ //输入-1使程序结束。
// //这里面还需要使用if的原因是防止最后一次输入-1的时候而执行下面语句
// sum+=number;
// count++;
// }
// }while(number!=-1);
// printf("%fn",1.0*sum/count);
// return 0;
scanf("%d",&number);
while(number!=-1){
sum+=number;
count++;
scanf("%d",&number);//第二种写法
}
printf("%fn",1.0*sum/count);
return 0;
}
3.整数逆序
#include
int main(){
int x;
scanf("%d",&x);
int digit;
int ret=0;
while(x>0){
digit=x%10;
ret=ret*10+digit;
printf("x=%d,digit=%d,ret=%dn",x,digit,ret);
x/=10; //这种方法用于输出例如700逆序为7
}
printf("%d",ret);
return 0;
// while(x>0){
// digit=x%10;
// printf("%d",digit); //这种方法是用于输出例如700逆序到007
// ret=ret*10+digit;
// x/=10;
// }
// return 0;
}
4.求n的阶乘
#include
int main()
{
int n;
scanf("%d",&n);
int fact=1;
for(int i=1;i<=n;i++){
fact*=i;
}
printf("%d!=%dn",n,fact);
return 0;
}
5.判断一个数是几位数
#include
int main()
{
int x;
int n=0;
scanf("%d",&x);
// n++;
// x/=10;
// while(x>0){ //使用while来判断一个数是几位数
// n++;
// x/=10;
// }
// printf("%d",n);
// return 0;
do{ //使用do...while来判断一个数是几位数
x/=10;
n++;
}while(x>0);//注意在这里有分号
printf("%d",n);
return 0;
}
6.判断一个数是不是素数
#include
int main(){
int x;
scanf("%d",&x);
int i;
int isPrime=1;
for(i=2;i
if(x%i==0){
isPrime=0;
break;
}
}
if(isPrime==1){
printf("是素数n");
}else{
printf("不是素数n");
}
return 0;
}
7.求100以内的素数
#include
int main(){
int x;
scanf("%d",&x);
int i;
int isPrime=1;
for(i=2;i
if(x%i==0){
isPrime=0;
break;
}
}
if(isPrime==1){
printf("是素数n");
}else{
printf("不是素数n");
}
return 0;
}
8.计算前50个素数
#include
int main(){
// int x;
// int cnt=0; //计数器
// for(x=1;cnt<50;x++){
// int i;
// int isPrime=1; //x是素数
// for(i=2;i
// if(x%i==0){
// isPrime=0;
// break;
// }
// }
// if(isPrime==1){
// cnt++;
// printf("%dt",x); //使每个素数对齐
// if(cnt%5==0){ //每五个素数占一行
// printf("n");
// }
// }
// }
// return 0;
int x;
int cnt=0; //计数器
x=1;
while(cnt<50){ //法二是用while循环替换for循环
int i;
int isPrime=1; //x是素数
for(i=2;i
if(x%i==0){
isPrime=0;
break;
}
}
if(isPrime==1){
cnt++;
printf("%dt",x); //使每个素数对齐
if(cnt%5==0){ //每五个素数占一行
printf("n");
}
}
x++;
}
return 0;
}
9.测试continue
#include
int main(){
int x;
scanf("%d",&x);
int i;
int isPrime=1;
for(i=2;i
if(x%i==0){
isPrime=0;
continue; //跳过循环这一轮剩下的语句进入下一轮
}
printf("%dn",i);
}
if(isPrime==1){
printf("是素数n");
}else{
printf("不是素数n");
}
return 0;
}
10.凑硬币问题
#include
int main()
{
int x;
int one,two,five;//分别指1毛的个数,2毛的个数,5毛的个数
// int exit=0;
// scanf("%d",&x);
// for(one=1;one
// for(two=1;two
// for(five=1;five
// if(one+two*2+five*5==x*10){
// printf("可以用%d个1角加%d个2角加%d个5角得到%d元n",
// one,two,five,x);
// exit=1;
// break;
// }
// }
// if(exit==1) break;
// }
// if(exit==1) break;
// }
scanf("%d",&x);
for(one=1;one
for(two=1;two
for(five=1;five
if(one+two*2+five*5==x*10){
printf("可以用%d个1角加%d个2角加%d个5角得到%d元n",
one,two,five,x);
goto out; // 使用goto语句可以跳出多层循环
}
}
}
}
out:
return 0;
}



