//题目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的更多相关文章

  1. Java入门 - 语言基础 - 14.String类

    原文地址:http://www.work100.net/training/java-string.html 更多教程:光束云 - 免费课程 String类 序号 文内章节 视频 1 概述 2 创建字符 ...

  2. C语言 百炼成钢19

    /* 题目55: 有一个字符串符合以下特征(”abcdef,acccd,eeee,aaaa,e3eeeee,sssss,";),要求写一个函数(接口),输出以下结果 1) 以逗号分割字符串, ...

  3. C语言 百炼成钢5

    //题目13:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 //本身.例如:153是一个“水仙花数”,因为153 = 1的三次方+5的三次方+3的三次方. #de ...

  4. C程序设计语言练习题1-4

    练习1-4 编写一个程序打印摄氏温度转换为相应华氏温度的转换表. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的 ...

  5. C语言 百炼成钢27

    /* 题目63:编写C++程序完成以下功能: (1)声明一个纯虚函数类Shape(形状),其中包含来计算面积.计算周长的方法: (2)从Shape派生两个类矩形和圆形: (3)从矩形派生正方形: (4 ...

  6. C语言 百炼成钢3

    //题目7:用*号输出空心菱形图案 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> # ...

  7. C语言 百炼成钢2

    //题目4:输入某年某月某日,判断这一天是这一年的第几天? #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<st ...

  8. C语言 百炼成钢1

    //题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> ...

  9. C语言 百炼成钢18

    //题目52:用递归打印以下图形 //* //*.*. //*..*..*.. //*...*...*...*... //*....*....*....*....*.... #include<s ...

随机推荐

  1. 浅析LruCache原理

    Android用LruCache来取代原来强引用和软引用实现内存缓存,因为据说自2.3以后Android将更频繁的调用GC,导致软引用缓存的数据极易被释放. LruCache使用一个LinkedHas ...

  2. IOS开发之SVN的使用

    关于SVN的一个使用细节    

  3. 傅里叶:有关FFT,DFT与蝴蝶操作(转 重要!!!!重要!!!!真的很重要!!!!)

    转载地址:http://blog.renren.com/share/408963653/15068964503(作者 :  徐可扬) 有没有!!! 其实我感觉这个学期算法最难最搞不懂的绝对不是动态规划 ...

  4. JavaScript Patterns 2.10 Naming Conventions

    1. Capitalizing Constructors var adam = new Person(); 2. Separating Words camel case - type the word ...

  5. Java 图片处理——如何生成高清晰度而占有磁盘小的缩略图

    现在的web项目,图片越来越多,图片大小也越来越大,随便就能达到1M,2M,甚至更大.用户上传的图片,一般是无法直接使用的.一般要生成两三种对应的缩略图,分别适配不同的终端,不同的场景.比如PC,手机 ...

  6. 第一章 Mysql 简介及安装和配置

    Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一. ...

  7. c# 常用正则

    "^\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\d+)|(0+))$" ...

  8. 限制input输入类型(多种方法实现)

    1.只能输入和粘贴汉字 <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste= ...

  9. 标准库shared_ptr智能指针的实现

    目前测试功能正常.若有不完善的地方在改进吧.时候不早了睡觉去,哎,翘课会被抓,不冒险了.晚安全世界O(∩_∩)O /****************************************** ...

  10. WEB安全--Google Hacking

    通常我们用Google查询一些我们测试站点的一些信息,Google提供了一系列的搜索语句,下面我为大家详细的介绍一下! 常用语法: site:指定域名 intext:正文中存在关键字的网页 intit ...