实验3 C语言分支语句和循环语句编程应用
#include <math.h> #include <stdio.h> int main() { float a, b, c, x1, x2; float delta, real, imag; printf("Enter a, b, c: "); while(scanf("%f%f%f", &a, &b, &c) != EOF) { if(a == 0) { printf("not quadratic equation.\n\n"); } else { delta = b*b - 4*a*c; } if(delta >= 0) { x1 = (-b + sqrt(delta)) / (2*a); x2 = (-b - sqrt(delta)) / (2*a); printf("x1 = %.2f, x2 = %.2f\n\n", x1, x2); } else { real = -b/(2*a); imag = sqrt(-delta) / (2*a); printf("x1 = %.2f + %.2fi, x2 = %.2f - %.2fi\n\n", real,imag, real, imag); } } printf("Enter a, b, c: "); return 0; }

#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 5 int main() { int x, n; srand(time(0)); n = 0; do { n++; x = rand()%10; printf("%3d", x); } while(n<N); printf("\n"); return 0; }

#include<stdio.h> int main() { int i=2,j=101; int temp=0,sum=0,count=0; for(;(j<=200)&&(i<=j);i++) { temp=0; if(j%i==0) { i=2; j++; continue; } else { temp+=1; if(temp==j-i) { printf("%d ",j); count+=1; if(count==5) { printf("\n"); count=0; } sum+=1; i=2; j++; continue; } } } printf("\n"); printf("101~200之间共有%d个素数",sum); printf("\n"); return 0; }

#include<stdio.h> #define N 2e5 int main() { printf("Enter a number:"); long int s; while(scanf("%ld",&s)!=EOF) { int d=1,m=1,t=0; int i; for(i=0;(s!=0)&&(i<N);i++) { d=s%10; if(d%2!=0) { t+=d*m; m*=10; } s/=10; } printf("new number is:%d\n",t); printf("\n"); printf("Enter a number:"); } return 0; }

算法思路:
1. 将输入的数字对10取余,即可取出最后一位数字,并用if语句对该数字进行判断,如果对2取余不等于0,即为奇数;
2. 使用一个数字m,在取出每位奇数d后,乘以该数,并在每次循环过后自乘10,即可确保构成的新数中,原先的高位仍在高位,原先的低位仍在低位。
#include<stdio.h> #include<math.h> int main() { int n; printf("Enter n(1~10):"); while(scanf("%d",&n)!=EOF) { if(n<'1'||n>'10') { return 1; } double s=0,temp=0,jc=1; int i; for(i=1;i<=n;i++) { temp=pow((-1.0),(i+1)); jc*=i; s+=temp*(1.0/jc); } printf("n=%d,s=%lf",n,s); printf("\n"); printf("\n"); printf("Enter n(1~10):"); } return 0; }

#include<stdio.h> #include<stdlib.h> #include <time.h> int main() { printf("猜猜2020年12月哪一天是你的luck day"); printf("开始喽,你有三次机会,猜吧(1~31):"); int n,date; srand(time(NULL)); date=rand()%31+1; int i,m=0,flag=0; while(scanf("%d",&n)!=EOF) { if(n==date) { return 0; } else if(n<date) { printf("你猜的日期早了,luck day还没到呢\n"); printf("\n"); flag=1; m++; } else if(n>date) { printf("你猜的日期晚了,luck day悄悄溜到前面啦\n"); printf("\n"); flag=1; m++; } if(m==3) { break; } } if(flag==1) { printf("次数用完啦。偷偷告诉你:12月,你的luck day是%d号\n",date); } return 0; }

浙公网安备 33010602011771号