
主函数用指针存储十个名字的数组,并一个子函数对其进行排序,为什么执行不了??
#include<stdio.h>#include<string.h>voidsort(char*name,intn){inti;char*temp=NULL;for(i...
#include <stdio.h>
#include <string.h>
void sort(char* name , int n){
int i;
char* temp=NULL;
for(i=0;i<n-1;i++){
if(strcmp(&name[i],&name[i+1])>0){
strcpy(temp,&name[i]);
strcpy(&name[i],&name[i+1]);
strcpy(&name[i+1],temp);
}
}
}
int main(void){
int i;
char* name[10];
for(i=0;i<10;i++){
printf("请输入第%d个学生的姓名:",i+1);
scanf("%s",&name[i]);
}
sort(* name,10);
for(i=0;i<10;i++)
printf("第%d个学生的姓名是%s",i+1,name[i]);
return 0;
} 展开
#include <string.h>
void sort(char* name , int n){
int i;
char* temp=NULL;
for(i=0;i<n-1;i++){
if(strcmp(&name[i],&name[i+1])>0){
strcpy(temp,&name[i]);
strcpy(&name[i],&name[i+1]);
strcpy(&name[i+1],temp);
}
}
}
int main(void){
int i;
char* name[10];
for(i=0;i<10;i++){
printf("请输入第%d个学生的姓名:",i+1);
scanf("%s",&name[i]);
}
sort(* name,10);
for(i=0;i<10;i++)
printf("第%d个学生的姓名是%s",i+1,name[i]);
return 0;
} 展开
5个回答
展开全部
#include <stdio.h>
#include <string.h>
void sort(char name[10][100] , int n){
int i;
char temp[100];
for(i=0;i<n-1;i++){
if(strcmp(name[i],name[i+1])>0){
strcpy(temp,name[i]);
strcpy(name[i],name[i+1]);
strcpy(name[i+1],temp);
}
}
}
int main(void){
int i;
char name[10][100];
for(i=0;i<10;i++){
printf("请输入第%d个学生的姓名:",i+1);
scanf("%s",name[i]);
}
sort(name,10);
for(i=0;i<10;i++)
printf("第%d个学生的姓名是%s",i+1,name[i]);
return 0;
}
展开全部
void sort(char* name , int n);
这个函数不是对字符串排序,形参只有一个字符串而已。
这个函数不是对字符串排序,形参只有一个字符串而已。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码如下,DEV C++ 4.9.9.2 编译通过:
==========================================================================
#include <stdio.h>
#include <string.h>
void sort(char* name[], int n)
{
int i,j;
char *str;
for(i=1; i<n; i++) /* 采用插入排序法排序 */
{
str=name[i];
for(j=i-1; j>=0 && (strcmp(str,name[j])<0); j--)
name[j+1]=name[j];
name[j+1]=str;
}
}
int main(void)
{
int i;
char* name[10];
for(i=0;i<10;i++)
{
printf("请输入第%2d个学生姓名 :",i+1);
name[i]=(char*)malloc(30); /* 分配内存 */
scanf("%s",name[i]);
}
sort(name,10);
printf("\n");
for(i=0;i<10;i++)
printf("第%2d个学生的姓名是 : %s\n",i+1,name[i]);
for(i=0;i<10;i++)
free(name[i]);
getch(); /* VC编译的话去掉此句 */
return 0;
}
==========================================================================
#include <stdio.h>
#include <string.h>
void sort(char* name[], int n)
{
int i,j;
char *str;
for(i=1; i<n; i++) /* 采用插入排序法排序 */
{
str=name[i];
for(j=i-1; j>=0 && (strcmp(str,name[j])<0); j--)
name[j+1]=name[j];
name[j+1]=str;
}
}
int main(void)
{
int i;
char* name[10];
for(i=0;i<10;i++)
{
printf("请输入第%2d个学生姓名 :",i+1);
name[i]=(char*)malloc(30); /* 分配内存 */
scanf("%s",name[i]);
}
sort(name,10);
printf("\n");
for(i=0;i<10;i++)
printf("第%2d个学生的姓名是 : %s\n",i+1,name[i]);
for(i=0;i<10;i++)
free(name[i]);
getch(); /* VC编译的话去掉此句 */
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//问题不少,给你改了下
#include <stdio.h>
#include <string.h>
#include <malloc.h> //malloc头文件
void sort(char** name , int n) //chat** name
{
int i,j;
char temp[30]; //要有空间
for(i=0;i<n;i++) //排序
{
for(j=i+1;j<n;j++)
{
if(strcmp(name[i],name[j])>0)
{
strcpy(temp,name[i]);
strcpy(name[i],name[j]);
strcpy(name[j],temp);
}
}
}
}
int main(void)
{
int i;
char* name[10];
for(i=0;i<10;i++)
{
printf("请输入第%d个学生的姓名:",i+1);
name[i]=(char*)malloc(30); //分配内存
scanf("%s",name[i]); //name[i]
}
sort(name,10); //name
for(i=0;i<10;i++)
printf("第%d个学生的姓名是%s\n",i+1,name[i]);
for(i=0;i<10;i++)
free(name[i]); //释放内存
return 0;
}
#include <stdio.h>
#include <string.h>
#include <malloc.h> //malloc头文件
void sort(char** name , int n) //chat** name
{
int i,j;
char temp[30]; //要有空间
for(i=0;i<n;i++) //排序
{
for(j=i+1;j<n;j++)
{
if(strcmp(name[i],name[j])>0)
{
strcpy(temp,name[i]);
strcpy(name[i],name[j]);
strcpy(name[j],temp);
}
}
}
}
int main(void)
{
int i;
char* name[10];
for(i=0;i<10;i++)
{
printf("请输入第%d个学生的姓名:",i+1);
name[i]=(char*)malloc(30); //分配内存
scanf("%s",name[i]); //name[i]
}
sort(name,10); //name
for(i=0;i<10;i++)
printf("第%d个学生的姓名是%s\n",i+1,name[i]);
for(i=0;i<10;i++)
free(name[i]); //释放内存
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼正解,楼主基础不过关 ,继续努力。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询