c语言编程问题,字符串数组排序的问题
发布网友
发布时间:2022-05-12 17:02
我来回答
共2个回答
热心网友
时间:2023-10-14 21:52
代码基本正确:
void ranger(char a[][10])
{
int i,count=0;
char s[100];
while(count<10)
{
for(i=0;i < 9-count;i++)
{
if(strcmp(a[i],a[i+1])>0)
{
strcpy(s,a[i]),strcpy(a[i],a[i+1]),strcpy(a[i+1],s);
}
}
count++;
}
}
对照着改下,应该就好了
热心网友
时间:2023-10-14 21:53
首先:strcmp函数是比较两个串是不是一样,不是比较大小。
c语言编程问题,字符串数组排序的问题
void ranger(char a[][10]){ int i,count=0; char s[100]; while(count<10) { for(i=0;i < 9-count;i++) { if(strcmp(a[i],a[i+1])>0) { strcpy(s,a[i]),strcpy(a[i],a[i+1]),strcpy(a[i+1],s); } } count++; }}...
c语言关于多个数组的排序问题
//1你没有理解冒泡排序原理,应该和内层循环个元素交换,所以把变量i+1替换为变量j//2strcmp函数不会用,应该传指针,因为只有这样才能比较两个字符串。#include<stdio.h>#include<string.h>int main(){ int i,j; char *temp; char *p[6]; char a[6][6]; printf("请输入你想比较的...
C语言数组问题及排序问题
程序总共有三个问题,改过就好了。1:if(prime(a[i]))h=k=i;break;改为:if(prime(a[i])){h=k=i;break;} 2:scanf("m=%d",&m);去掉m= 3:if(i-m>=0)for(j=i-m;j<i-m+m/2;j++){ k-=1;t=a[j];a[j]=a[k];a[k]=t;} else for(d=0;d...
C语言:编写程序,把字符数组中的字母按由小到大 的顺序排列并输出_百 ...
include <stdio.h>#include <stdlib.h>#include <string.h>int cmp(const void *a, const void *b) { return *(char*)a - *(char*)b; // 这里记住一定要用排序的元素类型的指针做强制装换并且再取指针指向的值。}int main() { char s[] = "kjferu21398dyfkaqpoia"; qs...
C语言的数组排序问题。
第一个填 i-1 第二个填 i++或i+1 最后顺便说句,楼主,for循环里面条件有问题,n+1变量是错误,你要么在前面定义int n = strlen(a),要么在这个地方修改为8+1。修改后并经过测试的代码如下:include<stdio.h> void main(){ int i,x,a[20]={2,4,5,7,8,12,13,18};printf("Input ...
C语言高手请回答我几个问题,关于数组排序问题
//1 选择:从乱序a[i]-a[n-1]中 // 选择最大值元素 max_id=i;for(j=i+1;j<n;j++){ if(a[max_id]
C语言字符串排序问题,求解
void sort_string(char *p[],int n); /*排序函数声明*/ int main(){ char *p[N];/*定义指针数组*/ int i;for(i=0;i<N;i++)/*动态分配空间*/ p[i]=(char*)malloc(21*sizeof(char));/*设字符串不超过20字节*/ printf("Input %d Strings:\n",N);for(i=0;i<N;i++)gets...
c语言字符串排序问题!
本题的一个完整的c程序如下,程序在win-tc和Dev-c++下都调试通过。include<stdio.h> include<stdlib.h> include<conio.h> define N 3/* 设定要输入的字符串个数,可更改 */ int cmp(char *p1,char *p2) /* 字符串比较函数 */ {int i=0;while (*(p1+i)==*(p2+i))if (*(p1+i+...
c语言数组排序问题
include#includeint main(void){char cName[5][10],temp[10];float fScore[5],ftemp;int i,j,k;printf("输入学生的姓名和成绩:\n");for(i=0;i<5;i++){printf("cName[%d]是:",i);scanf("%s",cName[i]);printf("成绩为:");scanf("%f",&fScore[i]);}for(i=0;i<5;i+...
C语言程序:题目:从键盘输入一个字符串,按照字符顺序从小到大进行排序...
char str1[500]={0},str2[256]={0};//定义二个数组,并赋初值为0 int i;gets(str1);//读取一个字符串 for(i=0;str1[i];i++){ str2[str1[i]]=1;//str1中每个字符的assic码作为str2的下标值,并把对应位置填充为1,同一个字符的assci值相同,所以这样就去掉了重复字符 } for...