问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言编写 输入一组正整数(数量小于20),输出其最大公约数。 输入:121 33 44 11 1111 输出:11

发布网友 发布时间:2022-07-24 10:00

我来回答

5个回答

热心网友 时间:2023-10-09 02:23

#include<stdio.h>

int main(int argc,char **argv)
{
    int a[20];
    int inputnum=0,i,j;
    int min_num;
    int flag=0;
    int rtn=0;


    printf("你想求几个数的公约数?\n");
    scanf("%d",&inputnum);
    if(inputnum<2 || inputnum >20)
    {
        printf("数的个数应大于2个小于20个!\n");
return 0;
    }
    printf("input %d numbers:\n",inputnum);
    /*for(i=0;i<inputnum;i++)
    {
printf("now,input the %d number:",i+1);
        scanf("%d",&a[i]);
    }*/
for(i=0;i<inputnum;i++)
{
scanf("%d",&a[i]);
printf("a[%d]=%d\n",i,a[i]);
}
    min_num=a[0];
    for(i=0;i<inputnum;i++)
    {
        if(min_num>a[i])
        {
            min_num=a[i];        //找到最小的数
        }
    }
    for(i=1;i<=min_num;i++)
    {
        for(j=0;j<inputnum;j++)
        {
            if(a[j] % i==0)

                {flag++;}
        }
            if(flag==inputnum)
            {
                rtn=i;
            }
            flag=0;
    }
    
    printf("最大公约数是:%d\n",rtn);
    return 0;
}

测试过了,没什么问题。望采纳。

热心网友 时间:2023-10-09 02:23

#include <stdio.h>
int maxdivsor(int m,int n)//求m和n的最大公因子
{
    int t;
    if(m<n)//交换m和n
    {
        t=m; m=n; n=t;
    }
    t=m%n;
    while(t!=0)
    {
        m=n;
        n=t;
        t=m%n;    
    }
    return n;
}
int main()
{
    int a[20]={0};
    int i;
    int cdiv;//最大公因子
    printf("请输入20个正整数,中间用空格隔开:");
    for(i=0;i<20;i++)
        scanf("%d",&a[i]);
    cdiv=maxdivsor(a[0],a[1]);
    for(i=2;i<20;i++)
        cdiv=maxdivsor(cdiv,a[i]);
    printf("这20个正整数的最大公因子为:%d\n",cdiv);
    return 0;
}

热心网友 时间:2023-10-09 02:23

#include <stdio.h>

int main(int argc, const char * argv[])

{

int a[20];

for (int i=0; i<20; i++) {

printf("请输入第%d个整数:",i+1);

scanf("%d",&a[i]);

printf("\n");

}

int min=a[0];

for (int i=1; i<20; i++) {

if (min>a[i]) {

min=a[i];

}

}

int maxCommom=1;

int recyeCount=0;//循环次数

for (int j=2; j<=min; j++) {

for (int i=0; i<20; i++) {

if (a[i]%j!=0)//说明不可以除尽

{

break;//跳出循环

}

else

{

recyeCount++;

}

if (recyeCount==5) {

recyeCount=0;

maxCommom=j;//最大公约数

}

}

if (j==min) {

break;

}

}

printf("最大公约数是%d\n",maxCommom);

return 0;

}

热心网友 时间:2023-10-09 02:24

# include<iostream.h>
//我习惯用C++的输入输出,你不喜欢的话可以改掉

void f()
{
int A[20],count=0; //A为存储数据的数组,count用来记录输入的数据个数。

int data;
cin>>data; //这里可以换成scanf

while(data!=0) //输入数据 以0作为结束

{
A[count]=data;
count++;
cin>>data;
}
int result=A[0],tmp;

for(int i=1;i<count;i++)
{
for(int j=A[i];j>0;j--)
{
if(result < j) continue;
if(result%j==0 && A[i]%j==0)
{
result=j;
break;
}
}
}
cout<<result; //这里可以换成printf

}

int main()
{
f();
return 0;
}追问这个题就是这样,不能以0为结束,数据要求很严格,随便加结束符会不能通过的

追答//改过了 应该能满足你的要求 回车直接就能得到结果了
# include
void f()
{
int A[20],count=0;
int data;
char ch;
cin>>data;
cin.get(ch);
while(ch!='\n')
{
A[count]=data;
count++;
cin>>data;
cin.get(ch);
}
int result=A[0];
for(int i=1;i0;j--)
{
if(result < j) continue;
if(result%j==0 && A[i]%j==0)
{
result=j;
break;
}
}
}
cout<<result;
}

