c语言经典100题 61-70题

第61题:

链接:C 练习实例61 -- 杨辉三角形 | 菜鸟教程

分析:杨辉三角形的首尾元素是1,其他元素是上一列两个元素的和

完整代码:

复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

void Pascal_triangle (int x)
{
	int triangle[10][10];
	for (int i = 0; i < x; i++)
	{
		for (int j = 0; j <= i; j++)
		{
			if (j == 0 || j == i)
				triangle[i][j] = 1;
			else
			{
				triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
			}
			printf("%d ", triangle[i][j]);
		}
		printf("\n");
	}
}

int main()
{

	Pascal_triangle(10);
	return 0;
}

62-65题都是画图就不讲解了。

第66题:

链接:C 练习实例66 | 菜鸟教程

完整代码:

复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

void swap(int* x, int* y)
{
	int t;
	t = *x;
	*x = *y;
	*y = t;
}


int main()
{
	int a, b, c;
	scanf("%d %d %d", &a, &b, &c);
	int* p = &a, * p1 = &b, * p2 = &c;
	if (a > b)
		swap(p, p1);
	if (a > c)
		swap(p, p2);
	if (b > c)
		swap(p1, p2);
	printf("%d %d %d", a, b, c);
}

第67题:

链接:C 练习实例67 | 菜鸟教程

分析:记录下来最大值和最小值再的位置,然后交换就行。

完整代码:

复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

int main()
{
	int n;
	printf("输入数组的长度:\n");
	scanf("%d", &n);
	int* arr = (int*)malloc(n * sizeof(int));
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}

	int max = arr[0], min = arr[0],max_i=0,min_i=0;

	for (int i = 0; i < n; i++)
	{
		if (arr[i] > max)
		{
			max = arr[i];
			max_i = i;
		}
		if (arr[i] < min)
		{
			min = arr[i];
			min_i = i;
		}
	}
	int m, t;
	m = arr[max_i];
	arr[max_i] = arr[0];
	arr[0] = m;
	t = arr[min_i];
	arr[min_i] = arr[n - 1];
	arr[n - 1] = t;

	for(int i=0;i<n;i++)
		printf("%d ", arr[i]);


}

第68题:

链接:C 练习实例68 | 菜鸟教程

完整代码:

复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

void reverse(int* a, int start, int end) {
    while (start < end) {
        int temp = a[start];
        a[start] = a[end];
        a[end] = temp;
        start++;
        end--;
    }
}

int main() {
    int n, m;
    printf("请输入整数个数:\n");
    scanf("%d", &n);

    int* arr = (int*)malloc(n * sizeof(int));
    printf("请输入 %d 个整数:\n", n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    printf("请输入向后移动的位置:\n");
    scanf("%d", &m);

    if (m != 0) {
        reverse(arr, 0, n - 1);
        reverse(arr, 0, m - 1);
        reverse(arr, m, n - 1);
    }

    printf("旋转后的数组:\n");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    free(arr);
    return 0;
}

第69题:

链接:C 练习实例69 | 菜鸟教程

完整代码:

复制代码
#include <stdio.h>
void main()
{
    int num[50],n,*p,j,loop,i,m,k;
    printf("请输入这一圈人的数量:\n");
    scanf("%d",&n);
    p=num;
    //开始给这些人编号
    for (j=0;j<n;j++)
    {
        *(p+j)=j+1;
    }
    i=0;//i用于计数,即让指针后移
    m=0;//m记录退出圈子的人数
    k=0;//k报数1,2,3
    while(m<n-1)//当退出的人数不大于总人数时,即留下的人数至少是一个人
        //这句不能写成m<n,因为假设有8人,当退出了6人时,此时还是进行人数退出,即m++,
        //这时是7<8,剩下的一个人自己喊1,2,3那么他也就退出了,将不会有输出
    {
        if (*(p+i)!=0)//如果这个人的头上编号不是0就开始报数加1,这里采用的方法是报数为3的人头上编号重置为0
        {
            k++;
        }
        if (k==3)
        {    k=0;    //报数清零,即下一个人从1开始报数
            *(p+i)=0;//将报数为3的人编号重置为0
            m++;    //退出人数加1
        }
        i++;      //指针后移
        if (i==n)//这句很关键,如果到了队尾,就要使指针重新指向对头
            //并且它只能放在i++后面,因为只有i++了才有可能i==n
        {
            i=0;
        }
        
        
    }
    printf("现在剩下的人是:");
    for (loop=0;loop<n;loop++)
    {
        if (num[loop]!=0)
        {
            printf("%2d号\n",num[loop]);
        }
    }
    
}

第70题:

链接:C 练习实例70 | 菜鸟教程

完整代码:

复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

int length(char *s)
{
	int i = 0;
	while (*s != '\0')
	{
		i++;
		s++;
	}
	return i;
}

int main()
{
	char str[100];
	scanf("%s",str);

	int len = length(str);
	printf("%d", len);

	return 0;
}
相关推荐
草莓熊Lotso2 小时前
Linux 基础 IO 初步解析:从 C 库函数到系统调用,理解文件操作本质
linux·运维·服务器·c语言·数据库·c++·人工智能
梵刹古音2 小时前
【C语言】 字符数组相关库函数
c语言·开发语言·算法
微风中的麦穗8 小时前
【MATLAB】MATLAB R2025a 详细下载安装图文指南:下一代科学计算与工程仿真平台
开发语言·matlab·开发工具·工程仿真·matlab r2025a·matlab r2025·科学计算与工程仿真
2601_949146538 小时前
C语言语音通知API示例代码:基于标准C的语音接口开发与底层调用实践
c语言·开发语言
开源技术8 小时前
Python Pillow 优化,打开和保存速度最快提高14倍
开发语言·python·pillow
学嵌入式的小杨同学8 小时前
从零打造 Linux 终端 MP3 播放器!用 C 语言实现音乐自由
linux·c语言·开发语言·前端·vscode·ci/cd·vim
wfeqhfxz25887828 小时前
YOLO13-C3k2-GhostDynamicConv烟雾检测算法实现与优化
人工智能·算法·计算机视觉
Aaron15889 小时前
基于RFSOC的数字射频存储技术应用分析
c语言·人工智能·驱动开发·算法·fpga开发·硬件工程·信号处理
mftang10 小时前
Python 字符串拼接成字节详解
开发语言·python
爱编码的小八嘎10 小时前
C语言对话-21.模板特化,缺省参数和其他一些有趣的事情
c语言