//题目34:对10个数进行排序

#include<stdio.h>
#include<stdlib.h> //分析:使用冒泡排序 void main(){
int arr[] = { , , , , , , , , , };
//定义临时变量
int temp = ;
//冒泡排序 双循环
for (int i = ; i < ; i++)
{
for (int j = i+; j <; j++)
{
if (arr[j-]>arr[j])
{
temp = arr[j];
arr[j] = arr[j - ];
arr[j - ] = temp;
}
}
}
for (int i = ; i < ; i++)
{
printf("%d--", arr[i]);
}
system("pause");
}

//题目35:求一个3*3矩阵对角线元素之和
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h> //分析:就是一个二维数组,求a[0][0]+a[1][1]+a[2][2]的和, void main(){
int arr[][] = { };
//二维数组的遍历需要使用双for循环
for (int i = ; i < ; i++)
{
for (int j = ; j < ; j++)
{
scanf("%d", &arr[i][j]);
}
}
int sun = ;
for (int i = ; i < ; i++)
{
for (int j = ; j < ; j++)
{
//对角线上的元素满足i=j
if (i==j)
{
sun += arr[i][j];
}
printf("%5d",arr[i][j]);
}
printf("\n");
}
printf("\n求一个3*3矩阵对角线元素之和是%d",sun);
system("pause");
}

//题目36:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h> //分析:for循环,遍历每个数,设定数组从大到小,一个个与输入的数进行比较,插入对应的空中
//这里需要用到动态分配内存,因为数组的元素是固定的不可以随意插入 void main(){
int *p = (int *)calloc(sizeof(int), );
printf("原来的数组\n");
//为这个数组赋值
for (int i = ; i < ; i++)
{
*(p + i) = i*;
printf("%5d", *(p + i));
}
printf("\n");
//已经排好序的数组已经准备好了
int num = ;
printf("请输入要插入的数字\n");
scanf("%d",&num);
//再次用realloc函数分配内存
//新的大小可大可小(但是要注意,如果新的大小小于原内存大小,可能会导致数据丢失,慎用!)
int *p1 = realloc(p, sizeof(int)*);
//给最后一个元素赋值0
*(p1 + ) = ;
int temp = ;
//从前往后排序,存在着逻辑上的不方便。因为就算我找到了位置,后面的所有元素都要向后移动一位
//那么有可能需要再写一个循环,来移动数组元素的位置
/*for (int i = 0; i < 11; i++)
{
if (*(p1+i)>num)
{ }
}*/
//我决定从后往前排序,因为最后面一个位置本来就是空着的
for (int i = ; i>=; i--)
{
if (*(p1 + i)<num)
{
*(p1 + i + ) = num;
//换完位置后退出循环
break;
}
else{
//将指针内的数据向后移动一位,此时p1+i这个位置已经空出来了
*(p1 + i + ) = *(p1 + i);
}
}
printf("\n新排序的数组\n");
for (int i = ; i < ; i++)
{
printf("%5d",*(p1+i));
}
//释放堆内存
free(p1); system("pause");
}

C语言 百炼成钢12的更多相关文章

  1. C语言第12轮:指针

    C语言第12轮:指针 [学习目标] 1.        指针 2.        指针与数组 A: 指针的概念 内存存储单元按字节排序.每一个字节编有序号.我们称之为地址.因为能够通过地址就能够找到所 ...

  2. 选择Go语言的12个理由

    编者按:多核化和集群化是互联网时代的典型特征,那语言需要哪些特性来应对这些特征呢?多数语言在语法层面并不直接支持协程,而通过库的方式支持的协程的功能也并不完整,比如仅仅提供协程的创建.销毁与切换等能力 ...

  3. C语言基础 (12) 文件的操作 FILE

    课程回顾 结构体基本操作: 结构体类型的定义 // struct为关键字 Stu为自定义标识符 // struct Stu才是结构体类型 // 结构体成员不能在定义类型时赋值 struct Stu { ...

  4. 程序员之---C语言细节12(指针和数组细节,&quot;//&quot;的可移植性说明)

    主要内容:指针和数组细节,"//"的可移植性说明 #include <stdio.h> int main(int argc, char **argv) { int a[ ...

  5. C语言Ⅰ作业12—学期总结

    一.我学到的内容 二.我的收获 作业链接 收获 C语言Ⅰ博客作业01 认识了PTA编程,博客园,Markdown基本语法1,Markdown基本语法2 C语言Ⅰ博客作业02 PTA系统常见问题解答 C ...

  6. Java入门 - 语言基础 - 12.Number和Math类

    原文地址:http://www.work100.net/training/java-number-math.html 更多教程:光束云 - 免费课程 Number和Math类 序号 文内章节 视频 1 ...

  7. C语言 百炼成钢19

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

  8. C语言 百炼成钢6

    //题目16:输入两个正整数m和n,求其最大公约数和最小公倍数. #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include< ...

  9. C语言 百炼成钢4

    //题目10:打印楼梯,同时在楼梯上方打印两个笑脸. #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdli ...

随机推荐

  1. Android项目实战(七):Dialog主题Activity实现自定义对话框效果

    想必大家都用过Dialog主题的Activity吧,用它来显示自定义对话框效果绝对是一个非常不错的选择. 即把activity交互界面以Dialog的形式展现出来,Dialog主题的Activity大 ...

  2. JSP page指令详解

    JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言. 语法格式如下: <%@ directive attribute="value" %> 指令可以 ...

  3. Python基础(4)--字符串

    所有标准的序列操作对字符串都适用,但字符串是不可变的 本文地址:http://www.cnblogs.com/archimedes/p/python-string.html,转载请注明源地址. 字符串 ...

  4. IOS 二维码生成

    这篇博客将会介绍二维码的生成. 由于没有什么东西值得长篇大论的,所以这里我就通过代码的实现介绍二维码. 第一部分 第一部分是二维码的简单生成没有其他重点介绍. 效果图 代码部分 // // ViewC ...

  5. UI界面的一些简单控件

    虽然都是代码 , 但是基本都有注释. #import "ViewController.h" @interface ViewController () /** * 创建视图 */ @ ...

  6. iOS开发之保存照片到自己创建的相簿

    iOS开发之保存照片到自己创建的相簿 保存照片还可以用ALAssetsLibrary,ALAssetsLibrary提供了我们对iOS设备中的相片.视频的访问,是连接应用程序和相册之间访问的一个桥梁. ...

  7. iOS之UI--使用SWRevealViewController实现侧边菜单功能详解实例

    使用SWRevealViewController实现侧边菜单功能详解 下面通过两种方法详解SWRevealViewController实现侧边菜单功能: 1.使用StoryBoard实现   2.纯代 ...

  8. Node.js之Promise维护(同步)多个回调(异步)状态

    金天:学习一个新东西,就要持有拥抱的心态,如果固守在自己先前的概念体系,就会有举步维艰的感觉..NET程序员初用node.js最需要适应的就是异步开发, 全是异步,常规逻辑下遍历列表都是异步,如何保证 ...

  9. Swing应用开发实战系列之一:自定义JdbcTemplate

    笔者本人真正意义上接触编程开发是在2004年,最早用的就是VB,然后是Delphi等,后来转到.Net,中间断断续续还用过PowerBuilder等,无一例外,所研发设计的项目或系统都是WinForm ...

  10. 烂泥:centos安装LVM方式

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近开始打算学习有关LVM逻辑卷的知识,由于以前没有接触过,看了很多有关这方面的视频.但是一直不深入.今天就先不管了,先把centos系统安装在LVM上 ...