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 MATLAB代码求涡量
  • ¥100 采用栈和深度优先算法对我的代码进行修改显示路径
  • ¥15 pointnet2包安装
  • ¥20 射频功率问题,解答者有酬谢!
  • ¥80 构建降雨和积水的预测模型
  • ¥15 #Qt Transform setTransform()在鼠标拖动移动视角是一致在原地不动,无法变换视角(细微观察似乎视图有在原地抖动),无法变换视角(细微观察似乎视图有在原地抖动)
  • ¥50 如何利用无人机拍摄的数码照片测量鸟卵的长短径
  • ¥100 github贡献者给与奖励
  • ¥15 使用DS18B20+ESP8266获取温度数据返回-127.00
  • ¥15 odbc代码新增sqlserver数据源