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 ...
随机推荐
- 【读书笔记】iOS-KVC
一,KVC即键/值编码. 二,KVC的基本调用包括-valueForKey:和-setValue:forKey:. 三,对于KVC,Cocoa自动放入和取出标量值.也就是说,当使用setValueFo ...
- 【读书笔记】iOS-查看一个软件ipa包的内容
一,打开itunes----->我的iPhone应用程序. 二,右键点击app---->在Finder中显示---->出现下图所示界面. 三,将上图中的ipa包拷贝到桌面,如下图所示 ...
- C语言中Static和Const关键字的的作用
程序的局部变量存在于(堆栈)中,全局变量存在于(静态区 )中,动态申请数据存在于( 堆)中. 1.作用于变量: 用static声明局部变量-------局部变量指在代码块{}内部定义的变量,只在代码块 ...
- iOS:自己写的一个星级评价的小Demo
重新整理了下自己星级评价的Demo,可以展示星级评价,可以动态修改星级. github的地址:https://github.com/hunterCold/HYBStarEvaluationView a ...
- iOS-UICollectionView的简单使用(原创)
前言 UICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最简单的形式).如果你用过iBook ...
- iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载+使用输出流代替文件句柄
前言:本篇讲解,在前篇iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载的基础上,使用输出流代替文件句柄实现大文件断点续传. 在实际开发中,输入输出流用的比较少,但 ...
- Objective-C之@class的使用
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- 8 Regular Expressions You Should Know
Regular expressions are a language of their own. When you learn a new programming language, they're ...
- 【OpenCV】图像转成YUV420 I420格式
一.YUV420 I420介绍 一种颜色编码方法,在YUV色彩空间中,Y表示亮度信号,U.V表示色度信号: 其YUV排列如下,4个Y分量(2x2)对应一个U和V, Y存放完,接着存放U,U存放完,最后 ...
- 优秀的PHP开源项目集合
包管理Package Management Package Management Related 框架 框架组件 微框架Micro Frameworks 内容管理系统Content Managemen ...