热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c语言笔记

以下,只是将个人觉得有点动脑儿的代码给存了下来。练习2-1:#include<stdio.h>intmain(){int

以下,只是将个人觉得有点动脑儿的代码给存了下来。

练习2-1:

#include 
int main()
{
    int n1, n2;
    puts("请输入两个整数:");
    printf("整数A:"); scanf("%d", &n1);
    printf("整数B:"); scanf("%d", &n2);

    printf("A的值是B的值的%d%%\n", (n1*100)/n2);
}

练习2-5:

#include 
int main()
{
    int n1, n2;
    puts("请输入两个整数:");
    printf("整数A:"); scanf("%d", &n1);
    printf("整数B:"); scanf("%d", &n2);

    printf("A是B的%f%%。\n", (double) (n1*100) / n2);  
    return 0;
}

练习3-1:

#include 
int main()
{
    int a, b;
    puts("请输入两个整数。");
    printf("整数A:"); scanf("%d", &a);
    printf("整数B:"); scanf("%d", &b);

    if (a % b)
        puts("B不是A的约数。");
    else
        puts("B是A的约数。");

    return 0;   
}

练习3-3:

#include 
int main()
{
    int n1;

    printf("请输入一个整数:");
    scanf("%d", &n1);

    if (n1 >= 0)
        printf("绝对值是%d。\n", n1);
    else
        printf("绝对值是%d。\n", -n1);

    return 0;
}

练习3-8:

#include 
int main()
{
    int a, b, c, min;

    puts("请输入3个整数。");
    printf("整数A:"); scanf("%d", &a);
    printf("整数B:"); scanf("%d", &b);
    printf("整数C:"); scanf("%d", &c);

    min = a;
    min = b printf("最小值是%d。\n", min);

    return 0;
}

练习3-9:

#include 
int main(void)
{
    int a, b, c;

    puts("请输入三个整数。");
    printf("整数A:"); scanf("%d", &a);
    printf("整数B:"); scanf("%d", &b);
    printf("整数C:"); scanf("%d", &c);

    if (a == b == c)
        puts("三个值都相等。");
    else if (a == b || a == c || b == c)
        puts("有两个值相等。");
    else
        puts("三个值各不相同。");

    return 0;
}  

练习3-11:

#include 
int main(void)
{
    int no;

    printf("请输入一个整数:");
    scanf("%d", &no);

    switch (no % 2) {
        case 0 : puts("该整数是偶数。"); break;
        default : puts("该整数是奇数。"); break;
    }

    return 0;
}

练习3-12:

#include 
int main(void)
{
    int month;

    printf("请输入月份:");
    scanf("%d", &month);

    switch (month) {
        case 3 : puts("是春天。"); break;
        case 4 : puts("是春天。"); break;
        case 5 : puts("是春天。"); break;
        case 6 : puts("是夏天。"); break;
        case 7 : puts("是夏天。"); break;
        case 8 : puts("是夏天。"); break;
        case 9 : puts("是秋天。"); break;
        case 10 : puts("是秋天。"); break;
        case 11 : puts("是秋天。"); break;
        case 12 : puts("是冬天。"); break;
        case 1 : puts("是冬天。"); break;
        case 2 : puts("是冬天。"); break;
        default : puts("输入的月份不存在!!\a"); break;
    }

    return 0;
}

练习4-1:

#include 
int main()
{
    int num1;
    int num2;

    do {
        printf("请输入一个非负整数:");
        scanf("%d", &num1);
        if (num1 <0)
            puts("请不要输入负数。");
    } while(num1 <0);

    num2 = num1;
    printf("%d逆向显示的结果是", num2);
    do {
        printf("%d", num1 % 10);
        num1 = num1 / 10;
    } while(num1 > 0);
    puts("。");

    return 0;
}

练习4-2:

#include 
int main()
{
    int a;  /* 输入的非负整数 */
    int b;  /* 用来显示输入的整数 */
    int c;  /* 位数 */

    do {
        printf("请输入一个非负整数:");
        scanf("%d", &a);
        if (a <0)
            puts("请不要输入负数。");
    } while (a <0);

    b = a;
    c = 0;
    printf("%d的位数是", b);
    do {
        a = a / 10;
        c = c + 1;
    } while (a > 0);
    printf("%d。 \n", c);

    return 0;
}

练习4-3:

