三九宝宝网宝宝教育教学论文

c语言中指针数组和字符串数组的区别高手请进!

12月27日 编辑 39baobao.com

[课程知识完成C语言程序设计 N皇后问题堆栈一维数组普]#include//N皇后问题 #include#include#include#include#include#includetypedef struct { int *elem; int length; int listsize; }Sqlist; int InitList(Sqlist & L){//初...+阅读

#include "stdio.h"

#include "string.h"

void shellsort(char v[][10], int n);

void writeline(char linp[][10],int n);

main()

{

char line[][10]={"C++","Fortran","Basic","Pascal","Foxbase"};

int n=5;

shellsort(line,n);

writeline(line,n);

}

shellsort(char v[][10], int n)

{

char *temp,*t[5];

int i,j;

for(i=0;i

t[i]=&v[i];

for(i=0;i

for(j=n-1;j>i;j--)

if(strcmp(t[j-1],t[j])>0)

{

temp=t[j];

t[j]=t[j-1];

t[j-1]=temp;}

}

writeline(char linp[][10],int n)

{

int i;

for(i=0;i

printf("%s\n",linp[i]);

}

上面是修改过的程序;

关键在于

if(strcmp(v[j-1],v[j])>0)

{t=v[j];v[j]=v[j-1];v[j-1]=t;}

这里面的v[j]=v[j-1];这句不对,因为这是两个地址,也是两个数组,不能赋值

我用了另外的一组指针来指向这个数组

你的函数的定义很奇怪,更奇怪这样的定义也能编译

建议象我这样定义吧,不然别人看程序很困难的.

以下为关联文档:

C语言字符串数组反转相关的问题c语言的问题字符串反转可以使用下列两种方法: 使用Array.Reverse方法 对于字符串反转,我们可以使用.NET类库自带的Array.Reverse方法 public static string ReverseByArray(st...

C语言怎么将字符串数组元素进行逆转#include<stdio.h> #include<stdlib.h> #include<string.h> int main(void) { char str[80]; int i,j; char ch,*p=str; printf("输入字符串:"); gets(str); for(i=0,j=strlen(str...

用c语言编写将两个升序的数组归并成一个新的升序数组//之前写过的,你可以参考下 #include <stdio.h> int main() { int str1[5]={3,6,7,45,55};//两个升序数组 int str2[5]={8,10,11,22,25}; int out[10];//输出数组 int i=0,j=0,...

c语言指针合并两个升序数组还升序#include void merge(char *dest, char *src1, char *src2) { while (*src1 & *src2) { if (*src1 { *dest++ = *src1++; } else { *dest++ = *src2++; } } while(*src1) *d...

如何用C语言编程将两个有序数组a b合并成一个数组c就以你的例子来写,可适当修改为更普遍的 算法核心代码为: int i = j = k = 0; //循环比较,将小的插入到C数组中 while ( i < 3 & j < 3) { if (a [i] < b [j]) c[k++] = a[i++]...

c语言两个升序排列的数组并入第三数组仍然升序#include <stdio.h> int main(void) { int a[5] = {0,3,5,6,8};//第一个有序数组 int b[7] ={2,4,7,9,10,16,20};//第二个有序数组 int c[20];//待放入的数组 int i, j, k; i =...

C语言中合并有序数组不要用C写int a[20],b[20],c[40];//全局数组 void main() { int i,n,m; scanf("%d",&n); for(i = 0; i<n ; i++) scanf("%d",&a[i]); scanf("%d",&m); for(i = 0; i<m ; i++) scanf("%d",&b[i]...

C语言字符串字母大小写转换#include<stdio.h> int main() { char c; while((c=getchar())!='#') { if((c>='a'&c<='z') || (c>='A'&c<='Z')) putchar(c^0x20); else putchar(c); } return 0; }...

c语言数组排序求四位数按百位由大到小排序//我只能告诉你怎么获取4位数的百位 #include<stdio.h> #include<math.h> void main() { long int a=1234; int bw; bw=(a%(int)pow(10,4-1))/(int)pow(10,4-1-1); printf("%...

推荐阅读
图文推荐