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 ...
随机推荐
- NavigationController的使用整理
1.设置NavigationBar的背景色: self.navigationController.navigationBar.barTintColor = [UIColor redColor]; 2. ...
- 【读书笔记】iOS-NSData
Cocoa为我们提供了NSData类,该类包装了大量字节,你可以获得数据的长度和指向字节起始位置的指针,因为NSData是一个对象,适用于常规的内存管理行为.因此,如果将数据块传递给一个函数或方法,可 ...
- Python学习二---字符串
一.字符串 1.1.字符串和转义字符 转义字符需要使用\来表示 1.2.字符串连接 print 字符串1 字符串2,打印出来的字符串直接连接在一起没有空格 print 字符串1,字符串2,打印出来的字 ...
- App Icon生成工具(转载)
原地址:http://www.cocoachina.com/bbs/read.php?tid=290247 下载软件:在AppStore搜索App Icon Gear 打开软件 决定制作启动图或图标, ...
- LeetCode 8 String to Integer (string转int)
题目来源:https://leetcode.com/problems/string-to-integer-atoi/ Implement atoi to convert a string to an ...
- android 进程/线程管理(四)续----消息机制的思考(自定义消息机制)
继续分析handler 和looper 先看看handler的 public void dispatchMessage(Message msg) { if (msg.callback != null) ...
- JIRA系统部署推进上线流程
JIRA介绍: JIRA是集项目计划.任务分配.需求管理.问题跟踪于一体的商业软件.JIRA创建的问题类型包括New Feature.Bug.Task和Improvement四种(可以自己定义),所以 ...
- 【Other】U盘FAT32转NTFS且无数据丢失
序: 做了一个U盘启动盘后发现文件系统格式为FAT32.这种格式支持单个文件最大4G,超过4G就无法拷贝了.为了防止以后突发情况所以提前把FAT32转换成NTFS.为避免导入导出数据最简单的方法利用D ...
- 读书笔记——Windows环境下32位汇编语言程序设计(3)一些基础知识
声明函数用proto 定义函数用proc 局部变量只能定义,不能赋初值,类型不能用缩写. 全局变量可以定义的时候赋初值,默认值为0. 在invoke中,参数可以使用addr取址. sizeof 字节长 ...
- mac下 home-brew安装及php,nginx环境安装及配置
Homebrew官网 http://brew.sh/index_zh-cn.html Homebrew是神马 linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案, ...