| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 253 人关注过本帖
标题:帮我看一下这个程序的问题!
只看楼主 加入收藏
fightingsss
Rank: 6Rank: 6
等 级:侠之大者
帖 子:97
专家分:471
注 册:2010-11-12
结帖率:80%
收藏
已结贴  问题点数:1 回复次数:2 
帮我看一下这个程序的问题!
#include <stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
    int a[26]={0};
    int A,M,N,P,Q;
    char str[1000];
    int k,i,j;


    gets(str);/*给定一个字符串*/
    A=strlen(str);/*计算字符串的长度*/

    for (k=0;k<=A;k++)
        if ('a'<=(char)(str[k])&&(char)(str[k])<='z')
            a[(char)(str[k])-'a']++;           /*计算每个字符出现的频率*/
    for (i=0;i<=24;i++)
    {
        for (j=i+1;j<=25;j++)
        {
            if (a[j]>a[i])
            {
                M=a[j];
                a[j]=a[i];
                a[i]=M;

                P=str[j]+a;
                str[j]=str[i];
                str[i]=P;
            }
            if (a[j]=a[i])
            {
                if (j<i)
                {
                    N=a[j];
                    a[j]=a[i];
                    a[i]=N;

                    Q=str[j]+a;
                    str[j]=str[i];
                    str[i]=Q;
                }
            }

        }
    }
    for (i=0;i<=25;i++)
        printf("%c %d\n",i+'a',a[i]);
}
我要对1000个a到z之间的任意排列算出每个字母的频率,并按顺序打出,这个程序好像有点问题。。。高手来帮忙改一下啊。。。


搜索更多相关主题的帖子: include 字符串 
2010-11-14 19:20
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:1 
程序代码:
#include <stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
    int a[26]={0};
    int A,M,N,P,Q;
    char str[1000];
    int k,i,j;


    gets(str);/*给定一个字符串*/
    A=strlen(str);/*计算字符串的长度*/

    for (k=0;k<=A;k++)
        if ('a'<=(char)(str[k])&&(char)(str[k])<='z')
            a[(char)(str[k])-'a']++;           /*计算每个字符出现的频率*/
    for (i=0;i<=24;i++)
    {
        for (j=i+1;j<=25;j++)
        {
            if (a[j]>a[i])
            {
                M=a[j];
                a[j]=a[i];
                a[i]=M;
/*
                P=str[j]+a;   这有什么用啊!!!!单独写 a 是指针!!!P 又不是指针
                str[j]=str[i];
                str[i]=P;*/ 
            }
            if (a[j]=a[i])
            {
                if (j<i)
                {
                    N=a[j];
                    a[j]=a[i];
                    a[i]=N;
/*
                    Q=str[j]+a;
                    str[j]=str[i];
                    str[i]=Q;*/
                }
            }

        }
    }
    for (i=0;i<=25;i++)
        printf("%c %d\n",i+'a',a[i]);
}

If You Want Something, Go Get It, Period.
2010-11-14 20:32
fightingsss
Rank: 6Rank: 6
等 级:侠之大者
帖 子:97
专家分:471
注 册:2010-11-12
收藏
得分:0 
回复 2楼 m21wo
(⊙o⊙)…我好像还没学指针!!!可否告诉我那一段该怎么改正,才可以保证字符之间的交换。。。我真的不知道,头都有点点大了。。。
2010-11-14 21:03
快速回复:帮我看一下这个程序的问题!
数据加载中...
 
   



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

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