文章

16

粉丝

50

获赞

1

访问

2.9k

头像
求解答为何第一个代码运行第二次输入直接结束了
我要提问
发布于2024年3月13日 21:25
阅读数 224

已知这些整数的绝对值都小于100,每组整数的数量不少于1个,不大于20个。

输入格式

首先输入K(不小于2,不大于20)。每一行输入一组数据(至少有一组数据),每组至少有一个数据,在有多个数据时,两个数据之间有1到3个空格。最后一行输入100,标志输入的结束。

输出格式

对于每一组数据,输出其前K个数据的均值,如果该组数据个数少于K时,则输出该组所有数据的均值。输出的均值只输出整数部分,直接忽略小数部分。

出错代码:

#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main()
{
    int k,a,b,i;
    char ch;
    scanf("%d",&k);
    getchar();
    scanf("%d",&a);
    ch=getchar();
    while(a!=100)
    {  for(i=1;ch!='\n';i++)
       {
        scanf("%d",&b);
         if(i<k)
            {a=a+b;}
         ch=getchar();
       }
       if(i<k)
       {
           printf("%d\n...

登录查看完整内容


登录后发布评论

3 条评论
snake VIP
2024年3月13日 21:48

第一个代码,最后一个scanf里的变量a缺少了地址符

赞(0)

我爱陈少熙 : 回复 snake: 大佬请教一个问题; char a[10],temp; scanf("%s",a);//这里输入10个数 .........将数组逆置忽略 printf("%s",a)//这里输出结果的时候会多出一个数来,但是长度小于10的输出都没问题,这是因为啥呀

2024年3月14日 23:00

snake : 回复 我爱陈少熙: 因为你定义的char a[10];这个数组的大小就只能存储10个字符,其中还包括一个字符串的结束符号'\0',你可以把数组开大一点。

2024年3月14日 23:18