亚洲酸柠檬大使 2022-09-23 08:48 采纳率: 0%
浏览 71

为什么这个while 循环只进行了一次?

我终端只输入了一个数字就结束了,不知道为什么循环不了

#include<stdio.h>
int main(void)
{
    int num ,n=0,sum,k,j,averge;
    int list[50]; 
    int seclist[50];
    
    while((scanf("%d",num)!=0))
    
    {
        if(num%2==0)
        {
            list[n]=num;
            n++;
        }
        
        else 
        {
            seclist[k]=num;
            k++;
            
        }
    }
    for(j=0;j<=n;j++)
    {
        printf("你输入的偶数一共有%d",list[n]);
        sum += list[n] ;
    }
    averge=sum/n ;
    printf("你输入的偶数平均值是%d",averge);
    
    printf("你输入的奇数数量是:%d",k);
    
    return 0 ;
 } 

  • 写回答

4条回答 默认 最新

  • 叶落花枯 2022-09-23 09:02
    关注

    scanf接受输入的变量填的是地址,你的代码中num需要写成&num。如果是数组或指针,它们本身就是地址,接受输入才是直接填变量名字,不需要&。

    评论
  • 梦里逆天 2022-09-23 09:05
    关注
    #include<stdio.h>
    int main(void)
    {
        int num ,n=0,sum,k = 0,j,averge;
        int list[50]; 
        int seclist[50];
        
        while((scanf("%d",&num)!=EOF && num))
        {
            if(num % 2 == 0)
            {
                list[n] = num;
                n++;
            }
            else 
            {
                seclist[k]=num;
                k++;
            }
        }
        printf("你输入的偶数一共有%d个:", n);
        for(j=0; j<n; j++)
        {
            printf("%d ", list[j]);
            sum += list[j] ;
        }
        averge=sum/n ;
        printf("你输入的偶数平均值是%d\n",averge);
        
        printf("你输入的奇数数量是:%d\n",k);
        return 0 ;
     }
    
    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-23 10:02
    关注
    评论
  • __Wu__ 2022-09-25 11:30
    关注

    scanf所接受的是地址所以scanf("%d",num)应该改为scanf("%d",&num)

    评论

报告相同问题?

问题事件

  • 创建了问题 9月23日

悬赏问题

  • ¥20 arcgis制做交通拥堵时变图
  • ¥15 AD20 PCB板步线 这个要怎么步啊
  • ¥50 关于《奇迹世界》1.5版本,数据修改
  • ¥15 请问这个问题如何解决(关键词-File)
  • ¥50 visual studio 2022和EasyX图形化界面
  • ¥15 找一下报错原因,纠正一下
  • ¥50 Cox回归模型Nomogram图制作报错
  • ¥20 SQL如何查询多级用户的数据
  • ¥15 给车牌识别代码加一个识别轮廓长宽比的代码
  • ¥30 商品价格预测的transformer模型优化