akali_77_hei 2022-09-28 15:20 采纳率: 28.6%
浏览 15
已结题

c语言程序问题,无法输入

用代码块功能插入代码,请勿粘贴截图

#include<stdio.h>
#include<math.h> 

int main()
{
    int j,n,a[800004],b[8];
    scanf("%d",&n);//明文长度 
    for(j=0;j<8;j++)
        scanf("%d",&b[j]);//初始化向量 
    int i=0,z=0,num_2=0,num_16=0;
    int e[8];
    while(i<n)//输入n组 
    {
        while(z<(8*n))//分组输入 
        {
            scanf("%d",&a[z]);
            e[z]=a[z];//存储数据 
            while(a[z]/2!=0)
            {
                if(a[z]%2!=0)
                {
                    num_2++;
                    a[z]/=2;
                    }    
            }
            if(a[z]/2==0&&a[z]%2==1)
                num_2++;//1数
            a[z]=e[z]; 
            while(a[z]/16!=0)
            {
                if(a[z]%16>9)
                {
                    num_16++;
                    a[z]/=16;
                    }    
            }
            if(a[z]/16==0&&a[z]%16>9)
                num_16++;//求字母数        
            z++; 
        }
        printf("%04x%04x%04x%04x%04x%04x%04x%04x %d %d\n",e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],num_2,num_16);
        z=0,num_2=0,num_16=0;
        i++;
    }

    
 return 0;
}
运行结果及报错内容

能运行但是什么都没输入就结束了

我想要达到的结果

可以说说是什么问题吗,怎么解决

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-09-28 15:34
    关注

    a[800004]数组太大,int a[800004];放到main函数外面,成员全局变量

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月6日
  • 已采纳回答 9月28日
  • 创建了问题 9月28日