首页 > 编程语言 >C语言程序设计-练习篇

C语言程序设计-练习篇

时间:2024-09-04 21:53:55浏览次数:6  
标签:arr ch min int scanf 练习 C语言 程序设计 输入

少年自当扶摇上,揽星衔月逐日光。

一,小乐乐走台阶

描述:

小乐乐上课需要走n阶台阶,因为腿长,所以每次可以选择走一阶或者两阶,那么他一共有多少种走法?

输入描述:

输入包含一个整数n(1<=n<=30)

输出描述:

输出一个整数,即小乐乐可以走的方法数

#include <stdio.h>

//小乐乐走台阶
int fib(int n)
{
	if (n <= 2)
		return n;
	else
		return fib(n - 1) + fib(n - 2);
}

int main()
{
	int n = 0;
	//输入
	scanf("%d", &n);
	//计算
	int m = fib(n);
	//输出
	printf("%d\n", m);
	return 0;
}

二,在序列中删除指定数字

描述:

有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。

数据范围:序列长度和序列中的值都满足1<=n<=50

输入描述:

第一行输入一个整数N(0<=N<=50)

第二行输入N个整数,输入用空格分隔的N个整数

第三行输入想要进行删除的一个整数

输出描述:

输出为一行,删除指定数组之后的序列

#include <stdio.h>
//在序列中删除指定数字
int main()
{
	int N = 0;
	scanf("%d", &N);
	int arr[50];
	//接收N个数字
	int i = 0;
	for (i = 0; i < N; i++)
	{
		scanf("%d", &arr[i]);
	}
	int del = 0;
	//接受删除的值
	scanf("%d", &del);
	int j = 0;//j作为下标锁定的位置就是用来存放不删除数据
	for (i = 0; i < N; i++)
	{
		if (arr[i] != del)
		{
			arr[j++] = arr[i];
		}
	}
	//输出
	for (i = 0; i < j; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

三,最高分最低分之差

描述:

输入n个成绩,换行输出n个成绩中最高分数和最低分数的差

输入描述:

两行,第一行为n,表示n个成绩,不会大于10000

第二行为n个成绩(整数表示,范围0~100),以空格隔开

输出描述:

一行,输出n个成绩中最高分数和最低分数的差

#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[10000];
	int i = 0;
	//输入
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	//找出最大值
	int max = arr[0];
	for (i = 1; i < n; i++)
	{
		if (arr[i] > max)
		{
			max = arr[i];
		}
	}
	//找出最小值
	int min = arr[0];
	for (i = 1; i < n; i++)
	{
		if (arr[i] < min)
		{
			min = arr[i];
		}
	}
	printf("%d\n", max - min);
	return 0;
}

简化

#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[10000];
	int i = 0;
	//输入
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	//找出最大值
	//找出最小值
	int max = arr[0];
	int min = arr[0];
	for (i = 1; i < n; i++)
	{
		if (arr[i] > max)
			max = arr[i];

		if (arr[i] < min)
			min = arr[i];
	}
	printf("%d\n", max - min);
	return 0;
}

再简化

#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[10000];
	int i = 0;
	int max = 0;
	int min = 100;
	//输入
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
		if (arr[i] > max)
			max = arr[i];
		if (arr[i] < min)
			min = arr[i];
	}
	printf("%d\n", max - min);
	return 0;
}

四,字母大小写转换

描述:

完成大小写转换,有一个字符,判断它是否为大写字母,如果是,将它转换成小写字母;反之则转换为大写字母

输入描述:

多组输入,每一行输入一个字母

输出描述:

针对每组输入,输出单独占一行,输出字母的对应形式

(PS:小写字母a的ASCII值是97,大写字母A为65,相差32)

#include <stdio.h>
int main()
{
	char ch = 0;
	while (scanf("%c",&ch)==1)
	{
		//scanf读取成功返回读取数据的个数,读取失败返回EOF
		if (ch >= 'a' && ch <= 'z')
			printf("%c\n", ch - 32);
		else
			printf("%c\n", ch + 32);
		getchar();//读取输入后的回车(\n)
	}
	return 0;
}

或者

(while内的条件也可以写成--- scanf("%c",&ch)!=EOF )

#include <stdio.h>
int main()
{
	char ch = 0;
	while (scanf("%c", &ch) == 1)
	{
		//scanf读取成功返回读取数据的个数,读取失败返回EOF
		if (ch >= 'a' && ch <= 'z')
			printf("%c\n", ch - 32);
		else if(ch>='A'&&ch<='Z')
			printf("%c\n", ch + 32);
		//直接不接收每次输入的\n
	}
	return 0;
}

或者(使用库函数)

#include <stdio.h>
#include <ctype.h>
int main()
{
	char ch = 0;
	while (scanf("%c", &ch) != EOF)
	{
		if (islower(ch))
			printf("%c\n", toupper(ch));
		else if (isupper(ch))
			printf("%c\n", tolower(ch));
	}
	return 0;
}

五,判断是不是字母

描述:

判断输入的字符是不是字母,编程实现

