VS2013编译器关于c与语言的用指针排序

问题描述

VS2013编译器关于c与语言的用指针排序

// 擂台法.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include
void leitai(int a, int b);
#define N 5
int _tmain(int argc, _TCHAR
argv[])
{
int a[N] = { 5, 6, 1, 3, 9 };
leitai(a, N);
for (int i = 0; i < N; i++)
printf("%dn", a[i]);
system("pause");
return 0;
}
void leitai(int *a, int b)
{
for (int i = 0; i < N - 1; i++)
{
int t = *(a + i), j, k;
for (j = i; j < N; j++)
if (t < *(a + i + j))
k = j;
if (k != i)
{
int s = *(a + i);
*(a + i) = *(a + i + j);
*(a + i + j) = s;
}
}
}

解决方案

1.函数声明处应该为:void leitai(int *a, int b);
2.排序函数应如下:
void leitai(int *a, int b)
{
for (int i = 0; i < N - 1; i++)
{
int t = *(a + i), j, k = i;
for (j = 1; j < N - i - 1; j++)
{
if (t < *(a + i + j))
{
k = i + j;
t = *(a + i + j);
}
}
if (k != i)
{
int s = *(a + i);
*(a + i) = *(a + i + j);
*(a + i + j) = s;
}
}
}

解决方案二:

不知道那个地方错了,求助

时间: 2024-12-30 23:25:52

VS2013编译器关于c与语言的用指针排序的相关文章

vs2013中的javascript出现语言服务问题

问题描述 vs2013中的javascript出现语言服务问题 百度说好像是因为安装了developerAssistant插件安装了update5 还是有问题请问有没有除了重新安装以外的其它解决方法,插件我也不太想卸载谢谢了

c语言-C语言中的指针和数组的初始化

问题描述 C语言中的指针和数组的初始化 char a[]=""abcdef"";char *p =""cdefg"";a[1]='A';p[1]='A'; 这段代码有什么问题?#include int main(){ char amessage[]=""now is the time""; char *pmessage = ""now is the time"

c语言-关于C语言结构体指针类型的强制转换(求大神详细解答)

问题描述 关于C语言结构体指针类型的强制转换(求大神详细解答) #include <iostream> #include <algorithm> using namespace std; typedef struct { string dna; int count; }DNA; DNA dna[101]; **int cmp(const void *a,const void *b) { DNA *aa = (DNA *)a; DNA *bb = (DNA *)b; return a

关于c语言结构体指针数组的问题

问题描述 关于c语言结构体指针数组的问题 我有一个数组,里面每个成员都是结构体指针,我应该怎么给这个数组分配空间? 解决方案 指针变量的长度都是固定的,与你指向什么东西没关系的. 解决方案二: #include #define N 3 struct student { long int num; char name[20]; float score[3]; float aver; }; int main() { void Input(struct student stu[]); struct s

c语言-C语言中的指针转换问题

问题描述 C语言中的指针转换问题 代码如下 # include<stdio.h> int main() { unsigned int a = 0xfffffff7 ; unsigned char i = (unsigned char)a ; char *b = (char *)&a ;//让b指向a的地址 printf ("%x, %x ", i, *b) ;//不懂:*b应该是char类型的,为什么结果会是4个字节? printf ("%08x, %08

深入解析C语言中函数指针的定义与使用_C 语言

1.函数指针的定义    函数是由执行语句组成的指令序列或者代码,这些代码的有序集合根据其大小被分配到一定的内存空间中,这一片内存空间的起始地址就成为函数的地址,不同的函数有不同的函数地址,编译器通过函数名来索引函数的入口地址,为了方便操作类型属性相同的函数,c/c++引入了函数指针,函数指针就是指向代码入口地址的指针,是指向函数的指针变量. 因而"函数指针"本身首先应该是指针变量,只不过该指针变量指向函数.这正如用指针变量可指向整形变量.字符型.数组一样,这里是指向函数.C在编译时,

C语言中常量指针与指针常量区别浅析

这篇文章主要介绍了C语言中常量指针与指针常量区别,有需要的朋友可以参考一下 常量指针是指--指向常量的指针,顾名思义,就是指针指向的是常量,即,它不能指向变量,它指向的内容不能被改变,不能通过指针来修改它指向的内容,但是指针自身不是常量,它自身的值可以改变,从而指向另一个常量. 指针常量是指--指针本身是常量.它指向的地址是不可改变的,但地址里的内容可以通过指针改变.它指向的地址将伴其一生,直到生命周期结束.有一点需要注意的是,指针常量在定义时必须同时赋初值. 注:也有人将这两个名称的定义与含义

struct-关于C语言结构体指针数组的问题

问题描述 关于C语言结构体指针数组的问题 //结构体struct student{ int iNum; char cName[16]; float fChineseScore; float fMathScore; float fEnglishScore;};typedef struct student STUDENT;//输入void InputTranscript(STUDENT MyClass[] int num){ int i; printf(""请输入学生的成绩信息:n&quo

归并排序-数据结构C语言顺序表的排序和删除问题

问题描述 数据结构C语言顺序表的排序和删除问题 顺序表定义的长度为10000,此时程序可以正常运行:把顺序表长度改成500000,程序出错,不能运行.求问大神是哪里出了错误,还是要提高存储上限?如何改正?#include #include #include typedef int ElemType; #define MAX 10000 typedef struct{ ElemType *elem; int length; }SqList; void InitList(SqList &L){ L.