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

1:将1--1000中所有21的倍数存到一个一维数组中,并输出该数组的所有数据。
2:写一个函数判断一个正整数是否为偶数,在主函数中用scanf输入正整数m,调用函数后,根据函数返回值判断这个正整数是否为偶数,若是则输出“yes”,否则输出“no”
3:输入一个M*N二维数组,求该二维数组所有靠外侧的元素之和。要求M和N用#define 进行定义
4:写一个函数计算两个正整数的最小公倍数,在主函数中用scanf输入m,n两个正整数,调用函数后,打印这两个正整数的最小公倍数
真的很急,谁要是一下子给我4个正确的答案,可以给你150分谢谢

1:将1--1000中所有21的倍数存到一个一维数组中,并输出该数组的所有数据。
程序:
#include <stdio.h>
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<j;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 <stdio.h>
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 <stdio.h>
#define M 4
#define N 6
void main()
{
int a[M][N];
int i,j;
float sum=0;
printf("请输入此二维数组各元素的值\n");
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{
printf("a[%d][%d]:",i,j);
scanf("%d",&a[i][j]);
}

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

}

for(i=0;i<M;i++)
{
if(i<(M-1)&&i>0)
{
sum=sum+a[i][0];
sum=sum+a[i][N-1];
}
for(j=0;j<N;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 <stdio.h>
void fun(int m ,int n)
{
int min;
int i; //最小公倍数
if(m<n) min=m;
else 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...
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-06-04
1、
#include<stdio.h>

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<stdio.h>

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<stdio.h>
#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<M;i++)
for(j=0;j<N;j++)
scanf("%f", &a[i][j]);

for(j=0;j<N;j++)
sum=sum+a[0][j];

for(j=0;j<N;j++)
sum=sum+a[M-1][j];

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

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

printf("sum is %f\n",sum);
}
4、
#include<stdio.h>

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);
}
编吐血了。。。。。本回答被提问者采纳
第2个回答  2008-06-04
1;//1000/21=47,即共有47个数
#include <stdio.h>
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 <stdio.h>
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 <stdio.h>
#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<M;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
for(i=0;i<N;i++)
sum+=a[0][i]+a[N-1][i]; //第一行和最后一行的和
for(i=0;i<M-1;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 <stdio.h>
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));
}
第3个回答  2008-06-04
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;i<k;i++)
printf("%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(a<b) min=a;
else min=b;
for(int i=1;i<min/2;i++)
if(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);
}
相似回答