int main()
{
f();
return 0;
}

热心网友 时间:2023-10-09 02:25

华为机试么是吧 西电的?我也参加,这是完全ok的程序,拿走吧

#include<iostream>
using namespace std;

int main()
{
int a=0;
cin>>a;
int b[20];
for(int l=0;l<a;l++)
{
cin>>b[l];
}
for(int i=0;i<a;i++)
for(int j=1;j<a-i;j++)
{
if(b[j]<b[j-1])
{
int temp=b[j];
b[j]=b[j-1];
b[j-1]=temp;
}
}
cout<<b[0];
int h=b[0];
int k=0;
for(;h>=1;h--)
{
for(k=0;k<a;k++)
{
if(b[k]%h!=0)
break;
}
if(k==a)
break;
}
cout<<h;
}追问你刚开始输入a了,题目没有要求呀,这样写行吗

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机系统怎么更新(手机系统怎么更新到最新版本) 手机操作系统怎么升级最新版本呢 ...一下有没有那种模仿声音的东西,自己给老班打电话时发出的时成年人声... ...经纬线的说法,正确的是( )A.纬线是与地轴垂直并环绕地球的半圆B... 下列有关纬线的说法,正确的是( )A.所有纬线长度都相等B.纬线都是半 ... 下列有关经纬线的说法,错误的是( )A.地球仪上能画无数条经线B.所有纬 ... 关于纬线和纬度的叙述,不正确的是( )A.纬线指示南北方向B.北纬用“N... 纬线的特征中说法错误的是( ) A.所有纬线相互平行 B.纬线等长 C.同一纬... 下列关于纬线的说法,不正确的是( )A.所有纬线都自成圆圈B.纬线长度都... 关于纬线的说法,错误的是( ) A.纬度越高,纬线越短 B.纬线都是圆圈 C... 为什么我对数据框中某些数值赋值失败了 在windows\temp\ 下每分钟会出现6个IME***.tmp文件 - 信息提示 父姓高,母姓贺,给孩子起名高佳贺,好听吗? 学生开学是买洗手液还是买酒精? 五羊本田小公主电喷版怎么没脚启动杆?可以加吗麻烦不?电喷如果以后想改化油器的话,好改吗?需要什么配 五羊本田酷睿六代怎么没有脚踩启动杆,问题大不大呀 五羊本田100电喷有没有启动拐 大气压在生活中的应用 体现大气压的生活现象 只有一套住房,法院有权强制执行或者拍卖吗? 还有哪些现象能说明了“大气压的存在”?请你根据生活经验或设计实验证明。(举2个例子) 只有一套住房法院可以强制拍卖吗 马来酸曲美布汀片靠什么的药 林陈姓氏半天下指哪个省份 我的手机丢了手机号绑定了怎么解除 王者荣耀打什么英雄容易躺赢 OPPR9和R9s一样外壳和钢化膜一样吗? r9和r9s的膜通用吗 请问R9s和sk的钢化膜通用吗 马来酸曲美布汀片能治胃病吗 孩子交不起学费怎料当过兵的爷爷不简单竟连军方惊动了是什么电视剧? 爷爷病重孙子没钱上学惊动了军方那个电视叫什么? 孙子上学交不出学费 爷爷被迫交出功勋章是什么连续剧? 马来酸曲美布汀片是怎样服用的呢? 梦见家里被人搞乱七八糟还有躺着一个死人好像是老公发脾气把家里打烂了一点东西,然后出门办事回,看见家 梦见一位老人把我们家搞得乱七八糟的 山东曹县移动短信中心号码是多少?拜托了各位 谢谢 在得物上买鞋到之后。鞋子后面蓝色带子如何不用剪刀取下来。- 问一问 比亚迪FO遥控器电池什么样的? 我win7系统关机时总显示等待后台程序关闭,那位高手帮忙解决一下~! 失眠便秘咋办 长期便秘经常失眠怎么办 长期便秘和失眠怎么办 我的表上写的YISHI这是什么牌子?有名没? 西铁城手表基本都在什么价格区间 经济增加值等同于净利润吗 经济附加值的公司治理 翻领T恤适合50岁以上的女人吗? 翻领T恤适合怎样的人穿,圆领适合怎样的人?