| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4483 人关注过本帖
标题:统计各种类型字符的个数
只看楼主 加入收藏
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
哎,VC下也就这样,我可不想搞的象燕子的那样这么花,开的花都快结果了

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-06-16 19:15
爱喝牛奶的猫咪
Rank: 1
来 自:QQ群46520219
等 级:禁止访问
帖 子:513
专家分:0
注 册:2008-6-16
收藏
得分:0 
/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http:// **
*****************************************************************/
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define null 0

struct node/* The struct for the information of a student. */
{
   
int num;
    char name[8];
    float score;
    struct node *next;
};
typedef struct node node;

node *findnum(node *head, int snum) /* Finding the needed num from the database*/
{
   
node *t;
    t = head->next;
    while(t&&(t->num != snum))
        t = t->next;
    return t;
}

node *findname(node *head, char s[]) /* Finding the needed name from the database*/
{
   
node *t;
    t = head->next;
    while(t&&strcmp(t->name, s))
        t = t->next;
    return t;
}

void findnumout(node *head, int snum)/*Find the record according to num and print it out*/
{
   
node *t;
    int sign = 1;
    t = head->next;
    puts("\nFinding:");
    while(t)
    {
        
if(t->num == snum)
        {
            
printf("The student you want to find:  num:%d, name:%s, score:%f\n", t->num, t->name, t->score);
            sign = 0;
        }
        
t = t->next;
    }
   
if(sign)
        puts("It is wrong!Not find!\n");
}

void findnameout(node *head, char s[])/*Find the record according to name and print it out*/
{
   
node *t;int sign = 1;
    t = head->next;
    puts("\nNow it is finding:");
    while(t)
    {
        
if(!strcmp(t->name, s))
        {
            
printf("The student you want to find:  num:%d, name:%s, score:%f\n", t->num, t->name, t->score);
            sign = 0;
        }
        
t = t->next;
    }
   
if(sign)
        puts("It is wrong!Not find!\n");
}

node *findp(node *head, node *sp)
{
   
node *t;
    t = head;
    while(t&&t->next != sp)
        t = t->next;
    return t;
}

node *creatnode()   /* Creating a database .It is a linked-list with a header */
{
   
node *head, *t, *p;char c;/* When the "name" received comes to "0", the creation is over.*/
   
head = (node*)malloc(sizeof(node));
    head->next = null;
    t = head;
    p = (node*)malloc(sizeof(node));
    p->next = null;
    puts("Input the num:");
    scanf("%d", &p->num);
    puts("Input the name:(within 8 words)");
    scanf("%s", p->name);c = getchar();
    puts("Input the score:");
    scanf("%f", &p->score);
    while(p->name[0] != '0')/*The "name" equal to "0" stands for the creation-finished sign.*/
   
{
        
t->next = p;p->next = null;
        t = t->next;
        p = (node*)malloc(sizeof(node));
        puts("Input the num:");
        scanf("%d", &p->num);
        puts("Input the name:(within 8 words)");
        scanf("%s", p->name);c = getchar();
        puts("Input the score:");
        scanf("%f", &p->score);
    }
   
return head;
}

void insert(node *head, int snum)/* Inserting a record into the database. */
{
   
node *p, *t;char c; /* The function inserts the record into the database according to "num". */
   
p = (node*)malloc(sizeof(node));
    p->next = null;
    t = findnum(head, snum); /* Find the record whose "num" equals to "snum".*/
   
puts("Inserting!\n");
    puts("Input the num:");
    scanf("%d", &p->num);
    puts("Input the name:(within 8 words)");
    scanf("%s", p->name);c = getchar();
    puts("Input the score:");
    scanf("%f", &p->score);
    if(t)
    {
        
if(t->next != null)
        {
            
p->next = t->next;t->next = p;
        }
        
else
            
t->next = p;
    }
   
else puts("\nIt is wrong!\n");
}

