| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1043 人关注过本帖
标题:头疼!不知道哪错了,帮忙看看。
只看楼主 加入收藏
成成成
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2016-8-1
结帖率:66.67%
收藏
已结贴  问题点数:18 回复次数:3 
头疼!不知道哪错了,帮忙看看。
#include<stdio.h>
#include<string.h>
#include<ctype.h>

void origin(char **p,int n);   
void ascii(char **p,int n);   
void length(char **p,int n);   
void word(char **p,int n);     
int first_word(char *p);           

int main()
{
    char str[10][81];
    char *p[10];
    char command[10];
    int n;
    while(1)
    {
        n=0;
        puts("input no more than 10 strings finished by EOF(^Z):");  
        do
        {
            if(gets(str[n])==NULL)
                break;
            p[n]=str[n];
            n++;
        }  while(n<10);

        puts("select:");         //选择
        puts("a.put originally");
        puts("b.put in order of ascii");
        puts("c.put in order of string's length");
        puts("d.put in order of first word's length");
        puts("e.input strings again");
        puts("q.quit");
        
        do
        {
            gets(command);
            switch(command[0])
            {
            case 'a': origin(p,n);break;
            case 'b': ascii(p,n);break;
            case 'c': length(p,n);break;
            case 'd': word(p,n); break;
            case 'e':break;
            default: puts("Quit");return 0;
            }
        }
        while(command[0]!='e');
    }
}

void origin(char **p,int n)
{
    int i;
    for(i=0;i<n;i++)
        puts(p[i]);
}

void ascii(char **p,int n)
{
    int i,j;
    char *temp;
    for(i=0;i<n;i++)
        for(j=0;j<n-i-1;j++)
            if(strcmp(p[j],p[j+1])>0)
            {
                temp=p[j];
                p[j]=p[j+1];
                p[j+1]=temp;
            }
    origin(p,n);
}

void length(char **P,int n)
{
    int i,j;
    char *temp;
    for(i=0;i<n;i++)
        for(j=0;j<n-i-1;j++)
            if( strlen(p[j]) > strlen(p[j+1]) )
            {
                temp=p[j];
                p[j]=p[j+1];
                p[j+1]=temp;
            }
    origin(p,n);
}

int first_word(char *p)
{
    int i=0;
    for(;!isalpha(*p);p++)
        if(*p=='\0')
            return 0;
    for(i=1;isalpha(p[i]);i++)
        continue;
    return i;
}

void word(char **p,int n)
{
    int i,j;
    char *temp;
    for(i=0;i<n;i++)
        for(j=0;j<n-i-1;j++)
            if(first_word(p[j])>first_word(p[j+1]))
            {
                temp=p[j];
                p[j]=p[j+1];
                p[j+1]=temp;
            }
    origin(p,n);
}
2016-12-25 02:14
成成成
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2016-8-1
收藏
得分:0 
其他没问题,就这段不知道出什么问题
void length(char **P,int n)
{
    int i,j;
    char *temp;
    for(i=0;i<n;i++)
        for(j=0;j<n-i-1;j++)
            if( strlen(p[j]) > strlen(p[j+1]) )
            {
                temp=p[j];
                p[j]=p[j+1];
                p[j+1]=temp;
            }
    origin(p,n);
}
2016-12-25 02:22
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:9 
P与p问题
2016-12-25 05:58
纵横阳仔
Rank: 7Rank: 7Rank: 7
来 自:自学成才的火星人儿
等 级:贵宾
威 望:26
帖 子:147
专家分:698
注 册:2016-10-20
收藏
得分:9 

c语言是区分大小写的,要注意哦。
2016-12-25 09:37
快速回复:头疼!不知道哪错了,帮忙看看。
数据加载中...
 
   



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

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