首页 > 编程语言 >C语言简单编程题(思路+源码)

C语言简单编程题(思路+源码)

时间:2024-09-12 19:21:33浏览次数:3  
标签:tmp 10 right int sum 编程 C语言 源码 left

C语言简单编程题(思路+源码)【一】

题目一:
1.字符串的逆序(如abcdef–>fedcba)
思路:
首先我们用strlen()函数来获得字符串的长度,用left来表示下标为零的元素,用right来表示最后一个字符的下标,创建第三个变量,交换第一个和最后一个的元素,再left++,right–,后面的依次类推。
在这里插入图片描述
2.代码实现:

#include <stdio.h>
#include <string.h>
//题目1:
字符串的逆序(如abcdef-->fedcba)
void test(char* str)
{
	int len = strlen(str);
	char* left = str;
	char* right =str+len - 1;
	while(left<right)
	{
		char tmp;
		tmp = *left;
		*left = *right;
		*right = tmp;
		left++; right--;
	}
}

int main()
{
	char a[100] = { 0 };
	//scanf("%s", a);
	gets(a);
	test(a);
	printf("%s", a);


	return 0;
}

题目二:

**1. 计算求和:输入一个a和n的值,求a的前n项和。(Su=a+aa+aaa+aaaa+........)的前n项和)**

思路:假设a=2;则Su=2+22+222+2222+…,(22=2*10+2、222=22*10+2。)以此类推,后一项等于前一项乘10再加上2。
2.代码实现:

int main()
{
	int a = 0;
	int n = 0;
	int i = 0;
	int sum = 0;
	int ret = 0;
	scanf("%d%d", &a, &n);
	for (i = 0; i < n; i++)
	{
		ret = ret * 10 + a;
		sum += ret;
	}
	printf("%d\n", sum);
}

题目三

水仙花数:计算0-10000中的水仙花数并打印出来,如(153=1\^3+5\^3+3\^3)

1.思路:因为本题求的是0–10000的水仙花数,所以我们要先求出这个数的宽度(几位数)。
第一步:先确定一个数(i)的位数为多少位(n)。
第二步:计算i的各位数的n次方的和。
第三步:比较i和sum的值是否相等。

2.代码实现:

#include <math.h>
//计算0-10000中的水仙花数并打印出来,如(153=1^3+5^3+3^3)
int main()
{
	//计算水仙花数
	//1.先确定一个数(i)的位数为多少位(n)
	int i = 0;
	for (i = 0; i <= 10000; i++)
	{	
		int n = 1;
		int sum = 0;
		int tmp = i;
		while (tmp/= 10)
		{
			n++;
		}

	//2.计算i的各位数的n次方的和
		tmp = i;
		while (tmp)
		{
		sum += pow(tmp % 10, n);
		tmp/=10;
		}
	//3.比较i和sum的值是否相等
		if (i == sum)
		{
			printf("%d ", i);
		}
	}
}

题目四

输入一个整形数组,使得该数组的奇数都在数组的前半部分,偶数都在数组的后半部分,最后打印出该数组。

1.思路
第一步:从左边找偶数。
第二步:从右边找奇数。
第三步:元素交换。
2.代码实现

//  输入一个整形数组,使得该数组的奇数都在数组的前半部分,偶数都在数组的后半部分,最后打印出该数组。

void print(int a[], int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", a[i]);
	}
	printf("\n");
}

void test(int a[],int sz)
{
	int left = 0;
	int right = sz - 1;
	
	while(left<right)
	{
	//1、从左边找偶数
	while ( a[left]% 2 == 1)
	{
		left++;
	}
	//2、从右边找奇数
	while (a[right] % 2 == 0)
	{
		right--;
	}
	if(left<right)
	{ 
	//3、元素交换
	int tmp = a[left];
	a[left] = a[right];
	a[right] = tmp;
	}
	}
}
int main()
{
	int a[] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(a) / sizeof(a[0]);
	
	test(a,sz);
	print(a, sz);
	return 0;
}

题目五

判断一个数是否为素数(素数的定义:只能被一和他本身整除的数)

代码实现

int main()
{
	int i = 0;
	int n;
	scanf("%d", &n);
	for (i = 2; i < n; i++)
	{
		if (n % i == 0)
			break;
	}
	if (i < n)
		printf("输入的值不是素数。");
	else
		printf("输入的值是素数。");
	return 0;
}

