信息学竞赛(C语言)程序填空

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

·程序填空题·

1.(最大连续子段和)给出一个数列(元素个数不多于100),数列元素均为负整数、正整数、0。请找出数列中的一个连续子数列,使得这个子数列中包含的所有元素之和最大,在和最大的前提下还要求该子数列包含的元素个数最多,并输出这个最大和以及该连续子数列中元素的个数。例如数列为4,-5,3,2,4时,输出9和3;数列为1 2 3 -5 0 7 8时,输出16和7。

#include

int a[101];

int n,i,ans,len,tmp,beg;

int main(){

scanf("%d",&n);

for (i=1;i<=n;i++)

scanf("%d",&a[i]);

tmp=0;

ans=0;

len=0;

beg= ①;

for (i=1;i<=n;i++){

if (tmp+a[i]>ans){

ans=tmp+a[i];

len=i-beg;

}

else if ( ②&&i-beg>len)

len=i-beg;

if (tmp+a[i] ③){

beg= ④;

tmp=0;

}

else

⑤;

}

printf("%d %d\n",ans,len);

return 0;

}

①_______________________ ②_______________________

③_______________________ ④_______________________

⑤_______________________

2、读入一个字符串,如果出现了减号' - ' ,减号两侧又同时为小写字母、大写字母或数字,就需要按照ASCII码的顺序把' - ' 所代表的省略部分不全。

例如:' a – d ' 实际是' abcd ',' E – H ' 实际是' EFGH ' ,' A – A ' 实际上是' A ' ,' 0 - 7 ' 实际上是' 01234567 ' 。请编程输出转化后的字符串。

#include

#include

int main(void){

long length i,j;

char s[100];

scanf("%s",s);

length = strlen(s);

s[length] = ①;

i = ②;

while(i

if( ③)

{

printf("%c",s[i]);

}

else

{

if( ((s[i-1]>='a') && (s[i+1]<='z')) || ((s[i-1]>='A') &&

(s[i+1]<='Z')) || ((s[i-1]>='0') && (s[i+1]<='9')) )

{

for( ⑤;j<=s[i+1];j++)

}

else

{

printf("%c",s[i]);

i++;

}

}

return 0;

}

①_______________________ ②_______________________

③_______________________ ④_______________________

⑤_______________________ ⑥_______________________

⑦_______________________

相关文档
最新文档