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

C语言程序设计-练习篇

时间:2024-09-14 22:22:46浏览次数:12  
标签:tmp arr triangle int 练习 C语言 printf 程序设计 水仙花

千万不要放弃,最好的东西总是压轴出场。

一,三角形的判断

描述:

已经给出三条边a,b,c,如果能构成三角形,判断三角形的类型(等边三角形,等腰三角形或普通三角形)。

输入描述:

题目有多组输入数据,每一行输入三个a,b,c(0<a,b,c<1000),作为三角形的三个边,用空格分隔。

输出描述:

针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出"Equilateral triangle!",等腰三角形则输出"Isosceles triangle!",其余的三角形则输出"Ordinary triangle!",反之输出"Not a triangle!"。

示例:

输入:2 3 2

          3 3 3

输出:Isosceles triangle!

          Equilateral triangle!

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	while (scanf("%d %d %d", &a, &b, &c) == 3)
	{
		//判断
		if ((a + b > c) && (a + c > b) && (b + c > a))
		{
			if (a == b && b == c)
			{
				printf("Equilateral triangle!\n");
			}
			else if ((a == b && b != c) || (a == c && c != b) || (b == c && c != a))
			{
				printf("Isosceles triangle!\n");
			}
			else
			{
				printf("Ordinary triangle!\n");
			}
		}
		else
		{
			printf("Not a triangle!\n");
		}
	}
	return 0;
}

二,使用指针打印数组内容

题目内容:

写一个函数打印arr数组的内容,不使用数组下标,使用指针

arr是一个整型一维数组

#include <stdio.h>
//使用指针打印数组内容
void print(int* p, int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", *(p + i));
	}
	printf("\n");
}

int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	print(arr, sz);
	return 0;
}

三,字符串逆序

题目内容:

逆序一个字符串的内容,并输出。

数据范围:1<=len(str)<=10000

(PS:scanf 遇到空格就不读取了,所以这个时候使用 gets 来读取数据)

#include <stdio.h>
//字符串逆序
int main()
{
	char arr[10001] = { 0 };
	gets(arr);
	//逆序
	int left = 0;
	int right = strlen(arr) - 1;
	while (left < right)
	{
		char tmp = arr[left];
		arr[left] = arr[right];
		arr[right] = tmp;
		left++;
		right--;
	}
	printf("%s\n", arr);
	return 0;
}

四,计算求和

题目内容:

求Sn=a+aa+aaa+aaaa+aaaaa+………的前n项之和,其中a是一个数字。

#include <stdio.h>
//计算求和
int main()
{
	int a = 0;
	int n = 0;
	scanf("%d %d", &a, &n);
	int i = 0;
	int sum = 0;
	int k = 0;
	for (i = 0; i < n; i++)
	{
		k = k * 10 + a;
		sum += k;
	}
	printf("%d\n", sum);
	return 0;
}

五,打印水仙花数

题目内容:

求出1~100000之间的所有“水仙花数”并输出。

“水仙花数”是指一个n位数,其各位数字的n次方之和恰好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。

(水仙花数是指三位数,所以此处求的“水仙花数”打了引号)

#include <stdio.h>
#include <math.h>

//打印“水仙花数”
int main()
{
	int i = 0;
	for (i = 0; i <= 100000; i++)
	{
		//判断“水仙花数”
		//1.计算i是几位数->n
		int n = 1;//任何一个数至少是一位数
		int tmp = i;//防止在循环内部改变循环变量出现问题
		int sum = 0;
		while (tmp / 10)
		{
			n++;
			tmp /= 10;
		}
		//2.得到i每一位,计算它的n次方之和
		tmp = i;
		while (tmp)
		{
			sum += pow(tmp % 10, n);
			tmp /= 10;
		}
		if (sum == i)
		{
			printf("%d ", i);
		}
	}
	return 0;
}

标签:tmp,arr,triangle,int,练习,C语言,printf,程序设计,水仙花
From: https://blog.csdn.net/2402_85207276/article/details/142265119