#include 
int main()
{
    int n1;
    int n2;
    int a;
    int b;
    int sum = 0;

    puts("请输入两个整数。");
    printf("整数1:"); scanf("%d", &n1);
    printf("整数2:"); scanf("%d", &n2);

    a = n1;
    b = n2;
    
    printf("大于等于%d", b);
    printf("小于等于%d的所有整数的和是", a);
    do {
        sum = sum + n2;
        n2 = n2 + 1;
    } while (n2 <= n1);
    printf("%d。 \n", sum);

    return 0;
}

练习4-8:

#include 
int main(void)
{
    int i, no;

    printf("请输入一个正整数:");
    scanf("%d", &no);

    i = 1;
    while (i <= no){
        printf("%d ", i++);
    }

    return 0;
}

练习4-9:

#include 
int main(void)
{
    int n1, n2;

    printf("请输入一个整数:");
    scanf("%d", &n1);

    n2 = 2;
    while (n2 printf("%d ", n2);
        n2 += 2;
    }
    putchar('\n');

    return 0;
}

练习4-10:

#include 
int main(void)
{
    int n1, n2;

    printf("请输入一个整数:");
    scanf("%d", &n1);

    n2 = 2;
    while (n2 printf("%d ", n2);
        n2 *= 2;
    }
    putchar('\n');

    return 0;
}

练习4-11:

#include 
int main(void)
{
    int no;

    printf("请输入一个正整数:");
    scanf("%d", &no);

    while(no-- > 0){
        putchar('*');
        printf("\n");
    }

    return 0;
}

练习4-12:

# include 
int main()
{
    int no, sum = 0;

    for (no = 1; no <= 5; no++){
        sum += no;
    }

    printf("1到5的合计值是%d. \n", sum);

    return (0);
}

练习4-13:

