导航

实验2 C语言分支语句、循环语句应用编程

Posted on 2021-11-10 16:15  pipipapi  阅读(212)  评论(3)    收藏  举报
一、实验目的
  1. 掌握格式化输出函数printf()和格式化输入函数scanf()的用法
  2. 掌握单个字符输出函数putchar()和单个字符输入函数getchar()的用法
  3. 理解结构化程序设计的三种基本结构:顺序结构、分支结构、循环结构
  4. 熟练掌握分支语句和循环语句
  5. 理解并掌握控制语句continue和break在循环中的应用
  6. 理解并掌握循环的嵌套
  7. 训练设计算法逻辑并用c语言编程解决实际问题的能力

实验一

#include <stdio.h>
int main() {
    int num;
    scanf("%d", &num);
    printf("2049%04d\n", num);
    scanf("%d", &num);
    printf("2049%04d\n", num);
    scanf("%d", &num);
    printf("2049%04d\n", num);
    return 0;
}

1.

 

 

%4d的作用是当此数字满4位时输出,如果不满,则用0补到4位

2.

#include <stdio.h>
int main() {
    int num;
    while(~scanf("%d", &num))
        printf("2049%04d\n", num);
    return 0;
}

 

实验二

 

#include <stdio.h>
int main() {
    char ans1, ans2;
    printf("复习了没? (输入y或Y表示复习了,输入n或N表示没复习) : ");
    ans1 = getchar(); // 从键盘输入一个字符,赋值给ans1
    getchar(); // 思考这里为什么要加这一行。试着去掉这一行,看看对运行有没有影响。
    printf("\n动手敲代码了没? (输入y或Y表示敲了,输入n或N表示木有敲) : ");
    ans2 = getchar();
    if ((ans1 == 'y' || ans1 == 'Y')&&(ans2 == 'y' || ans2 == 'Y')) 
        printf("\n罗马不是一天建成的:)\n");
    else printf("\n罗马不是一天毁灭的。。。\n");
    return 0;
}

 

 

实验三

#include <stdio.h>
int main() {
    char x;
    x = getchar();
    if (x>='0'&&x<='9') // ´ý²¹×ã¢Ù£¬ÅжÏxÊÇÊý×Ö×Ö·û±í´ïʽ
        printf("%cÊÇÊý×Ö×Ö·û\n", x);
    else if ((x>='a'&&x<='z') || (x>='A'&&x<='Z')) // ´ý²¹×ã¢Ú£¬ÅжÏxÊÇ´óд»òСдӢÎÄ×ÖĸµÄ±í´ïʽ
        printf("%cÊÇÓ¢ÎÄ×Öĸ\n", x);
    else
        printf("%cÊÇÆäËü×Ö·û\n", x);
    return 0;
}

 

实验四

#include<stdio.h>
#include<ctype.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>

typedef long long LL;
#define debug(a) cout << #a": " << a << endl;
#define rep(i, ll,rr) for(int i = ll; i <= rr; ++i)
#define N 100010
int gcd(int a,int b){return b ? gcd(b,a%b) : a;}

int n,m,a;

int main(){
    while(~scanf("%d%d",&n,&a)){
        double ans = 0;
        int base = 0;
        rep(i,1,n){
            base = base * 10 + a;
            ans += 1.0*i/base;
        }
        printf("ans=%.5lf\n",ans);
    }
    return 0;
}

 

 

实验五

#include <stdio.h>
#include <stdlib.h>
#include <time.h> 
const int N = 5;
int main() {
    int x, n;
    srand(time(0)); // 以当前系统时间作为随机种子
    for (n = 1; n <= N; n++) {
        x = rand() % 100; // 生成一个0~99之间的随机整数
        printf("%3d", x);
    }
    printf("\n");
    return 0;
}

(1)如果要生成1-31,则%32即可

 

实验六

#include <stdio.h>
#include <stdlib.h>
#include <time.h> 
const int N = 5;
int main() {
    int ans, n=3,x;
    srand(time(0)); // 以当前系统时间作为随机种子
    ans = rand() % 31; // 生成一个0~99之间的随机整数
    while(n--){
        scanf("%d",&x);
        if(x==ans) puts("luck day");
        else if(x > ans) puts("你猜的时间晚了,luck day 悄悄溜到前面拉");
        else if(x < ans) puts("你猜的时间早了,luck day 悄悄溜到后面啦");
    }
    printf("\n");
    return 0;
}

 

 

实验七

(1)

#include <stdio.h>
#include <stdlib.h>
#include <time.h> 
const int N = 5;
void op(){
    printf(" O \n"); printf("<H>\n"); printf("I I\n");
    puts("");
}

int main() {
    int n;
    puts("input n:");
    scanf("%d",&n);
    while(n--){
        op();
    }

    return 0;
}

 

 

(2)

#include <stdio.h>
#include <stdlib.h>
#include <time.h> 
#define rep(i,ll,rr) for(int i=ll;i<=rr;++i)
const int N = 5;

int n;
void op(){
    rep(i,1,n) {printf(" O ");printf("      ");}puts("");
    rep(i,1,n) {printf("<H>");printf("      ");} puts("");
    rep(i,1,n) {printf("I I");printf("      ");} puts("");
    puts("");
}

int main() {
    puts("input n:");
    scanf("%d",&n);
    // while(n--){
        op();
    // }
    return 0;
}

 

 

 

(3)

#include <stdio.h>
#include <stdlib.h>
#include <time.h> 
#define rep(i,ll,rr) for(int i=ll;i<=rr;++i)
const int N = 5;

int n,m;
void op(){
    rep(i,1,m-n) printf("         ");
    rep(i,1,2*n-1) {printf(" O ");printf("      ");}puts("");
    rep(i,1,m-n) printf("         ");
    rep(i,1,2*n-1) {printf("<H>");printf("      ");} puts("");
    rep(i,1,m-n) printf("         ");
    rep(i,1,2*n-1) {printf("I I");printf("      ");} puts("");
    puts("");
}

int main() {
    puts("input n:");
    scanf("%d",&n);
    m = n;
    rep(i,1,m){
        // rep(i,1,2*n-1) 
        op();
        n --;
    }
    return 0;
}