相关文章

  • 【时时三省】(C语言基础)指针进阶 例题7
    山不在高,有仙则名。水不在深,有龙则灵。              ----CSDN时时三省二维数组  第一个a因为它有12个元素每个元素占4个字节所以就打印48第二个a[0][0]表示是第一行第一个元素 所以它算的就是第一行第一个元素所占的大小所以就打印4第......
  • C语言:结构体
    在前面我们已经介绍了整形,浮点型,字符型,还介绍了数组,字符串。但是在实际问题中只有这些数据类型是不够的,有时候我们需要其中的几种一起来修饰某个变量,例如一个学生的信息就需要学号(字符串),姓名(字符串),年龄(整形)等等,这些数据类型都不同但是他们又是表示一个整体,要存在联系,那么我们就......
  • c语言快递小项目
    structpack_head{  intfd;//通信的文件描述符  unsignedchartype; //消息类型  unsignedcharusertype;//用户类型:1:用户 2:快递员   charname[32]; //用户名  charpaaswd[32];//密码  charbuf[32]; //调试信息  stru......
  • C语言进阶【3】---C语言内存函数(你确定你很了解内存函数吗?)
    本章概述本章函数概述memcpy使用和模拟memmove使用和模拟memset函数的使用memcmp函数的使用彩蛋时刻!!!本章函数概述我们在本章的博客中讲的内容是有关内存的操作,我们直接通过内存块对数据进行操作。因为我们是直接对内存块操作,所以可以对任意类型数据进行操作(我们没......
  • 练习第四周8.31
    作业:1、安装burp并实现抓取HTTP站点的数据包(HTTPS站点暂时不要求)2、练习TomcatPUT方法任意写文件漏洞(CVE-2017-12615),提供蚁剑连接成功截图3、练习S2-048远程代码执行漏洞(CVE-2017-9791),提供命令执行截图4、练习JBoss5.x/6.x反序列化漏洞(CVE-2017-12149),提供命令执行截图5......
  • C语言 13 指针
    指针可以说是整个C语言中最难以理解的部分了。什么是指针还记得在前面谈到的通过函数交换两个变量的值吗?#include<stdio.h>voidswap(int,int);intmain(){inta=10,b=20;swap(a,b);printf("a=%d,b=%d",a,b);}voidswap(inta,intb)......
  • 【代码随想录Day17】二叉树Part05|练习递归
    654.最大二叉树题目链接/文章讲解:代码随想录视频讲解:又是构造二叉树,又有很多坑!|LeetCode:654.最大二叉树_哔哩哔哩_bilibili思路和昨天的从中序与后序遍历序列构造二叉树很像,那一题是根节点对数组分割,这一题是最大元素对数组分割。代码解释:基本检查:如果输入数组nums......
  • 中级练习[5]:Hive SQL用户行为与商品价格综合分析
    目录1.查询销售件数高于品类平均数的商品1.1题目需求1.2代码实现2.用户注册、登录、下单综合统计2.1题目需求2.11.2代码实现3.查询指定日期的全部商品价格3.1题目需求3.2代码实现1.查询销售件数高于品类平均数的商品1.1题目需求从订单明细表(order_de......
  • 中级练习[6]:Hive SQL订单配送与用户社交行为分析
    目录1.即时订单比例1.1题目需求1.2代码实现2.向用户推荐朋友收藏的商品2.1题目需求2.2代码实现3. 查询所有用户的连续登录两天及以上的日期区间3.1题目需求3.2代码实现1.即时订单比例1.1题目需求从配送信息表(delivery_info)中求出每个用户的首单(用户......
  • 标准IO流类库 语法练习
    1.编写函数,接受一个istream&参数,返回值类型也是istream&。此函数须从给定流中读取数据,直至遇到文件结束标识时停止。它将读取的数据打印在标准输出上。完成这些操作后,在返回流之前,对流进行复位,使其处于有效状态。1#include<iostream>2usingnamespacestd;3istream&fu......