为什么输入后得不到数据呢?是我输入有问题吗?
#include
int main()
{
int a[20];
int i;
for (i = 0; i < 20; i++)
{
scanf_s("%d ", &a[i]);
}
int sum = 0;
int n = 20;
for (i = 0; i < 20; i++)
{
if (a[i] > 0)
{
printf("%d", a[i]);
sum += a[i];
n--;
}
}
printf("%d\n", n);
printf("%0.2f", sum);
return 0;
}
空格去掉,因为输入数据有的以空格分隔,有的以换行分隔
你要么写两个循环,前面10个空格分隔,中间getchar读入一个换行,后面再空格分隔
或者直接去掉空格,那么空格、换行、制表符都可以用作分隔符
题目中输入为整形数,应该考虑0位输入时的情况。楼主的输入没有问题,帮你改良的代码如下:
int main()
{
int a[20];
int i;
for (i = 0; i < 20; i++)
{
scanf_s("%d", &a[i]);
}
int CountPlus = 0,CountMins = 0;
float Sum = 0;
for (i = 0; i < 20; i++)
{
if (a[i] < 0)
{
CountMins += 1;
}
else if (a[i] > 0)
{
Sum += a[i];
CountPlus += 1;
}
}
float fMean = Sum / CountPlus;
printf("负数的个数为:%d\n", CountMins);
printf("整数的均值为:%0.2f", fMean);
return 0;
}
输如输出结果如下:
#include <stdio.h>
int main()
{
int i, n = 0, num = 0;
int a[20] = { 0 };
double sum = 0;
for (i = 0; i < 20; i++)
{
scanf_s("%d", &a[i]);
if (a[i] < 0)
{
num++;
}
if (a[i] > 0)
{
sum += a[i];
n++;
}
}
printf("%d %.2f", num, sum / n);
return 0;
}
```
scanf在定义那栏有什么,在输入时也必须要有,否则无法识别,如你在scanf("%d ") 那在输入数字后 需要按一下 空格 符合输入的格式 ,正确的做法是 删除空格 后 可以正常进行数字的输入