供参考:
#include<stdio.h>
int main()
{
int arr[10001], i;
for (i = 1; i < 10001; i++)
{
scanf("%d", &arr[i]);
if (arr[i] == 250) break;
}
printf("%d", i);
return 0;
}
没代码如何改
你可以把你的代码先发过来,我们好帮你看看哪里出现问题了。
写了一个比较简单的,你借鉴下看看会不会超时。
#include <stdio.h>
int main()
{
int n = 0;
int count = 0;
while (scanf("%d", &n) != EOF)
{
count++;
if (n == 250)
{
printf("%d", count);
break;
}
}
return 0;
}
如果上面代码有问题你可以提出来,对你有用的话记得采纳一下。
【以下回答由 GPT 生成】
你的代码存在以下错误:
在读取输入时,将scanf("%d",n)
写成了scanf("%d", &n)
。正确的写法是scanf("%d", &n)
,需要使用&
符号来获取变量n
的地址。
在声明数组int a[n]
时,你使用了变量n
作为数组大小。然而,在C语言中,数组的大小必须是一个常量值,不能是变量。你需要使用动态内存分配函数malloc
来动态分配内存。
这是修改后的代码:
#include <stdio.h>
#include <stdlib.h>
int main(){
int n;
scanf("%d", &n);
int *a = (int*)malloc(n * sizeof(int));
for(int i=0; i<n; i++){
scanf("%d", &a[i]);
}
int max=a[0], min=a[0];
for(int i=1; i<n; i++){
if(a[i]>max){
max = a[i];
}
if(a[i]<min){
min = a[i];
}
}
printf("%d\n", max);
printf("%d\n", min);
free(a); // 释放动态分配的内存
return 0;
}
请注意,在使用动态内存分配函数malloc
动态分配内存后,使用完毕后需要使用free
函数释放内存。
希望能帮助到你!
【相关推荐】