输入描述:

多组输入,每一行输入一个字符

输出描述:

针对每组输入,输出单独占一行,判断字符是否为字母

示例:

输入:A

           6

输出:A is an alphabet

           6 is not an alphabet

#include <stdio.h>
int main()
{
	char ch = 0;
	while (scanf("%c", &ch) == 1)
	{
		if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'))
			printf("%c is an alphabet\n",ch);
		else
			printf("%c is not an alphabet\n",ch);
		getchar();//处理输入时敲得回车
	}
	return 0;
}

   

(或者去掉getchar那一行,在scanf内的%c前加个空格。此处加空格的意思是:跳过下一个字符之前的所有空白字符。)

标签:arr,ch,min,int,scanf,练习,C语言,程序设计,输入
From: https://blog.csdn.net/2402_85207276/article/details/141870553

相关文章

  • 用C语言生成字符贪吃蛇游戏
    用C语言生成字符贪吃蛇游戏1.引言贪吃蛇是一个经典的小游戏,玩家通过控制蛇的移动来吃食物,随着食物的增加,蛇的长度也会增加,游戏的难度逐渐提升。本文将介绍如何使用C语言来实现一个简单的字符贪吃蛇游戏。2.环境准备在开始编码之前,需要确认以下开发环境:编译器:支持......
  • C语言练习:扫雷游戏(排除了一些bug,放心食用!)
    游戏规则只有雷被全部排查出来,游戏结束。每当排查一个坐标,如果不是雷,此坐标上就会显示周围一圈上有几个雷。 游戏实现代码讲解开始前的准备首先我们假定一个9*9的棋盘格展示在玩家面前(如下图所示,坐标从0开始)但是对于玩家来说,第一个编号是从0开始的不太习惯,所以我们要在......
  • C语言学习笔记 Day16(文件管理--下)
    Day16 内容梳理:C语言学习笔记Day14(文件管理--上)-CSDN博客C语言学习笔记Day15(文件管理--中)-CSDN博客目录Chapter10 文件操作10.5文件状态10.6文件的随机读写fseek()、rewind()(1)fseek():移动光标并开始读写(2)rewind():将光标重置回文件开头10.7文件的删除remove(......
  • C语言基础
    #C语言C语言是编译型语言,编写好代码之后,需要由编译器编译后成不同平台的可执行文件才能执行,常见的编译器GCC、MSVC、Clang-一般公司,加密使用java加密-jadx反编译搜索--》定位代码--容易破解-NB公司,加密通过java+C实现加密--》核心加密逻辑是c,用java调用-jadx反编译--》得到ja......
  • 给自己复盘的随想录笔记-字符串练习题
    反转字符串344.反转字符串-力扣(LeetCode)双指针+元素交换 classSolution{publicvoidreverseString(char[]s){chartemp;intl=0,r=s.length-1;while(l<r){temp=s[l];s[l]=s[r];s[r]=temp;l++;......
  • Wx64ST:一款轻松可修改的C语言Shellcode模板
    关于windows_x64_shellcode_templatewindows_x64_shellcode_template简称为Wx64ST,它是一款功能强大的Shellcode模板,该模板基于C语言编写,其简单、可扩展和易于修改等特性可以帮助广大安全研究人员轻松开发适用于Windowsx64的Shellcode。值得一提的是,该模板代码可以加载Load......
  • 神奇的C语言输出12天圣诞节歌词代码
    12天圣诞节程序怎样运行?1988年,一个令人印象深刻且令人敬畏的C代码,代号为xmas.c,在国际混淆C代码竞赛中获胜。该程序甚至比其输出的“压缩”类型还要小,代表了文本压缩标准的全新方式。评委们认为,这个程序像是随意敲击键盘所得到的。但该程序神奇地打印出12天圣诞节的歌词,仅仅......
  • 程序设计—基于网络爬虫的股票价格分析系统 项目源码27486
    摘 要在21世纪信息时代,随着网络技术的飞速发展和大数据时代的到来,股票价格分析对于投资者和金融机构的重要性日益凸显。传统的股票价格分析方法往往依赖于人工收集和整理数据,效率低下且易出错。因此,开发一套基于网络爬虫的股票价格分析系统变得至关重要。本文旨在探讨基于......
  • 程序设计专业的毕业生,要怎么写开题报告呢?开题报告对写论文重要吗?
    好的,我们来聊聊程序设计专业的大学生怎样写开题报告,以及它的重要性:想象一下,开题报告就像是你即将开启的编程项目的预告片。它不需要剧透所有精彩的代码和算法,但得抓住人的眼球,让人明白你要做什么,为什么要做,以及你打算怎么做。“怎么写?” 1.“标题“:就像给你的程序取个响......
  • 0 JavaScript高级程序设计(第4版)【JS红宝书】【详细思维导图】【持续更新】
    ProcessOn访问链接JavaScript高级程序设计(第4版)阅读路线图,涵盖:基本知识进阶内容BOM和DOMJavascriptAPIJavaScript设计模式和实践策略ProcessOn访问链接......