void deletenode(node *head, int snum)/* Deleting a record from the database. */
{
   
node *t;                      /*The function deletes the record according to "num". */
   
t = head;
    while(t->next&&(t->next->num != snum))/*Find the previous record of the "snum"-record */
        
t = t->next;
    if(t->next)
        t->next = t->next->next;
    else puts("\nIt is wrong!\n");
}

void print(node *head)     /* Printing all the records. */
{
   
node *t;t = head->next;
    while(t)
    {
        
printf("The num:%d, name:%s, score:%f\n", t->num, t->name, t->score);t = t->next;
    }
   
free(t);
}

void sortnum(node *head)/*Sort all the nodes using the algorithm of bubble*/
{
   
node *a, *b;int sign;   /*According to the nums */
   
while(a)
    {
        
a = head->next;
        b = a->next;
        sign = 1;
        while(b)
        {
            
if(a->num>b->num)
            {
               
findp(head, a)->next = b;a->next = b->next;b->next = a;b = a->next;sign = 0;
            }
            
else {
               
a = b;b = b->next;
            }
        }
        
if(sign)
            break;
    }
}

void sortscore(node *head)/*Sort all the nodes using the algorithm of bubble*/
{
   
node *a, *b;int sign;     /*According to the score */
   
while(a)
    {
        
a = head->next;
        b = a->next;
        sign = 1;
        while(b)
        {
            
if(a->score>b->score)
            {
               
findp(head, a)->next = b;a->next = b->next;b->next = a;b = a->next;sign = 0;
            }
            
else {
               
a = b;b = b->next;
            }
        }
        
if(sign)
            break;
    }
}

void main()
{
   
node *head;
    head = creatnode();
    puts("\nPrevious database is:\n");
    print(head);
    insert(head, 12);/*Insert a record after the node whose num is 12*/
   
printf("After the action of inserting, the database is:\n");
    print(head);
    deletenode(head, 11);/*Delete the record whose num is 11 */
   
puts("\nHaving been deleted, the database now is:\n");
    print(head);
    puts("\nTake the action of Sorting according to the num:\n");
    sortnum(head);
    print(head);
    puts("\nTake the action of Sorting according to score:\n");
    sortscore(head);
    print(head);
    findnumout(head, 12);/*Check out the student whose num is 12. */
   
findnameout(head, "huhl");/*Check out the student whose name is huhl */
}


这也花??
话说你的是怎么做的偶还不清楚

" border="0" />[color=white]
2008-06-16 19:25
爱喝牛奶的猫咪
Rank: 1
来 自:QQ群46520219
等 级:禁止访问
帖 子:513
专家分:0
注 册:2008-6-16
收藏
得分:0 
为什么不把:
struct node/* The struct for the information of a student. */
{
    int num;
    char name[8];
    float score;
    struct node *next;
};
typedef struct node node;

写成:
typedef struct node/* The struct for the information of a student. */
{
    int num;
    char name[8];
    float score;
    struct node *next;
}node;

呢??


" border="0" />[color=white]
2008-06-16 19:27
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
马甲啊~~~~~~  不是也挺花????  很好看啊...

樱花大战,  有爱.
2008-06-16 19:29
yyow3193
Rank: 1
来 自:三峡宜昌
等 级:新手上路
帖 子:165
专家分:0
注 册:2008-6-5
收藏
得分:0 
是不是每输入一个字符回车以后才生效,我输入一个就回一下车,可是不能终止,我要终止循环该输入什么呢?怎么循环不终止呢
#include "stdio.h"
main()
{int a,b,c,d;
 printf("输入一串字符:\n");
 while(getchar()!='\0')
 {switch(sizeof(getchar()))
  {case 8:a++;break;
   case 16:b++;break;
   case 32:c++;break;
   default :d++;
   }
  }
 printf("字符的个数为:%d\n",a);
 printf("整数的个数为:%d\n",b);
 printf("实数的个数为:%d\n",c);
 printf("其它个数为:%d\n",d);
}
2008-06-17 09:30
快速回复:统计各种类型字符的个数
数据加载中...
 
   



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

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