c实例_挑战程序竞赛,蚂蚁

时间:2022-02-17 12:12:08
#include <stdio.h>

//蚂蚁的题目
int max(int a,int b)
{
int count;
count=a>b?a:b;
return count;
}
void solve()
{ int minT=;
int i;
for(i=;i<n;j++)
{
minT=max(minT,min(x[j],L-x[j])); //这里改成i也一样
}
int maxT=;
for(i=;i<n;i++)
{
maxT=max(maxT,max(x[i],L-x[i]));
}
printf("%d %d",minT=,maxT); } int main()
{ int L,n;
puts("输入长度L");
scanf("%d",&L);
puts("输入蚂蚁数n");
scanf("%d",&n);
int x[n];
puts("第一个离左边长度");
int i;
for(i=;i<n;i++)
{
scanf("%d",&x[i]); }
solve(); return ;
}

C语言for循环中,如果写成这样

for(int i=0;i<n;i++)
 {
   scanf("%d",&x[i]); 
 }

就会报错

-----------------

error: 'for' loop initial declaration used outside C99 mode

最后解决方案:设置全局变量

#include <stdio.h>
int L,n;
int i;
int x[]; //蚂蚁的题目
int max(int a,int b)
{
int count;
count=a>b?a:b;
return count;
}
int min(int a,int b)
{
int count;
count=a>b?b:a;
return count;
}
void solve()
{
int minT=;
for(i=;i<n;i++)
{
minT=max(minT,min(x[i],L-x[i]));
}
int maxT=;
for(i=;i<n;i++)
{
maxT=max(maxT,max(x[i],L-x[i]));
}
puts("所有蚂蚁,所有噢,最短掉下去的时间与最长的时间");
printf("%d %d",minT,maxT);
}
int main()
{
puts("输入长度L");
scanf("%d",&L);
puts("输入蚂蚁数n");
scanf("%d",&n);
puts("依次离左边长度");
for(i=;i<n;i++)
{
scanf("%d",&x[i]);
}
solve();
return ;
}

帮别人调试程序http://poj.org/problem?id=1852

#include <stdio.h>

int main()
{
int max(int x,int y);
int min(int x,int y);
int length, n, post, mintime, maxtime;
int i;
int x[];
int y[];
scanf("%d",&i);
int k;
k=i;
while(i--)
{
mintime = ;
maxtime = ;
scanf("%d %d", &length, &n);
while(n--)
{
scanf("%d",&post);
mintime = max(mintime,min((length-post),post));
x[i]=mintime;
maxtime = max(maxtime,max((length-post),post));
y[i]=maxtime; } }
while(k--)
{
printf("%d %d\n",x[k],y[k]);
} return ;
} int max(int x,int y)
{
int z;
x>y?z=x:z=y;
return(z);
} int min(int x,int y)
{
int z;
x>y?z=y:z=x;
return(z);
}