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;
}
相关推荐
小小龙学IT25 分钟前
Python Polars 高性能数据处理引擎深度解析
开发语言·python·rust·1024程序员节
Nuanyt26 分钟前
Hot 100 刷题笔记 · 数组与哈希专题(3 题)
java·笔记·算法·leetcode·哈希算法·1024程序员节
quantdash_cc32 分钟前
如何利用标的信息为研究股票池补充名称和交易所信息?
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
碧海银沙音频科技研究院1 小时前
基于炬芯平台ATS308X多模型兼容语音识别算法
人工智能·算法·语音识别
爱读书的小胖1 小时前
LeetCode 274 H 指数 C 语言解题分析
c语言·算法·leetcode·1024程序员节
basketball6162 小时前
动态规划第一章:引论
算法·动态规划·1024程序员节
CRMEB系统商城2 小时前
家电零售的供应商协同与物流提效
java·开发语言·人工智能·小程序·1024程序员节
星夜离尘562 小时前
MATLAB 因果采样保持:用历史匹配和数据年龄防止未来信息泄漏
数据结构·算法·matlab
Pointer Pursuit2 小时前
Linux环境变量
linux·服务器·c语言·链表·1024程序员节
王大师王文峰2 小时前
Java+AI 面试题(二):业务场景设计 10 例【客服机器人、合同审查、Text2SQL、告警降噪、成本优化】场景题答法与追问链路
java·开发语言·人工智能