第一个题:
用选择排序法,实现连续输入任意20个数到数组中并有计数提示,对此20个数据中数组下标为偶数的数据按
从小到大的顺序进行排序并输出结果,要求只能定义一个数组。
第二道题:
编写程序,某系统设计了输入12个整数参数值存于数组和逻辑尺值,采用逻辑尺(取值0或1的位串)如001101011011
从左到右来调用函数处理,即对1、2、5、7、10个参数值(位为0)时,调用函数计算该数的因子之和;对第3、4、6、8、9
11、12参数值(位为1)时,调用函数判断该数是否是素数,是返回1,否返回0。
----------------解决方案--------------------------------------------------------
main()
{
int a[20],b,c,min;
for (b=1;b<=20;b++)
{
printf("请输入第%d个数字\n",b);
scanf("%d",&a[b-1]);
}
for (b=0;b<20;b+=2)
{
min=a[b];
for (c=b+2;c<20;c+=2)
if (a[c]<min)
{
min=a[c];
a[c]=a[b];
a[b]=min;
}
}
for (b=0;b<20;b+=2)
printf("%d ",a[b]);
}
----------------解决方案--------------------------------------------------------
初学者借用你的底盘问以下 "逻辑尺" 是什么?
----------------解决方案--------------------------------------------------------
谢谢阿第一题,可是第二题中的逻辑尺,我也不知道啥意思!
----------------解决方案--------------------------------------------------------
第一题:
#include <stdio.h>
#define N 20
void main()
{
int a[N],i,j;
int min,temp;
printf("Enter the array:\n");
for (i=0;i<N;i++)
{
printf("*****请输入第%d个数****\n",i+1);
scanf("%d",a+i);
}
printf("\n");
for (i=0;i<N-1;i++)
{
min=i;
for (j=i+1;j<N;j++)
if (a[min>a[j]])
{
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}
printf("\nThe sorted numbers:\n");
for (i=0;i<N;i++)
printf("%3d ",a[i]);
printf("\n");
}
----------------解决方案--------------------------------------------------------
第二题(仅供参考)
#include<stdio.h>
int sumyinzi(int n) //求一个数的因子和
{int i,sum=0;
for(i=1;i<=n;i++)
if(n%i==0) sum+=i;
return sum;
}
int judgeshuxu(int n) //判断是不是素数
{int i;
for(i=2;i<=n/2;i++)
if(n%i==0) break;
if(i>n/2) return 1;
else return 0;
}
main()
{char a[13];
int n[12];
int i;
scanf("%s",a); //输入用于判断的逻辑尺
for(i=0;i<12;i++) //输入12个数
scanf("%d",&n[i]);
printf("\n");
for(i=0;i<12;i++)
if(a[i]=='0') printf("sumyinzi%d=%d\n",n[i],sumyinzi(n[i]));
printf("\n");
for(i=0;i<12;i++)
if(a[i]=='1')
{
if(judgeshuxu(n[i])==1) printf("%d is a shuxu\n",n[i]);
else printf("%d is not a shuxu\n",n[i]);
}
}
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
第二题(仅供参考)
#include<stdio.h>
int sumyinzi(int n) //求一个数的因子和
{int i,sum=0;
for(i=1;i<=n;i++)
if(n%i==0) sum+=i;
return sum;
}
int judgeshuxu(int n) //判断是不是素数
{int i;
if(n==1) return 0; //加个判断n是不是等于1,不然1也变素数了
for(i=2;i<=n/2;i++)
if(n%i==0) break;
if(i>n/2) return 1;
else return 0;
}
main()
{char a[13];
int n[12];
int i;
scanf("%s",a); //输入用于判断的逻辑尺
for(i=0;i<12;i++) //输入12个数
scanf("%d",&n[i]);
printf("\n");
for(i=0;i<12;i++)
if(a[i]=='0') printf("sumyinzi%d=%d\n",n[i],sumyinzi(n[i]));
printf("\n");
for(i=0;i<12;i++)
if(a[i]=='1')
{
if(judgeshuxu(n[i])==1) printf("%d is a shuxu\n",n[i]);
else printf("%d is not a shuxu\n",n[i]);
}
}
----------------解决方案--------------------------------------------------------
回楼上,你是正确的
----------------解决方案--------------------------------------------------------