| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 483 人关注过本帖
标题:把十个字符串从小到大排序并输出(指针操作)
只看楼主 加入收藏
liuting8181
Rank: 2
等 级:论坛游民
帖 子:54
专家分:19
注 册:2011-4-21
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:4 
把十个字符串从小到大排序并输出(指针操作)
#include<stdio.h>

#include<string.h>


void fun(char a[10][80])
{
   char *p,*q;

   int i,t;


   p=a[0];
   for(p=a[0];p<a[0]+9;p++)
       for(q=p+1;q<a[0]+10;q++)
       {
           if(*p>*q)
           {
              t=*p;
              *p=*q;
              *q=t;
           }
       }

       for(p=a[0];p<a[0]+10;p++)
           printf("%-4s",*p);
       printf("\n");

}

int main(void)
{

    char aa[10][80];

    printf("please input:");
    for(int i=0;i<10;i++)
        gets(aa[i]);

    fun(aa);

    return 0;
}
搜索更多相关主题的帖子: include please 字符串 
2011-07-23 14:28
liuting8181
Rank: 2
等 级:论坛游民
帖 子:54
专家分:19
注 册:2011-4-21
收藏
得分:0 
为什么会出现错误...
2011-07-23 14:33
y515382
Rank: 2
等 级:论坛游民
帖 子:38
专家分:16
注 册:2011-7-9
收藏
得分:2 
好像一直报错是在
for(int i=0;i<10;i++)
这里地方说缺少分号“:”
还有就是i的定义未使用报错
也不清楚啊
2011-07-23 14:58
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:2 
void swap(char *p,char *q)
{char s[100];
strcpy(s,p);
strcpy(p,q);
strcpy(q,s);
}
void f(char a[][100])
{char *p,*q;int i,j;
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
{p=a[i];
q=a[j];
if(strcmp(p,q)>0)
swap(p,q);
}
for(i=0;i<10;i++)
puts(a[i]);
}
main()
{
char a[10][100];
int i;
for(i=0;i<10;i++)
gets(a[i]);
f(a);
getch();}
2011-07-23 15:26
kidwillow
Rank: 2
等 级:论坛游民
帖 子:5
专家分:77
注 册:2011-7-14
收藏
得分:2 
新的C编译标准不支持在for语句内定义循环变量,在循环前先定义,后使用。楼主的指针用的有问题,帮你改了下。

#include<stdio.h>
 
#include<string.h>
 

void fun(char a[10][80])
 {
    char *p,*q;
 
   int i,t;
 

   p=a[0];
    for(p=a[0];p<a[0]+10*80;p=p+80)
        for(q=p+80;q<a[0]+10*80;q=q+80)
        {
            if(*p>*q)
            {
               t=*p;
               *p=*q;
               *q=t;
            }
        }
 
       for(p=a[0];p<a[0]+10*80;p=p+80)
            printf("%-4s\n",p);
        printf("\n");
 
}
 
int main(void)
 {
 
    char aa[10][80];
    int i;      //先定义,再使用
    printf("please input:\n");
     for(i=0;i<10;i++)
         gets(aa[i]);
 
    fun(aa);
    getchar();
 
    return 0;
 }
2011-07-24 18:02
快速回复:把十个字符串从小到大排序并输出(指针操作)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017080 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved