一些C语言错题

//求n的阶乘
   int sum=1;
   int n;
    printf("请输入n的值:");
    scanf("%d",&n);
        for (int j = 1; j < n+1; ++j) {
            sum*=j;
        }
        printf("%d\n",sum);
 int hee=0;
    int b=1;
    for ( int j = 1; j <= 3; j++) {
            b *= j; // 计算n的阶乘
        hee += b; // 将n的阶乘加到总和中
    }

    printf("%d",hee);
//模拟用户登录 只能登陆三次(即输入三次密码)
    int a;
    int i;
    int b = 123456;
    for (i = 0; i < 3; i++) {
        printf("请输入密码:");
        scanf("%d", &a);
        if (a == b) {
            printf("密码正确");
            break;
        } else {
            printf("密码不正确\n");
        }
    }
    if (i == 3)
        printf("输入次数超过三次");
//    中间排除法
    int arr[]={1,2,3,4,5,6,7,8,9,10};
    int size=sizeof(arr)/sizeof(arr[0]);  //数组长度
    int left=0;
    int right=size-1;
    int k=7;
    //只有左下标小于等于右下标才能进行循环
    while (left<=right) {
        int a = (left + right) / 2;
        if (arr[a] > k) {
            //如果一半大于要找的数 右下标变成中间那个+1
            right = a + 1;
        } else if (arr[a] < k) {
            //如果一半小于要找的数 左下标变成中间那个+1
            left = a + 1;
        } else {
            printf("%d\n", a);
            break;
        }
    }
    if(left>right){
        printf("找不到");
    }
   int a=3;
    a+=a-=a*=a;
    printf("%d",a);
    double x=1, y;
    y = x + 3 / 2;
    printf("%lf", y);
 int i=0,j=0;
    for (; i < 10; ++i){
        for (; j < 10; ++j){
            printf("a");
        }
    }
//视频编程题1 三个数从大到小输出
int main(){
    int a,b,c;
    int max,mid,min;
    printf("请输出第一个数:");
    scanf("%d",&a);
    printf("请输出第二个数:");
    scanf("%d",&b);
    printf("请输出第三个数:");
    scanf("%d",&c);
    max=a>b?(a>c?a:c):(b>c?b:c);
    min=a<b?(a<c?a:c):(b<c?b:c);
    mid=a+b+c-max-min;
    printf("从大到小为:");
    printf("%d ",max);
    printf("%d ",mid);
    printf("%d ",min);
}
//视频编程题2 打印1-100之间所有3的倍数的数字
int main(){
    for (int i = 1; i < 101; ++i) {
        if(i%3==0){
            printf("%d ",i);
        }
    }
}
//视频编程题3 给两个数 求最大公约数
int main(){
    int a,b;
    printf("请输出第一个数:");
    scanf("%d",&a);
    printf("请输出第二个数:");
    scanf("%d",&b);
//这是为了假设  因为后面循环的是a%b
    if(a<b){
        int c=a;
        a=b;
        b=c;
    }
    int c;
    while (b!=0){
        c=a%b;
        a=b;
        b=c;

    }
    printf("最大公约数为:%d",a);
}
//视频编程题4 打印1000年到2000年之间的闰年
int main() {
    for (int i = 1000; i < 2001; i++) {
        if (i % 4 == 0 || i % 400 == 0 && i % 100 != 0) {
            printf("%d ", i);
        }

    }
}
//视频编程题5 打印100-200之间的素数
质数又称素数 一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除
如果一个数可以写成 i=a*b  那a或者b 一定<=根号i
#include<math.h>
int main() {
    for (int i = 100; i < 201; ++i) {
            int j=0;
            for(j=2;j<=sqrt(i);j++){
                if(i%j==0){
                    break;
                }
            }
            if(j> sqrt(i)){
                printf("%d ", i);
            }
        }
    }

int main() {
    int a = 0, b = 0;
    for (a = 1, b = 1; a < 101; a++) {
        if (b > 21) break;
        if (b % 3 == 1) {
            b = b + 3;
            continue;
        }
        b = b - 5;
    }
    printf("%d ", a);
}
//视频编程题6 1-100整数中出现多少个数字9
int main() {
    int count = 0;
    for (int i = 1; i < 101; ++i) {
        // 1-90 100
        if (i % 10 == 9) {
            count++;
        }
        //90-99
        else if (i / 10 == 9) {
            count++;
        }
    }
    printf("%d", count);
}
//视频编程题7 计算1/1-1/2+1/3-1/4........1/99+-1/100值
int main() {
    double sum = 0;
    int f=1;
    for (int i = 1; i < 101; ++i) {
        //1/1=1 1/2=0......... 1/88=0

        //刚开始f=1 对应i=1  然后f=-1 对应i=2 然后f=-(-1)=1 对应i=3.........
        sum +=f* 1.0 / i;
        //f变成-1
        f=-1;
    }
    printf("%.1lf", sum);
}

//视频编程题8 求10个整数中最大值
int main(){
    int a[9];
    //max=0错误 如果为负数那么0最大 实际上你并未输入0
    int max=a[0];
    for (int i = 0; i < 10; ++i) {
        printf("输入数字:");
        scanf("%d",&a[i]);
        if(a[i]>max){
            max=a[i];
        }

    }
    printf("%d",max);
}
//视频编程题9 乘法口诀表
int main() {
    for (int i = 1; i <10; i++) {
        for (int j = 1; j <i+1; j++) {
            printf("%d*%d=%d\t", j, i, i * j);
        }
        printf("\n"); // 每行结束后换行
    }
}
posted on 2024-04-04 20:30  蒸饺  阅读(26)  评论(0)    收藏  举报