c语言编程题,急求解答,在线等!

 我来答
风若远去何人留
推荐于2016-03-31 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450126
专业C/C++软件开发

向TA提问 私信TA
展开全部

代码如下

#include <stdio.h>
#include <string.h>
typedef struct
{
char name[21];
int cnt;
}MAIL;
MAIL mail[100];

void new_mail(char *name)
{
int i;
for(i = 0; mail[i].cnt && i < 100; i ++)
{
if(strcmp(name, mail[i].name) == 0)
{
mail[i].cnt ++;
return;
}
}
if(i >= 100) return;
strcpy(mail[i].name, name);
mail[i].cnt ++;
}

void print(void)
{
int i;
for(i = 0; mail[i].cnt && i < 100; i ++)
printf("%s......%d\n", mail[i].name, mail[i].cnt);
}

int main()
{
char name[100];
int i;
while(scanf("%s", name) != EOF)
{
for(i = 0; name[i] != '@' && name[i]; i ++);
new_mail(&name[i+1]);
}
print();
return 0;
}
追问
太感谢了
xx_lyq00
2015-04-13 · TA获得超过4139个赞
知道大有可为答主
回答量:1794
采纳率:88%
帮助的人:809万
展开全部
#include <stdio.h>
#include <string.h>

void TotalServerNum()
{
struct SServerNum
{
char szName[21];
int nNum;
};
SServerNum ServerNum[101];
char str[21];
int k = 0;
while(scanf("%s", str) != EOF)
{
char szName[21];
int j = 0;
int i = 0;
for(;str[i] != 0; i ++)
{
if(str[i] == '@')
{
i ++;
break;
}
}
for(; str[i] != 0; i ++)
szName[j ++] = str[i];
szName[j] = 0;
i = 0;
for(;i < k; i ++)
{
if(strcmp(szName, ServerNum[i].szName)== 0)
{
ServerNum[i].nNum ++;
break;
}
}
if( i == k)
{
ServerNum[k].nNum = 1;
strcpy(ServerNum[k].szName, szName);
k ++;
}
}
for(int i = 0; i < k ; i ++)
{
printf("%s......%d\n", ServerNum[i].szName, ServerNum[i].nNum);
}
}


int main()
{
TotalServerNum();
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fc027fc
2015-04-13 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3160
采纳率:83%
帮助的人:777万
展开全部
dtya@slave:~$ cat a.c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
    static char a[64];
    static char t[64];
    static char server[128][64];
    static int  cnt[128];
    int n=0;
    int i,j,k;
    while(gets(a))
    {
          for(i=0;a[i]!='@';i++);
          for(i=i+1,k=0;a[i]!='\0';i++,k++) t[k]=a[i];
          t[i]='\0';
          for(j=0;j<n;j++)
          { 
              if(strcmp(server[j],t)==0) 
              {
                  cnt[j]++;
                  break;
              }
   
          }    
          if(j==n)
          {
               n=n+1;
               strcpy(server[j],t);
               cnt[j]=1;
          }      
    }
    for(j=0;j<n;j++)
    {
        printf("%s......%d\n",server[j],cnt[j]);
    }
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式