鱼C论坛

 找回密码
 立即注册
查看: 2050|回复: 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);
}

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-2-21 08:56:26 | 显示全部楼层
给你发个判断空格个数的吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  2. int main()
  3. {
  4.         char ch;
  5.         int eax = 0;
  6.         printf("Please Input a string:");
  7.         while((ch = getchar())!='\n')
  8.         {
  9.                 if(ch == ' ')
  10.                 {
  11.                         eax++;
  12.                 }
  13.         }

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

  15.         return 0;
  16. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-2-21 09:03:34 | 显示全部楼层
牡丹能找到原因?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-2-21 19:03:13 | 显示全部楼层
是统计回文字符串的个数
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-2-22 00:28:09 | 显示全部楼层
可以把题目贴出来么 :loveliness:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

(⊙o⊙)…
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  2. int main()
  3. {
  4.         char ch;
  5.         char str[256];
  6.         int n[100];
  7.         int len,i,j = 0,t,k = 1,js = 0;

  8.         for(i = 0;i<100;i++)
  9.         {
  10.                 n[i] = -1;
  11.         }

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

  13.         len = 0;
  14.         while((ch = getchar())!='\n')
  15.         {
  16.                 str[len] = ch;
  17.                 len++;
  18.         }


  19.         n[0] = -1;
  20.         for(i = 1;i<len;i++)
  21.         {
  22.                 if(' ' == str[i])
  23.                 {
  24.                         n[j] = i;
  25.                         j++;
  26.                 }
  27.         }

  28.         j++;
  29.         n[j] = len;
  30.        
  31.         for(i = 0;i<j;i++)
  32.         {
  33.                 for(t = 1;t< n[i+1] - n[i];t++)
  34.                 {
  35.                         if(str[n[i+1]-t] != str[n[i]+t])
  36.                         {
  37.                                 k = 0;
  38.                                 break;
  39.                         }
  40.                 }

  41.                 if(1 == k)
  42.                 {
  43.                         js++;
  44.                 }

  45.                 k = 1;
  46.         }

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

  48.         return 0;
  49. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-2-22 20:42:22 | 显示全部楼层
题目:输入一篇文章,文章中每两个字符串用空格隔开,统计单词中的回文个数!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-5-19 20:33:36 | 显示全部楼层
學習了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-19 22:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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