用C语言写了一个程序,输入字符串和数字,然后输出按字符串的顺序依次输出。有哪位高手能帮忙看一下这个。

刚刚初学C语言,请高手能帮一下忙,小弟万分感激!#include<stdio.h>#include<string.h>#defineM20#defineN8charstr... 刚刚初学C语言,请高手能帮一下忙,小弟万分感激!
#include<stdio.h>
#include<string.h>
#define M 20
#define N 8
char str[N][M];
struct student
{
char *p[N];
int n;
}stu[N],t;
int main()
{
void sort(char *s[]);

int i;
for(i=0;i<N;i++)
{
stu[i].p[i]=str[i];
}
for(i=0;i<N;i++)
scanf("%s%d",stu[i].p[i],stu[i].n);
sort(stu[N].p);
for(i=0;i<N;i++)
{
printf("%s %d",stu[i].p[i],stu[i].n);
printf("\n");
}
return 0;
}
void sort(char *s[])
{

int i,j,k;
for(i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<N;j++)
{
if(strcmp(*(s+i),*(s+j))>0)
{
k=j;
t=*(s+i);
*(s+i)=*(s+k);
*(s+k)=t;
}
}
}
}
展开
 我来答
淦海瑶s1
2011-11-28 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:754万
展开全部
你这个好像是姓名和成绩对应

for(i=0;i<N;i++)
scanf("%s%d",stu[i].p[i],stu[i].n);
这个地方%s %d最好用空格隔开,或者逗号隔开,好分辨输入
stu[i].p[i]这个有点不对,应该stu[i].p
for(i=0;i<N;i++)
{
printf("%s %d",stu[i].p[i],stu[i].n);
printf("\n");
}
这个也一样,是字符串处理有问题

那个子函数也有问题,void sort(char *s[]);
在函数中s和的调用不对
这里s是你的结构体中的p[]。但是你在函数中的应用,当成结构体用了,也就是s和t类型不对应
百度网友7693d9fd
2011-11-28 · TA获得超过292个赞
知道小有建树答主
回答量:801
采纳率:0%
帮助的人:234万
展开全部
你是不是想把输出的数字按照字符串的形式输出?
是需要把最后的输出方式改一下就行了 !!!!!!!!!
例如:
printf("数字=%d",z);
printf("数字=%s",z);
注意:!!!!!!
%d-------是数字占位符
%c-------是字符占位符
%s-----是字符串占位符

呵呵呵呵,献丑了
望采纳!
我很认真的给你回答的啊!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b5386f58d
2011-11-28 · TA获得超过533个赞
知道小有建树答主
回答量:674
采纳率:0%
帮助的人:503万
展开全部
很想懂C语言
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式