m0_73521869 2022-10-18 21:01 采纳率: 78.3%
浏览 34
已结题

这个不对,不对,不对

img


#include<stdio.h>
int a[20][100];
int main(){
int shu=0;

int x,y=0,z=0;int i=0,n=0;
scanf("%d",&x);

for(;i<=19;i++)
{
    for(n=0;n<=99;n++)
    {
        scanf("%d",&a[i][n]);
        if(a[i][n]==0||a[i][n]==-1) break;}
if(a[i][n]==-1) break;}

while(a[y][z]!=-1){
    while(a[y][z]!=0)
    {int kl=z+1; while(a[y][kl]!=0&a[y][z]!=0){if(a[y][z]*x==a[y][kl]||a[y][kl]*x==a[y][z]) shu++;kl++;}z++;
    }z=0;if(y!=i-1)
    printf("%d\n",shu);
    if(y==i-1) printf("%d",shu);
    y++;shu=0;
}
if(a[0][0]==-1) printf("0");

}

#include<stdio.h>
int a[20][100];
int main(){
int shu=0;

int x,y=0,z=0;int i=0,n=0;
scanf("%d",&x);

for(;i<=19;i++)
{
    for(n=0;n<=99;n++)
    {
        scanf("%d",&a[i][n]);
        if(a[i][n]==0||a[i][n]==-1) break;}
if(a[i][n]==-1) break;}

while(a[y][z]!=-1){
    while(a[y][z]!=0)
    {int kl=z+1; while(a[y][kl]!=0&a[y][z]!=0){if(a[y][z]*x==a[y][kl]||a[y][kl]*x==a[y][z]) shu++;kl++;}z++;
    }z=0;if(y!=i-1)
    printf("%d\n",shu);
    if(y==i-1) printf("%d",shu);
    y++;shu=0;
}
if(a[0][0]==-1) printf("0");

}

  • 写回答

2条回答 默认 最新

  • 关注

    需要双层for循环遍历
    运行结果:

    img

    代码:

    #include <stdio.h>
    
    int a[100]; //记录所有数据
    int nmb[20]; //记录每组数据的个数
    int main()
    {
        int i, j, n = 0, t = 0;//n记录数据的组数
        int x;
        int flag = 1;
        scanf("%d", &x); //x表示倍数
        while (1)
        {
            t = 0;
            while (1)
            {
                scanf("%d", &a[t]);
                if (a[t] == 0)
                    break;
                if (a[t] == -1)
                {
                    flag = 0;//结束所有读入
                    break;
                }
                t++;
            }
            if (flag == 0)//结束循环
                break;
            nmb[n] = 0;
            //开始判断
            for (i = 0; i < t; i++)
            {
                for (j = 0; j < t; j++)
                {
                    if (a[i] % a[j] == 0 && a[i] / a[j] == x) //能够整除
                        nmb[n]++;
                }
            }
            n++;
        }
        //最后统一输出
        for (i = 0; i < n; i++)
        {
            if(i<n-1)
                printf("%d\n", nmb[i]);
            else
                printf("%d", nmb[i]);
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月27日
  • 已采纳回答 10月19日
  • 创建了问题 10月18日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