#include<stdio.h> main() int i,c,num=0,word=0; char string[81]; gets(string); for(i=0;c=string

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#include<stdio.h> main() int i,c,num=0,word=0; char string[81]; gets(string); for(i=0;c=string相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
main()
int i,c,num=0,word=0;
char string[81];
gets(string);
for(i=0;c=string[i];i++)
if(c=' ')
word=0;
else if(word==0)
word=1;num++;
讲解一下
printf("%d",num);

请问你是看不懂程序吗?
#include<stdio.h>
main() //主函数
int i,c,num=0,word=0; //定义变量
char string[81];
gets(string); //输入字符串
for(i=0;c=string[i];i++)
if(c=' ')
word=0; //从第0位开始判断,若第0位为空格,则没有单词
else if(word==0) //若第0位不为空,则顺次查询空格,若遇到空格,则令word=0,然后下一次循环遇到c!=' '时执行else if中的内容,num是计算字符串中单词的个数~
word=1;num++;
讲解一下
printf("%d",num);
//最后输出单词的个数~
参考技术A 大哥,问题是啥子?

NYOJ 单词拼接

# include<iostream>
# include<string>
# include<string.h>
# include<queue>
# include<stdio.h>
# include<math.h>
#include <algorithm>
using namespace std;
#define MAX 2005 
int first[MAX],next[MAX],u[MAX],v[MAX],used[MAX],h=1,ct=1,in[MAX],ans[MAX];
int out[MAX],x=0;
string s[MAX];
char ch;
void AddEdge(int a,int b)
{
    u[h] = a;
    v[h] = b;
    out[a]++;        
    in[b]++;
    next[h] = first[u[h]];
    first[u[h]] = h;
    h++;
}

int judge(int p)
{
    int count1 = 0;
    int count2 = 0;
    int vertex[2];
    for(int i=1;i<=p;i++)
    {
        if(out[i]-in[i] == 1 )
        {
            if(count1>=1)
                return -1;
            vertex[0] = i;
            count1++;
        }
        else if(out[i]-in[i] == -1 )
        {
            if(count2>=1)
                return -1;
            vertex[1] = i;
            count2++;
        }
        else if(out[i]-in[i] == 0)
        {
            continue;
        }
        else            //WA原因  
        {
            return -1;
        }
    }
    if(count1==1 && count2==1)
    {
        return vertex[0];
    }
    else if(count1==0 && count2==0)
    {
        for(int i=1;i<=26;i++)
        {
            if(in[i]!=0 && out[i]!=0)
                return i;
        }
    }
    else 
        return -1;
}
void dfs(int k)        //k是出发顶点  
{
    for(int i = 1; i < h; i++)
    {
        if(u[i] == k)
        {
            //printf("%d %d
------------
",u[i],k);
            if(used[i]!=0)
            {
                used[i] = 0;
                dfs(v[i]);
                ans[ct++] = i;
                //printf("%d %d
------------
",ct,i);
                ///求出后答案是倒着的
            }
        }
    }

    
}
int main()
{
    int m,n,i,j;
    cin>>n;
    while(n--)
    {
        cin>>m;
        h = 1;
        x = 0;
        ct = 1;
        for(i=0;i<MAX;i++)
        {
            first[i] = -1;
            next[i] = -1;
            used[i] = 1;
            in[i] = 0;
            out[i] = 0;
        } 
        
        for(i=1;i<=m;i++)
        {
            cin>>s[i];
        } 
        sort(s+1,s+m+1);
        for(i=1;i<=m;i++)
        {
            int a,b;
            a = s[i][0] - a + 1;
            b = s[i][ s[i].length()-1 ] - a + 1;
            //printf("%d %d",a,b);
            AddEdge(a,b);
        } 
        int k,flag = 1;
        k = judge(26);
        /*
        printf("%d
------------------
",k);
        
        for(i=1;i<h;i++) 
                {
                   printf("%d %d %d
",u[i],v[i],used[i]);
            }
        printf("
------------------
");
        */
        dfs(k);
        
        if(k==-1)
        {
            flag = 0;
        }
        else
        {
            for(i=1;i<h;i++) 
                {
                   if(used[i]!=0)
                   {                      
                       flag = 0;
                    break;    
                }
            }
        }
        
        if(flag==1)  
        {
            for(i=ct-1;i>=1;i--)
            {
                if(i!=1)
                    cout<<s[ans[i]]<<"." ;
                else
                    cout<<s[ans[i]];
            }
            cout<<endl;
        } 
        else        printf("***
");
        
        
    } 
    return 0;
}

 

以上是关于#include<stdio.h> main() int i,c,num=0,word=0; char string[81]; gets(string); for(i=0;c=string的主要内容,如果未能解决你的问题,请参考以下文章

200行以上C语言程序举例

幂取模

hdu 2007 注意m n大小

UVA - 1635

《趣学算法》动态规划

走迷宫