代码都是本人自己写的,如果有错误或者更好的方法欢迎指正!

标签:tmp,10,right,int,sum,编程,C语言,源码,left
From: https://blog.csdn.net/2301_76799128/article/details/142181721

相关文章

  • 小白学懂C语言---分支循环语句(下)
    循环语句这章我们来谈谈三种循环语句(for循环,while循环,do-while循环)1.for循环for循环应该是平时用的比较多的一种,也是一种容易理解的循环。for循环语法:for(表达式1;表达式2;表达式3){ 语句}强调一下:1.表达式1表达式2表达式3,两两之间用;隔开,记住不要写成逗......
  • 线程---实践与技巧(C语言)
            目录一、引言二、线程基础  1.线程概念  2.线程库三、线程的创建与终止  1.创建线程  2.终止线程四、线程同步与互斥  1.互斥锁(Mutex)  2.条件变量(ConditionVariable)五、线程间的通信六、总结               ......
  • PHP体检信息管理系统-计算机毕业设计源码54850
    目录1绪论1.1选题背景1.2选题意义1.3研究的主要内容1.4论文结构与章节安排2系统分析2.1.1技术可行性分析2.1.2经济可行性分析2.1.3操作可行性分析2.2系统流程分析2.2.1数据新增流程2.2.2 数据删除流程2.3 系统功能分析2.3.1功能性分析2.......
  • 外卖跑腿APP开发详解:基于同城O2O系统源码的实现路径
    近年来,随着O2O(OnlinetoOffline)模式的普及和发展,外卖跑腿服务已经成为了生活中不可或缺的一部分。外卖跑腿APP通过将用户、商家和骑手三方紧密连接,解决了用户日常所需的各种服务需求,为企业提供了新的商业机会。那么,如何基于同城O2O系统源码开发一款功能强大且用户体验优良的外卖跑腿......
  • c语言--整数和浮点数在内存中的存储
    一整数在内存中的存储1.1源码反码补码整数的2进制表⽰⽅法有三种,即原码、反码和补码。有符号的整数,三种表⽰⽅法均有符号位和数值位两部分,符号位都是⽤0表⽰“正”,⽤1表⽰“负”,最⾼位的⼀位是被当做符号位,剩余的都是数值位。正整数的原、反、补码都相同。负整数的三种......
  • Linux环境C语言pthread多线程
    pthread线程库介绍pthread库是POSIX线程(PortableOperatingSystemInterfaceforuniXthreads)库的简称,它提供了一套创建和管理线程、以及线程间同步的机制。pthread库是UNIX系统上实现多线程编程的一个标准接口,也被广泛支持在类UNIX系统(Linux和macOS)中。头文件#in......
  • 基于javaC语言试题生成与考试系统的计算机毕设
    C语言试题生成与考试系统摘 要当前,网络教学方兴未艾。网上考试已在其中扮演了重要的角色,传统试卷考试方式有待提高。网络教学已从其规范性、科学性及考试工作组织、管理的统一性,影响到教学质量的好坏。基于此,本系统开发实现了基于B/S模式的c试题生成与考试系统,其中数据库采用MYSQ......
  • 陪玩小程序源码搭建,基于PHP+MySQL陪玩系统app源码
    陪玩系统开发运营级别陪玩成品搭建支持二开源码交付,游戏开黑陪玩系统:多客陪玩系统,游戏开黑陪玩,线下搭子,开黑陪玩系统前端uniapp后端php,数据库MySQL系统框架系统支持微信公众号端、微信小程序端、H5端、PC端多端账号同步,可快速打包生成APP;我们为你准备了完善的后台管理,不......
  • .net core8 使用Swagger(附当前源码)
    说明  该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发)。   该系统文章,我会尽量说的非常详细,做到不管新手、老手都能看懂。   说明:OverallAuth2.0是一个简单、易懂、功能强大的权限+可视化流程管理系统。有兴趣的朋友,请关注我吧(*^......
  • 在线教育|基于springboot+vue的在线教育系统(源码+数据库+文档)
    在线教育|在线教育系统目录基于springboot+vue的在线教育系统一、前言二、系统设计三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:✌️大厂码农|毕设布道师,阿里云开发社区乘风者计划专家博主,CSDN平......