C语言 百炼成钢14
//题目40:输入3个数a,b,c,按大小顺序输出。(使用指针完成) #include<stdio.h>
#include<stdlib.h> //分析:用指针完成,说明不可以改变a,b,c的值,只是输出的时候数据变化
//简单的办法:比较好a,b,c大小,在赋值给对应指针, void main9(){
int a = , b = , c = ;
int *pa = &a, *pb = &b, *pc = &c;
if (a>b)
{
if (a>c)
{
//说明a最大
pc = &a;
if (b<c)
{
pb = &c;
pa = &b;
}
else{
pa = &c;
}
}//else说明c最大
}
else{
if (b>c)
{
//说明b最大
pc = &b;
if (a>c)
{
pb = &a;
pa = &c;
}
else{
pb = &c;
}
}
}
printf("\n从大到小依次是%d<%d<%d\n",*pa,*pb,*pc); system("pause");
}

//题目41:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 #include<stdio.h>
#include<stdlib.h>
#include<time.h> //分析:这一题并非一个简单的冒泡排序,他的要求是找到最大元素在数组的位置,并且和第一个元素交换,别的元素不改变
//我们根据冒泡排序的思想,定义一个变量,用来存储下标,和数组每个元素比较,发现有元素比初始元素大,就修改下标的值 void main(){
//随机生成一个数组
int a[] = { };
//定义时间变量
time_t ts;
//定义随机数种子
printf("原来的数组\n");
srand((unsigned int)time(&ts));
for (int i = ; i < ; i++)
{
a[i] = rand() % ;
printf("%5d", a[i]);
}
printf("\n");
//方法1(不够简单,定义的变量太多,用指针会更简单)
//int maxindex = 0, minindex = 0;
////temp存储最大值,temp1存储最小值
//int temp = a[0],temp1 = a[0];
//for (int i = 1; i < 10; i++)
//{
// //假设a[0]最大同时假设他最小
// if (a[i]>temp)
// {
// temp = a[i];
// maxindex = i;
// }
// if (a[i]<temp1)
// {
// temp1 = a[i];
// minindex = i;
// }
//}
////交换位置
//int temp3 = 0;
//temp3 = a[0];
//a[0] = a[maxindex];
//a[maxindex] = temp3; //temp3 = a[9];
//a[9] = a[minindex];
//a[minindex] = temp3; //方法2(指针方式)
int *pmax=&a[], *pmin=&a[];
for (int i = ; i < ; i++)
{
if (a[i]>*pmax)
{
pmax = &a[i];
}
if (a[i]<*pmin)
{
pmin = &a[i];
}
}
//交换位置
//临时变量存放最大值
int temp4 = *pmax;
//临时变量存放最小值
int temp5 = *pmin;
//将a[0]的值交给最大的那个元素
*pmax = a[];
a[] = temp4;
//同理
*pmin = a[];
a[] = temp5; printf("新的数组\n");
for (int i = ; i < ; i++)
{
//a[i] = rand() % 100;
printf("%5d", a[i]);
}
system("pause");
}

//题目42:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数(使用指针完成) #include<stdio.h>
#include<stdlib.h>
#include<time.h> //分析:把最后的5个变量存储起来,再将原来的元素每个向后移动m位 #define N 15 void main(){
//生成随即数组
int a[N] = { };
//定义时间变量
time_t ts;
//定义随机数种子
printf("原来的数组\n");
srand((unsigned int)time(&ts));
for (int i = ; i < N; i++)
{
a[i] = rand() % ;
printf("%5d", a[i]);
}
printf("\n"); int *p = a;
int m=;
//定义一个动态数组,存储m之后的变量
int *p1 =(int *)malloc(sizeof(int)*m);
for (int i =; i < m; i++)
{
*(p1 + i) = a[N - m+i];
}
//移动前面的元素向后
//最后一个元素是a[N-1],a[0]向后移动1为是a[1],a[0]向后移动2位是a[0+2];
//a[N]向前移动5位,就是a[N-5] //错误,不能从前向后赋值,从前向后会将后面有用的一部分数据覆盖了,必须从后往前赋值
/*for (int i = 0; i < N - m - 1; i++)
{
a[m + i] = a[i];
}*/
for (int i = ; i < N; i++)
{
a[N - - i] = a[N - - i - m];
}
for (int i = ; i < m; i++)
{
a[i] = *(p1 + i);
}
free(p1);
printf("新的数组\n");
for (int i = ; i < N; i++)
{
printf("%5d", a[i]);
}
printf("\n");
system("pause"); }

