| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7501 人关注过本帖
标题:[讨论]第八次编程题目,谢谢大家的支持.
只看楼主 加入收藏
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
收藏
得分:0 

第一题 虽然不是最好,但是也算是做出来了
#define NUM 50
main()
{ int i=0,sum=0;
char str[NUM];
printf("Input:");
scanf("%s",str);
while(str[i]!='\0')
{sum++;
i++;}
if(sum%2!=0)printf("False\n");
else
for(i=0;i<sum;i++)
{ if(str[i]=='<')
if(str[i+1]!='>')
{printf("False");
break;
}
if(str[i]=='(')
if(str[i+1]=='['||'{'||']'||'}')
{printf("False");
break;
}
if(str[i]=='[')
if(str[i+1]=='{'||'}')
{ printf("False");
break;
}
if(str[i]=='{')
if(str[i+1]=='{')
{printf("False");
break;
}
printf("TURE");
break;
}
getch();

}

[此贴子已经被作者于2007-3-18 22:54:05编辑过]

2007-03-18 22:53
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
收藏
得分:0 
我是这样想的
<>里面不能有其他的括号
()里面不能有{,[,],}
[]里面不能有{,}
{}里面不能有{,
排除了这些就剩下true
2007-03-18 22:55
zerocn
Rank: 1
等 级:新手上路
帖 子:126
专家分:0
注 册:2006-4-11
收藏
得分:0 

我的还有一个错误,就是如果输入
[()]结果也是错,不直到为什么

2007-03-18 23:11
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
括号里可以套括号,重要括号里面是匹配的就行.

倚天照海花无数,流水高山心自知。
2007-03-18 23:42
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
第二个要是不考虑数据超过长整形比较简单
#include<stdio.h>
void main()
{
long int n,m,l=0,i;
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++)
{
if(n%i==0)
l=(l+i%m)%m;//这个地方这样写在m不是很接近long int的最大范围的时候能防止l的溢出
}
l=l%m;
printf("%d\n",l);
}


2007-03-19 09:37
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
问斑竹
第一个要如果表达式子是这样的合不合法
(()) //就是同一级别能不能铅套
要是不合法的话就简单多了

2007-03-19 09:40
无玩过界
Rank: 1
等 级:新手上路
威 望:2
帖 子:246
专家分:0
注 册:2007-2-20
收藏
得分:0 

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int *a,i=0,sum=0;
char c[81];

gets(c);

while(c[++i]);
a=(int *)malloc(i*sizeof(int));
for(i=0;c[i];i++)
{
switch(c[i])
{
case '{':a[i]=4;break;
case '[':a[i]=3;break;
case '(':a[i]=2;break;
case '<':a[i]=1;break;
case '>':a[i]=-1;break;
case ')':a[i]=-2;break;
case ']':a[i]=-3;break;
case '}':a[i]=-4;break;
default:a[i]=0;sum=1;break;
}
if(sum==1)
break;
}
if(sum)
puts("false");
else
if(i&1)
puts("false");
else
{
for(i=0;c[i];i++)
sum+=a[i];

if(sum)
puts("false");
else
{
for(i=1;c[i]&&a[i-1]>=a[i];i++);

if(!c[i])
{
sum=i;
for(i=0;i<sum/2&&a[i]==-a[sum-1-i];i++);
if(i==sum/2)
puts("frue");
else
puts("false");
}
else
puts("false");
}
}
free(a);


}


2007-03-19 10:20
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
以下是引用crackerwang在2007-3-19 9:37:10的发言:
第二个要是不考虑数据超过长整形比较简单
#include<stdio.h>
void main()
{
long int n,m,l=0,i;
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++)
{
if(n%i==0)
l=(l+i%m)%m;//这个地方这样写在m不是很接近long int的最大范围的时候能防止l的溢出
}
l=l%m;
printf("%d\n",l);
}



这位不觉得效率比较低吗?当输入的数比较大时,还会停一下才显示结果,比如:500000000,9.虽然结果都是3但是你却要等数秒后才有结果

还有输入输出长整型要用%ld

[此贴子已经被作者于2007-3-19 10:21:28编辑过]


雁无留踪之意,水无取影之心
2007-03-19 10:20
hujian100
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2006-9-14
收藏
得分:0 
#include <stdio.h>
#define N 9
main()
{
char bracket[N];
int sequence[N]={'\0'};
int i,j,len;
printf("Please input the bracket string:");
gets(bracket);
for(i=0;bracket[i]!='\0';i++)
{
switch(bracket[i])
{
case '{': sequence[i]=1;break;
case '}': sequence[i]=8;break;
case '[': sequence[i]=2;break;
case ']': sequence[i]=7;break;
case '(': sequence[i]=3;break;
case ')': sequence[i]=6;break;
case '<': sequence[i]=4;break;
case '>': sequence[i]=5;break;
default: printf("Input error!\n");break;goto end;
}
}
len=i-1;
if(i%2!=0)
{
printf("false\n");
goto end;
}
else
{
for(i=1;sequence[i]!='\0';i++)
if(sequence[i-1]>sequence[i])
{
printf("false\n");
break;
goto end;
}
for(i=0,j=len;i<j;i++,j--)
if(sequence[i]+sequence[j]!=9)
{
printf("false\n");
break;
goto end;
}
}
printf("true\n");
end: return 0;
}
我做的第一题 请高手看看里边的问题在哪里,有些输入能运算对,但有些就出问题了。

2007-03-19 11:02
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
回复:(PcrazyC)以下是引用crackerwang在2007-3-19 ...
谢谢38楼的意见,让我在改一改

2007-03-19 11:38
快速回复:[讨论]第八次编程题目,谢谢大家的支持.
数据加载中...
 
   



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

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