# include 
int main()
{
    int i; /*输入的整数小于10时的循环次数*/
    int num; /*输入的整数*/
    int l; /*输入的整数大于9时,整除10,所得到的「1234567890」的循环次数*/
    int o; /*输入的整数大于9时,除余10,所得到的个位数的显示位数*/
    int v;
    int e;

    printf("please input a integer: ");
    scanf("%d", &num);

    if (num <= 9)
    {
        for (i = 0; i printf("%d", i + 1);
    }
    else {
        l = num / 10;
        o = num % 10;
        for (v = 0; v printf("1234567890");
        for (e = 0; e printf("%d", e + 1);
    }
    printf("\n");

    return (0);
}

练习4-14:

#include 
int main()
{
    int start;
    int end;
    int interval;

    printf("开始数值(cm): "); scanf("%d", &start);
    printf("结束数值(cm): "); scanf("%d", &end);
    printf("间隔数值(cm): "); scanf("%d", &interval);

    for (start = start;start <= end; start += interval ) {
        printf("%dcm %.2fkg \n", start, (double)(start - 80) * 0.7); 
    }
    /*世卫计算方法 男性:(身高(cm)-80)*70%*/

    return (0);
}

练习4-15:

#include 
int main()
{
    int i, j;
    int a; /*横标题*/
    int b; /*竖标题*/

    printf("  |");

    for (a = 1; a <= 9; a++) {
        printf("  %d", a);
    }

    printf("\n");

    printf("------------------------------\n");

    for (i = 1; i <= 9; i++) {
        printf("%d ", i);
        printf("|");
        for (j = 1; j <= 9; j++)
            printf("%3d", i * j);
        putchar('\n');
    }

    return (0);
}

练习4-17:

(1)

# include 
int main()
{
    int i, j, ln;

    printf("三角形有几层: ");
    scanf("%d", &ln);

    for (i = ln; i > 0; i--) {
        for (j = 1; j <= i; j++)
            putchar('*');
        putchar('\n');
    }

    return (0);
}

(2)

# include 
int main()
{
    int i, j, ln;

    printf("三角形有几层:");
    scanf("%d", &ln);

    for (i = 0; i for (j = 1; j <= i; j++)
            putchar(' ');
        for (j = 1; j <= ln - i; j++)
            putchar('*');
        putchar('\n');
    }

    return (0);
}

练习4-18:

# include 
int main()
{
    int n;

    printf("让我们来描绘一个金字塔。\n");
    printf("金字塔有几层:"); scanf("%d", &n);

    int i, j, k;/*, n = 5;*/
    char c1 = ' ';
    char c2 = '*';

    for (i = 0; i /*最外层的循环语句还是控制三角形有几层呀。。。*/
        for (j = 0; j printf("%c", c1);
        for (k = 0; k <= 2 * i; k++)       /*根据左边的空格数来安排「*」的位置,输入「*」后直接换行了!!!*/
            printf("%c", c2);

        printf("\n");
    }

    return (0);
}

练习5-4:

#include 
int main()
{
    int i;
    int va[5] = {15, 20, 30};
    int vb[5];

    for (i = 0; i <5; i++) {
        vb[0] = va[4];
        vb[1] = va[3];
        vb[2] = va[2];
        vb[3] = va[1];
        vb[4] = va[0];
    }

    puts(" va vb");
    puts("------");
    for (i = 0; i <5; i++) {
        printf("%3d%3d\n", va[i], vb[i]);
    }

    return 0;
}

练习5-5:

#include 
int main()
{
    int i;
    int vx[8];

    for (i = 0; i <8; i++) {
        printf("vx[%d]:", i);
        scanf("%d", &vx[i]);
    }

    for (i = 0; i <8; i++) {
        int temp = vx[i];
        vx[i] = vx[7 - i];
        vx[7 - i] = temp;
    }

    for (i = 0; i <8; i++) {
        printf("vx[%d] = %d\n", i, vx[7 - i]);
    }

    return 0;
}

练习5-7:

#include 
int main(void)

/*
当矩阵A的列数等于矩阵B的行数时,A与B可以相乘。
矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。
乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。
*/

{
    int x[2][3], y[3][2], z[2][2], i, j, k;

    puts("请输入x[2][3]的值:");
    for (i = 0; i <2; i++) {
        for (j = 0; j <3; j++) {
            scanf("%d", &x[i][j]);
        }
    }

    puts("请输入y[3][2]的值:");
    for (i = 0; i <3; i++) {
        for (j = 0; j <2; j++) {
            scanf("%d", &y[i][j]);
        }
    }
// 将x*y的值存入z中
    for (i = 0; i <2; i++) {
        for (j = 0; j <2; j++) {
            z[i][j] = 0;
            for (k = 0; k <3; k++)
                z[i][j] += x[i][k] * y[k][j];
        }
    }
// 将矩阵z的值输出,注意换行
    for (i = 0; i <2; i++) {
        for (j = 0; j <2; j++) 
            printf("%d ", z[i][j]);
            printf("\n");   
    }

    return (0);
}

练习6-2:

#include 

int min3(int x, int y, int z)
{
    int min = x;

    if (y if (z return (min);
}

int main(void)
{
    int a, b, c;

    puts("please input three integers.");
    printf("integer 1:"); scanf("%d", &a);
    printf("integer 2:"); scanf("%d", &b);
    printf("integer 3:"); scanf("%d", &c);

    printf("The minimal integer is %d. \n", min3(a, b, c));

    return (0);
}

练习6-3:

#include 

int cube(int x)
{
    return (x * x * x);
}

int main(void)
{
    int a;

    printf("请输入一个整数:"); scanf("%d", &a);

    printf("该整数的立方为:%d\n", cube(a));

    return (0);
}

练习6-4:

#include 

int sqr(int x)
{
    return (x * x);
}

int pow4(int x)
{
    return (sqr(x) * sqr(x));
}

int main(void)
{
    int a;

    printf("请输入一个整数。"); scanf("%d", &a);

    printf("该数的四次幂为:%d\n", pow4(a));

    return (0);
}

练习6-5:

#include 

void alert(int no)
{
    while (no-- > 0)
        putchar('\a');
}

int main(void)
{
    int i, a;
    printf("请输入一个整数:"); scanf("%d", &a);

    for (i = 1; i <= a; i++) {
        alert(i);
    }

    return (0);
}

练习6-6:

#include 

void hello(void)
{
    printf("你好。\n");
}

int main(void)
{
    hello();  /*若无输入语句,可直接通过写下函数名来调用函数。*/
    return (0);
}

练习6-7:

#include 

#define  NUMBER 5

int min_of(const int vc[], int no)
{
    int i;
    int min = vc[0];

    for (i = 1; i if (vc[i] return (min);
}

int main(void)
{
    int i;
    int ary1[NUMBER];

    printf("请输入%d个整数。 \n", NUMBER);
    for (i = 0; i printf("[%d]:", i + 1); scanf("%d", &ary1[i]);
}
    
    printf("这些数中最小的一位是:%d\n", min_of(ary1, NUMBER));

    return (0);
}

练习6-8:

#include 

void rev_intary(int vc[], int no)
{
    int i, temp;

    for (i = 0; i 2; i++) {
        temp = vc[i];
        vc[i] = vc[no - i - 1];
        vc[no - i - 1] = temp;
    }     
}

int main(void)
{
    int i;
    const int n = 6;
    int vc[n] = {2, 3, 5, 7, 11, 13};
    
    rev_intary(vc, n);

    for (i = 0; i printf("vc[%d]:%d\n", i + 1, vc[i]);

    return (0);

}

练习6-9:

#include 

void intary_rcpy(int v1[], const int v2[], int no)
{
    int i;
    
    for (i = 0; i 1 - i];
    }
}

int main(void)
{
    int i;
    const int n = 6;
    const int vb[] = {2, 3, 5, 7, 11, 13};
    int va[n];

    intary_rcpy(va, vb, n);

    for (i = 0; i printf("v1[%d]:%d\n", i, va[i]);

    return (0);
}

练习6-10:

#include 

void mul(const int ma[2][3], const int mb[3][2], int mc[2][2])
{
    int i, j, k;

    for (i = 0; i <2; i++)
        for (j = 0; j <2; j++) {
            for (k = 0; k <3; k++)
                mc[i][j] += ma[i][k] * mb[k][j]; 
        }
}

int main(void)
{
    int i, j;
    const int ma[2][3] = {{1, 2, 3}, {4, 5, 6}};
    const int mb[3][2] = {{1, 4}, {2, 5}, {3, 6}};
    int mc[2][2] = {0};

    mul(ma, mb, mc);

    for (i = 0; i <2; i++) {
        for (j = 0; j <2; j++) 
            printf("%d ", mc[i][j]);
            putchar('\n');
    }
        

    return (0);
}

练习6-11:

(1)

#include 
#define NUMBER 5

int max_of(int a[], int no) {
    int i;
    int max = a[0];

    for (i = 1; i if (a[i] > max)
            max = a[i];
        return (max);
}

int main(void)
{
    int i;

    int chi[NUMBER];
    int mat[NUMBER];
    int eng[NUMBER];

    int max_c;
    int max_m;
    int max_e;

    printf("请输入[%d]名学生的分数。\n", NUMBER);
    for (i = 0; i printf("[%d]\n", i + 1);
        printf("chinese: "); scanf("%d", &chi[i]);
        printf("   math: "); scanf("%d", &mat[i]);
        printf("english: "); scanf("%d", &eng[i]);
        putchar('\n');
    }

    max_c = max_of(chi, NUMBER);
    max_m = max_of(mat, NUMBER);
    max_e = max_of(eng, NUMBER);

    printf("The max score of chinese is: %d\n", max_c);
    printf("The  max  score  of math is: %d\n", max_m);
    printf("The max score of english is: %d\n", max_e);

    return (0); 
}

(2)

#include 

#define NUMBER 5
#define COURSE 3

int i, j;

void calculate(const float score[][3]);

int main()
{
    float result[NUMBER][COURSE];

    puts("请输入以下5名同学各三科成绩。");
    for (i = 0; i printf("第[%d]名同学: ", i + 1);
        for (j = 0; j scanf("%f", &result[i][j]);
    }

    calculate(result);

    return (0);
}

void calculate(const float score[][COURSE])
{
    float average[NUMBER] = {0};
    float sum[NUMBER] = {0};

    for (i = 0; i for (j = 0; j for (i = 0; i printf("第%d名学生的总成绩为:%.2f,平均分为:%.2f。\n", i + 1, sum[i], average[i]);
    }
}

练习6-12:

#include 

#define NUMBER 5
int ma[NUMBER]; /*static storage duration*/

int main(void)
{
    int i;
    //static int ma[NUMBER]; /*static storage duration*/

    for (i = 0; i printf("[%d]:%d \n", i + 1, ma[i]);

    return (0);
}

练习8-1:

#include 

#define diff(x, y) ((x) - (y))

int main(void)
{
    int a, b;

    puts("请输入两个整数:");
    printf("integer 1:"); scanf("%d", &a);
    printf("integer 2:"); scanf("%d", &b);

    printf("两个整数之差为:%d。\n", diff(a, b));


    return (0);
}

练习8-3:

#include 

#define swap(int, x, y) (int = x)

int main(void)
{
    int a, b;
    int c = 0;

    puts("请输入2个整数:");
    printf("整数a:"); scanf("%d", &a);
    printf("整数b:"); scanf("%d", &b);

    swap(c, a, b);

    a = b;
    b = c;

    printf("a = %d, b = %d \n", a, b);

    return (0);
}

推荐阅读
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • c语言\n不换行,c语言printf不换行
    本文目录一览:1、C语言不换行输入2、c语言的 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
author-avatar
海尔兄弟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有