在 C 中计算传递给 scanf() 的参数
Counting arguments passed to scanf() in C
有什么方法可以计算在 C 中传递给 scanf()
的参数数量吗?特别是,在通过 scanf()
分配 int
数组时。
示例:
int array[1000], i;
for(i=0;i<1000;i++)
scanf("%d",&array[i]);
我需要计算用户插入了多少个值
我认为没有内置的方法可以做到这一点,但为什么不创建一个在 scanf returns 成功时递增的计数器,否则就中断循环?
int scanf_counter = 0;
int array[1000], i;
for(i=0;i<1000;i++) {
if(scanf("%d",&array[i] > 0) {
scanf_counter++;
} else {
break;
}
}
虽然我不确定我是否完全理解你的问题,因为你总是可以通过这样做找到数组的大小
int size = sizeof(array)/sizeof(array[0])
仔细查看 scanf() 片段,因此:
包括
int main()
{
双 a[100000],mx=0;
int i,j,c=0;
printf("Enter as many numbers as you wish . Press Ctrl+D or any character to stop inputting :\n");
for(i=0;i<100000;i++)
{
if((scanf("%lf",&a[i]))==1)
c++;
//else break;
}
for(j=0;j<c;j++)
{
if(a[j]>mx) mx=a[j];
}
printf("You have inserted %d values and the maximum is:%g",c,mx);
return 0;
}
有什么方法可以计算在 C 中传递给 scanf()
的参数数量吗?特别是,在通过 scanf()
分配 int
数组时。
示例:
int array[1000], i;
for(i=0;i<1000;i++)
scanf("%d",&array[i]);
我需要计算用户插入了多少个值
我认为没有内置的方法可以做到这一点,但为什么不创建一个在 scanf returns 成功时递增的计数器,否则就中断循环?
int scanf_counter = 0;
int array[1000], i;
for(i=0;i<1000;i++) {
if(scanf("%d",&array[i] > 0) {
scanf_counter++;
} else {
break;
}
}
虽然我不确定我是否完全理解你的问题,因为你总是可以通过这样做找到数组的大小
int size = sizeof(array)/sizeof(array[0])
仔细查看 scanf() 片段,因此:
包括
int main()
{ 双 a[100000],mx=0;
int i,j,c=0;
printf("Enter as many numbers as you wish . Press Ctrl+D or any character to stop inputting :\n");
for(i=0;i<100000;i++)
{
if((scanf("%lf",&a[i]))==1)
c++;
//else break;
}
for(j=0;j<c;j++)
{
if(a[j]>mx) mx=a[j];
}
printf("You have inserted %d values and the maximum is:%g",c,mx);
return 0;
}