首页 > 其他分享 >16.C语言错题整理

16.C语言错题整理

时间:2024-04-04 20:46:27浏览次数:24  
标签:16 int scanf 编程 ++ C语言 错题 printf main

一些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=-f;
    }
    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"); // 每行结束后换行
    }
}

标签:16,int,scanf,编程,++,C语言,错题,printf,main
From: https://www.cnblogs.com/gaodiyuanjin/p/18114561

相关文章

  • DFS 全排列问题 C语言代码
    深度优先搜索(DFS)是一种遍历算法,尽可能深地向子树中的结点搜索,直到达到一定的深度,再回溯到上层的结点,继续搜索未被访问的结点。全排列问题给定4个数1234,求他们所有可能的排列结果。代码#include<stdio.h>voiddfs(intx);inti;inta[4];intresult[4];/......
  • C语言 | Leetcode C语言题解之第8题字符串转换整数atoi
    题目:题解:intmyAtoi(char*s){inti=0;intout=0;intpol=1;intlen=strlen(s);if(len==0)return0;while(s[i]=='')i++;//删除空格if(s[i]=='-'){//判断正负pol=-1;i++;}else......
  • c语言中关于字符数组赋值问题
    一维数组代码#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;constintN=1010;charstr[N];charst[N];chars1[N];chars2[N];/*abcdeabcdeabcdeabcde*/intmain(){ scanf("%s",&str+1); ......
  • 文心一言 VS 讯飞星火 VS chatgpt (229)-- 算法导论16.5 2题
    二、说明如何利用引理16.12的性质2在O(|A|)时间内确定一个给定任务集合A是独立的。文心一言:引理16.12的性质2可能是指某个特定引理中关于任务集合独立性的一个性质。由于具体的引理内容没有给出,我将基于任务集合独立性的通用概念来提供一个一般性的解释。任......
  • c语言:模拟字符串拷贝功能(strcpy),面试题
    面试题:优化中的优化(10分满分)字符串拷贝:是将一个字符串的内容复制到另一个字符串中的操作。运用函数模拟字符串拷贝:(5分)模拟字符串拷贝#include<stdio.h>voidmy_strcpy(char*dest,char*str){ while(*str!='\0') { *dest=*str; str++; dest++; } *dest......
  • AD16(altium designer 16)智能黏贴示范
    需要特别说明:需要填写间距,否则就会全部重叠在同一个位置看起来只有一一个其实也没什么用,因为即使要复制8个一样的模块,最多只要复制3次就可以了:1X2X2X2=8不过先用着吧,总会有好处的......
  • 设备驱动-16-Linux 内核LED子系统
    1LED子系统介绍led子系统相关描述可在内核源码Documentation/leds/leds-class.txt了解。led子系统是一个简单的Linux子系统,在目录/sys/class/leds下展示该子系统设备,每个设备都有自己的属性:brightness:设置LED亮度,范围0~max_brightnessmax_brightness:最大亮度......
  • C语言入门:预处理器指令详解
    目录一宏定义A.不带参数的宏定义:B.带参数的宏定义(宏函数):C.宏定义的注意事项:二条件编译A.#ifdef/#ifndef:B.#if/#elif/#else/#endif:C.#pragmaonce:三头文件包含A.#include:B.头文件包含顺序:C.编译警告:四C语言的优缺点A.C语言的优点:B.C语言的缺点:五C......
  • C语言实现牛顿迭代法(Newton-Raphson Method)
    目录前言A.建议B.简介一代码实现二时空复杂度A.时间复杂度B.空间复杂度C.总结三优缺点A.优点:B.缺点:C.总结:四现实中的应用前言A.建议1.学习算法最重要的是理解算法的每一步,而不是记住算法。2.建议读者学习算法的时候,自己手动一步一步地运行算法。B.......
  • C语言实现龙格-库塔方法(Runge-Kutta Methods)
    前言A.建议1.学习算法最重要的是理解算法的每一步,而不是记住算法。2.建议读者学习算法的时候,自己手动一步一步地运行算法。B.简介龙格-库塔方法(Runge-KuttaMethods)是一种用于求解常微分方程(ODEs)的数值积分方法,尤其适用于一阶非线性微分方程组。一代码实现在C语言......