鱼C论坛

 找回密码
 立即注册
查看: 1862|回复: 9

回文字符串用空格隔开统计个数,出错了,求指正,谢谢

[复制链接]
发表于 2015-2-21 04:51:09 | 显示全部楼层 |阅读模式
1鱼币
#include<stdio.h>
#include<string.h>
#define max 50
int duigui(char s[],int k,int i)
{
if(s[k]==s[i-k]&&k==0)
  return 1;
else if(s[k]==s[i-k])
  duigui(s,k-1,i);
else return 0;
}
int main()
{
int i=0,j=0,ture=1,n=1,k=0;
char  s[max],s1[max],ch;
printf("please input s:\n");
while((ch=getchar())!='\n')
{
  s[i]=ch;
  i++;
}
i=0;
while(ture)
{   
  while(s[i]!=' '&&s[i]!='\n')
  {
   s1[j]=s[i];
   i++;
   j++;
   }
  printf("%d ",j);
  s1[j]='\0';
  
   if(n)
   {
    if(j%2==0)
    {
     n=duigui(s1,j%2,j-1);
     printf("%d ",n);
     if(n!=0)
      k+=1;
    }
    else {
      n=duigui(s1,j%2-1,j-1);
      printf("%d ",n);
      if(n!=0)
       k+=1;
     }
   
   }

while(s[i]==' '&&s[i]!='\n')
   {
   i+=1;
   j=0;
   }
  printf("%d ",i);
  if(s[i]=='\n')
   {ture=0;n=0;}
   else n=1;

   
}
printf("\n");
printf("%d",k);
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-21 08:56:26 | 显示全部楼层
给你发个判断空格个数的吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-21 08:56:33 | 显示全部楼层
#include<stdio.h>

int main()
{
        char ch;
        int eax = 0;
        printf("Please Input a string:");
        while((ch = getchar())!='\n')
        {
                if(ch == ' ')
                {
                        eax++;
                }
        }

        printf("共有%d个空格!\n",eax);

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-2-21 09:03:34 | 显示全部楼层
牡丹能找到原因?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-2-21 19:03:13 | 显示全部楼层
是统计回文字符串的个数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-22 00:28:09 | 显示全部楼层
可以把题目贴出来么 :loveliness:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-22 13:16:11 | 显示全部楼层
死幽亡灵 发表于 2015-2-21 19:03
是统计回文字符串的个数

(⊙o⊙)…
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-22 14:19:04 | 显示全部楼层
有BUG哦 你看看吧
#include<stdio.h>

int main()
{
        char ch;
        char str[256];
        int n[100];
        int len,i,j = 0,t,k = 1,js = 0;

        for(i = 0;i<100;i++)
        {
                n[i] = -1;
        }

        printf("输入一堆字符(最后不要加空格):");

        len = 0;
        while((ch = getchar())!='\n')
        {
                str[len] = ch;
                len++;
        }


        n[0] = -1;
        for(i = 1;i<len;i++)
        {
                if(' ' == str[i])
                {
                        n[j] = i;
                        j++;
                }
        }

        j++;
        n[j] = len;
        
        for(i = 0;i<j;i++)
        {
                for(t = 1;t< n[i+1] - n[i];t++)
                {
                        if(str[n[i+1]-t] != str[n[i]+t])
                        {
                                k = 0;
                                break;
                        }
                }

                if(1 == k)
                {
                        js++;
                }

                k = 1;
        }

        printf("一共有%d个回文字符串\n",js);

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-2-22 20:42:22 | 显示全部楼层
题目:输入一篇文章,文章中每两个字符串用空格隔开,统计单词中的回文个数!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-19 20:33:36 | 显示全部楼层
學習了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 23:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表