C语言高手来,高分求几个C语言答案.

2025-01-02 18:54:53
推荐回答(4个)
回答1:

1:将1--1000中所有21的倍数存到一个一维数组中,并输出该数组的所有数据。
程序:
#include
void main()
{
int num[52],i,j=0;

for(i=1;i<1000;i++)
{
if(i%21==0)
{
num[j]=i;
j++;
}
}
for(i=0;i{
printf("%d ",num[i]);
}
printf("\n");
}
输出结果:
21 42 63 84 105 126 147 168 189 210 231 252 273 294 315 336 357 378 399 420 441
462 483 504 525 546 567 588 609 630 651 672 693 714 735 756 777 798 819 840 861
882 903 924 945 966 987
Press any key to continue...

2:写一个函数判断一个正整数是否为偶数,在主函数中用scanf输入正整数m,调用函数后,根据函数返回值判断这个正整数是否为偶数,若是则输出“yes”,否则输出“no”
程序:
#include
void main()
{
void function(int n);
int n;
printf("输入一个正整数:");
scanf("%d",&n);
function(n);
}
void function(int n)
{
if(n%2==0)
printf("此整数为偶数\n");
else
printf("此整数为奇数\n");
}
输出结果两种情况:
(运行两次)
第一种输入输出:
输入一个正整数:77
此整数为奇数
Press any key to continue...

第一种输入输出:
输入一个正整数:42
此整数为偶数
Press any key to continue...

3:输入一个M*N二维数组,求该二维数组所有靠外侧的元素之和。要求M和N用#define 进行定义
程序:
#include
#define M 4
#define N 6
void main()
{
int a[M][N];
int i,j;
float sum=0;
printf("请输入此二维数组各元素的值\n");
for(i=0;i for(j=0;j {
printf("a[%d][%d]:",i,j);
scanf("%d",&a[i][j]);
}

printf("你所输入的二维数组为:\n");
for(i=0;i for(j=0;j {
printf("%d ",a[i][j]);
if((j+1)%N==0)
printf("\n");

}

for(i=0;i {
if(i<(M-1)&&i>0)
{
sum=sum+a[i][0];
sum=sum+a[i][N-1];
}
for(j=0;j {
if(i==0)
sum=sum+a[i][j];
else if(i==(M-1))
sum=sum+a[i][j];
}
}
printf("外侧的和为:%.3f\n",sum);
}

输出结果:
请输入此二维数组各元素的值
a[0][0]:44
a[0][1]:55
a[0][2]:87
a[0][3]:34
a[0][4]:76
a[0][5]:56
a[1][0]:35
a[1][1]:56
a[1][2]:33
a[1][3]:77
a[1][4]:45
a[1][5]:35
a[2][0]:88
a[2][1]:45
a[2][2]:34
a[2][3]:12
a[2][4]:78
a[2][5]:56
a[3][0]:34
a[3][1]:43
a[3][2]:77
a[3][3]:98
a[3][4]:31
a[3][5]:12
你所输入的二维数组为:
44 55 87 34 76 56
35 56 33 77 45 35
88 45 34 12 78 56
34 43 77 98 31 12
外侧的和为:861.000
Press any key to continue...

4:写一个函数计算两个正整数的最小公倍数,在主函数中用scanf输入m,n两个正整数,调用函数后,打印这两个正整数的最小公倍数
程序:
#include
void fun(int m ,int n)
{
int min;
int i; //最小公倍数
if(melse min=n;
for(i=min;!(i%m==0&&i%n==0);i++);
printf("最小公倍数为:%d\n",i) ;
}
void main()
{
int m,n;
printf("输入第一个整数:");
scanf("%d",&m);
printf("输入第二个整数:");
scanf("%d",&n);
fun(m,n);
}

输出结果:
输入第一个整数:6
输入第二个整数:8
最小公倍数为:24
Press any key to continue...

回答2:

1、
#include

void main()
{
int i=1;
int j=0;
int temp[1000/21];
for (i=1;i<=1000;i++)
{
if(((i%21)==0)&&(i!=0))
{ temp[j]=i;
j++;
}
}
while(j--)
printf("%d ",temp[j]);
}

2、
#include

void ModEven(int a)
{
if((a%2==0)&&(a>0))
printf("yes\n");
else
printf("no\n");
}

void main()
{
int data;
printf("input \n");
scanf("%d",&data);
ModEven(data);
}

3、
#include
#define M 3
#define N 3

void main()
{
int i,j;
float sum=0;
float a[M][N];
printf("input the data\n");
for(i=0;i for(j=0;jscanf("%f", &a[i][j]);

for(j=0;jsum=sum+a[0][j];

for(j=0;jsum=sum+a[M-1][j];

for(i=1;isum=sum+a[i][0];

for(i=0;isum=sum+a[i][N-1];

printf("sum is %f\n",sum);
}
4、
#include

int common(int m,int n)
{
int m_cup, n_cup, res; /*被除数, 除数, 余数*/
if (m > 0 && n >0)
{
m_cup = m;
n_cup = n;
res = m_cup % n_cup;
while (res != 0)
{
m_cup = n_cup;
n_cup = res;
res = m_cup % n_cup;
}
return(m * n / n_cup);
}
}

void main()
{
int data1,data2;
int common_data;
printf("input data1 data2 \n");
scanf("%d %d",&data1,&data2);
common_data=common(data1,data2);
printf("%d",common_data);
}
编吐血了。。。。。

回答3:

1;//1000/21=47,即共有47个数
#include
void main()
{
int i,a[47];
for(i=1;i<=n;i++)
a[i-1]=21*i;
for(i=0;i<47;i++)
printf("%d ",a[i]);
}
//其实这个题都可以直接输出来的
2、
#include
int IsEven(unsigned x)
{
if(x%2)
return 0;
return 1;
}
void main()
{
unsigned n;
scanf("%d",&n);
if(IsEven(n))
printf("Yes\n");
else
printf("No\n");
}

3、
#include
#define M 3;
#define N 3;
void main()
{
int a[M][N];
int i,j,sum=0;
printf("请输入%d个数\n",M*N);
for(i=0;i for(j=0;j scanf("%d",&a[i][j]);
for(i=0;i sum+=a[0][i]+a[N-1][i]; //第一行和最后一行的和
for(i=0;i sum+=a[i][0]+a[i][N-1]; //第一列和最后一列的和
sum-=a[0][0]+a[0][N-1]+a[M-1][0]+a[M-1][N-1]; //减去多算的四个角的四个数
printf("%d\n",sum);
}
4、
#include
int maxmul(int m,int n) //先求最大公约数
{
if(m%n==0)
return n;
else
return maxmul(n,m%n);
}
int minmul(int m,int n)
{
return m*n/maxmul(m,n); //最小公倍数等于m*n除以最大公约数
}
void main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d\n",minmul(m,n));
}

回答4:

1
void ontimes()
{
int a[1000];
int k=0;
for(int i=0;i<1000;i++)
if(i%21==0) a[k++]=i;
for( i=0;iprintf("%d",a[i]);
}

2
bool judge(int a)
{
if(a%2==0) return true;
else return false;
}
void main()
{
int a;
scanf("%d",a);
bool b;
b=judge(a);
if(b) printf("y");
else printf("n");
}

4
void fun(int a ,int b)
{
int min;
int sum=1;
if(aelse min=b;
for(int i=1;iif(a%min==0&&b%min==0)
sum=sum*min;
a=a/sum;
b=b/sum;
sum=sum*a*b;
printf("%d",sum)
}
void main()
{
int m,n;
scanf("%d,%d",m,n);
fun(m,n);
}