C语言 百炼成钢14的更多相关文章
- Java入门 - 语言基础 - 14.String类
原文地址:http://www.work100.net/training/java-string.html 更多教程:光束云 - 免费课程 String类 序号 文内章节 视频 1 概述 2 创建字符 ...
- C语言 百炼成钢19
/* 题目55: 有一个字符串符合以下特征(”abcdef,acccd,eeee,aaaa,e3eeeee,sssss,";),要求写一个函数(接口),输出以下结果 1) 以逗号分割字符串, ...
- C语言 百炼成钢5
//题目13:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 //本身.例如:153是一个“水仙花数”,因为153 = 1的三次方+5的三次方+3的三次方. #de ...
- C程序设计语言练习题1-4
练习1-4 编写一个程序打印摄氏温度转换为相应华氏温度的转换表. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的 ...
- C语言 百炼成钢27
/* 题目63:编写C++程序完成以下功能: (1)声明一个纯虚函数类Shape(形状),其中包含来计算面积.计算周长的方法: (2)从Shape派生两个类矩形和圆形: (3)从矩形派生正方形: (4 ...
- C语言 百炼成钢3
//题目7:用*号输出空心菱形图案 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> # ...
- C语言 百炼成钢2
//题目4:输入某年某月某日,判断这一天是这一年的第几天? #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<st ...
- C语言 百炼成钢1
//题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> ...
- C语言 百炼成钢18
//题目52:用递归打印以下图形 //* //*.*. //*..*..*.. //*...*...*...*... //*....*....*....*....*.... #include<s ...
随机推荐
- STL--向量(vector)
STL的组成 标准模板库STL关注的重点是泛型数据结构和算法,其关键组成部分是容器(containers).算法(algorithms).迭代器(iterators).函数对象(Function Ob ...
- 【读书笔记】iOS-复制的种类
一,你可以使用不同的方法复制对象.大多数对象都引用(即指向)其它对象. 二,浅层复制,不复制引用对象,新复制的对象只指向现有的引用对象.NSArray类的copy方法是浅层复制.当复制一个NSArra ...
- 【原】PSD图标素材的全自动切图方法,适用于IOS、安卓、web前端等领域
屌丝个人开发者经常遇到的尴尬问题是,自己不会设计UI素材又请不起专业的美工.最好的方式是去网上下载符合自己需求的素材修修改改直接用上.但是,在这个过程中会发现很多下载下来的素材是PSD格式的,很多图标 ...
- iOS中的单例模式
概念相关 单例模式 在程序运行过程,一个类只有一个实例 使用场合 在整个应用程序中,共享一份资源(这份资源只需要创建初始化1次) static static关键字会在声明变量的时候分配内存,在程序运行 ...
- android学习笔记 Service
Service(服务): 长期后台运行的没有界面的组件 android应用什么地方需要用到服务? 天气预报:后台的连接服务器的逻辑,每隔一段时间获取最新的天气信息.股票显示:后台的连接服务器的逻辑,每 ...
- 深入理解java虚拟机(1)------内存区域与内存溢出
在C++领域,关于C++的内存存储,结构等等,有一本书:深度探索C++对象模型,讲解的非常透彻. 而Java确把这一工作交给了虚拟机来处理. 我们首先来看看关于内存的问题. 1.问题: 1)java ...
- hibernate取出count(*)的办法
1.定义查询语句 String sql="select count(*) from ExcelInfor";2.获取count(*)返回结果: (1)int count=In ...
- sql 执行动态语句
没看明白,可不可以描述清楚点哦 收获园豆:5 回复 | artwl | 专家六级 |园豆:16486 | 2011-09-01 09:10 exec (select top 2 * from pub ...
- Swing应用开发实战系列之二:设计日期选择面板窗口
Swing本身没有提供什么华丽丽的日期时间选择控件,所以笔者就在网上搜了个第三方的jar包jdatepicker-1.3.2.jar,基于此设计了个很轻量的日期选择面板,很简单的.效果图如下所示: 代 ...
- 烂泥:CentOS安装及配置TFTP服务器
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 为什么要学习有关TFTP服务器的安装及配置呢?主要是为了后续学习有关linux系统的无人值守安装做准备. TFTP简单文件传输协议,使用UDP的69端口 ...