Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

UVa 327 Evaluating Simple C Expressions

/*
coder: ACboy
date: 2010-3-14
result: 1A
description: UVa 327 Evaluating Simple C Expressions
*/
#include <iostream>
#include <algorithm>
using namespace std;
struct Node {
char name;
int value;
int lastValue;
int pos;
};
int cmp(const Node & a, const Node & b)
{
return a.name < b.name;
}
Node data[30];
int vis[256];
int main()
{
char input[256];
char temp[256];
char Temp[256];
#ifndef ONLINE_JUDGE
freopen("327.txt", "r", stdin);
#endif
while (gets(input))
{
int i, j;
int c = 0;
int count = 0;
int len = strlen(input);
for (i = 0; i < len; i++)
{
if (input[i] != ' ') {
temp[c++] = input[i];
if (isalpha(input[i])) {
data[count].name = input[i];
data[count].value = input[i] - 'a' + 1;
data[count].lastValue = data[count].value;
data[count].pos = c - 1;
count++;
}
}
temp[c] = '\0';
}

memset(vis, 0, sizeof(vis));
for (i = 0; i < count; ++i) {
int pos = data[i].pos;
if (pos - 2 >= 0) {
if (temp[pos - 1] == temp[pos - 2] && temp[pos - 1] == '-') {
data[i].value--;
data[i].lastValue = data[i].value;
vis[pos - 1] = 1;
vis[pos - 2] = 1;
}

if (temp[pos - 1] == temp[pos - 2] && temp[pos - 1] == '+') {
data[i].value++;
data[i].lastValue = data[i].value;
vis[pos - 1] = 1;
vis[pos - 2] = 1;
}
}

if (pos + 2 < len) {
if (temp[pos + 1] == temp[pos + 2] && temp[pos + 1] == '-') {
data[i].lastValue = data[i].value - 1;
vis[pos + 1] = vis[pos + 2] = 1;
}

if (temp[pos + 1] == temp[pos + 2] && temp[pos + 1] == '+') {
data[i].lastValue = data[i].value + 1;
vis[pos + 1] = vis[pos + 2] = 1;
}
}
}
c = 0;
for (i = 0; i < len; ++i)
{
if (!vis[i]) {
Temp[c++] = temp[i];
}
}
Temp[c] = '\0';
len = strlen(Temp);


Ïà¹ØÎĵµ£º

LinuxÏÂCÓïÑÔ±à³Ì ÎļþµÄ²Ù×÷

ǰÑÔ: 
    ÎÒÃÇÔÚÕâÒ»½Ú½«ÒªÌÖÂÛlinuxÏÂÎļþ²Ù×÷µÄ¸÷¸öº¯Êý. 
1.ÎļþµÄ´´½¨ºÍ¶Áд 
2.ÎļþµÄ¸÷¸öÊôÐÔ 
3.Ŀ¼ÎļþµÄ²Ù×÷ 
4.¹ÜµÀÎļþ 
--------------------------------------------------------------------------------
1¡£ÎļþµÄ´´½¨ºÍ¶Áд 
......

Cö¾ÙÀàÐ͵ÄʹÓ÷½·¨


1.  ö¾ÙµÄ¶¨Òåö¾ÙÀàÐͶ¨ÒåµÄÒ»°ãÐÎʽΪ£º
    enum ö¾ÙÃû{ ö¾ÙÖµ±í };
ÔÚö¾ÙÖµ±íÖÐÓ¦ÂÞÁгöËùÓпÉÓÃÖµ¡£ÕâЩֵҲ³ÆÎªÃ¶¾ÙÔªËØ¡£
ÀýÈ磺
   
¸Ãö¾ÙÃûΪweekday£¬Ã¶¾ÙÖµ¹²ÓÐ7¸ö£¬¼´Ò»ÖÜÖÐµÄÆßÌì¡£·²±»ËµÃ÷ΪweekdayÀàÐͱäÁ¿µÄȡֵֻÄÜÊÇÆßÌìÖеÄijһÌì¡£
2.  ö¾Ù±äÁ ......

C×Ö·û´®´¦Àíº¯ÊýµÄʵÏÖ

±¾ÎÄÀ´×Ô£º http://blog.pfan.cn/xiuandfang/24935.html
±êÇ©:C C ++ string String Êý¾Ý½á¹¹ 
C×Ö·û´®´¦Àíº¯ÊýµÄʵÏÖ

C×Ö·û´®´¦Àíº¯ÊýµÄʵÏÖ£¨Linux£©
#include <stddef.h>
 char * ___strtok = NULL;
 
 char * strcpy(char * dest,const char *src)
&nb ......

CºÍC++ÓïÑÔѧϰ×ܽá(Ò»)

CºÍC++ÓïÑÔѧϰ×ܽá(Ò»)
֪ʶ½á¹¹:
1¡¢if,for,switch,goto
2¡¢#define,const
3¡¢Îļþ¿½±´µÄ´úÂë,¶¯Ì¬Éú³ÉÄÚ´æ,¸´ºÏ±í´ïʽ,strcpy,memcpy,sizeof
4¡¢º¯Êý²ÎÊý´«µÝ,ÄÚ´æ·ÖÅ䷽ʽ,ÄÚ´æ´íÎó±íÏÖ,mallocÓënewÇø±ð
5¡¢ÀàÖØÔØ¡¢Òþ²ØÓ븲¸ÇÇø±ð,externÎÊÌâ,º¯Êý²ÎÊýµÄȱʡ
ÖµÎÊÌâ,ºê´úÂëÓëÄÚÁªº¯ÊýÇø±ð
6¡¢¹¹ÔìºÍÎö¹ ......

CÃæÊÔÌâ»ã×Ü

1¡¢  int a=2,b=11,c=a+b++/a++; ÔòcֵΪ¶àÉÙ£¿
¡¾¿¼µã¡¿±àÂë¹æ·¶¡£
±íÃæÉÏ¿¼²ìÄã¶ÔÔËËã·ûÓÅÏȼ¶µÄÕÆÎճ̶ȣ¬µ«Êµ¼ÊÉÏÓÅÏȼ¶ÕâÐ©ÍæÒâºÜÄÑËÀ¼ÇÓ²±³µÃס£¿´ó¼ÒµÄÒɻ󲻾ÍÊÇÔËËã·ûµÄ½áºÏ˳Ðòô£¿ÄÇôÈçºÎÈ¥±ÜÃâÄØ£¿c=a+((b++)/(a++))²»¾ÍÐÐÁËô£¬ÆäʵÎÊÌâ±³ºó¿¼²ìµÄÊÇÄãµÄ±àÂë¹æ·¶£¬ÈçºÎдÇåÎúÒ×¶®µÄ´úÂ룬ÈçºÎÔÚÒ»¸öÍÅ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