#include <stdio.h> //蚂蚁的题目 int max(int a,int b) { int count; count=a>b?a:b; return count; } void solve() { int minT=0; int i; for(i=0;i<n;j++) { minT=max(minT,min(x[j],L-x[j])); //这里改成i也一样 } int maxT=0; for(i=0;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=0;i<n;i++) { scanf("%d",&x[i]); } solve(); return 0; }
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[100]; //蚂蚁的题目 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=0; for(i=0;i<n;i++) { minT=max(minT,min(x[i],L-x[i])); } int maxT=0; for(i=0;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=0;i<n;i++) { scanf("%d",&x[i]); } solve(); return 0; }
帮别人调试程序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[1000]; int y[1000]; scanf("%d",&i); int k; k=i; while(i--) { mintime = 0; maxtime = 0; 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 0; } 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); }