一、对一组随机整数编写方法实现以下操作:
1.使用随机类产生20个10000以内的随机整数。
2.输出一组整数,每行输出5个整数,每个整数占8个字符宽度,整数实现右对齐。
3.求一组整数的最大值。
4.求一组整数的平均值。
5.输出低于平均值的一组整数,格式同1。
6.对一组整数进行升序排序,并输出。
7.查找指定整数的在一组整数中的位置(从0开始计算)。
8.在一组整数中指定位置(从0开始计算)插入指定整数,并输出插入后的这组整数。
9.在主方法中调用1-8的方法,检查方法的正确性。
二、编写调用方法实现字符串的逆序输出。
三、判断一个字符串是否是回文(abcba或abccba都是回文)
四、张三、李四、王五、刘六的年龄成一等差数列,他们四人的年龄相加是26,相乘是880,输出以他们的年龄为前4项的等差数列的前20项。
五、爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问这条阶梯共有多少阶?
四五两题已解决,请问前三题怎么用函数写代码?
哦,太感谢了!
#include <stdio.h>
#include<time.h>
#include<stdlib.h>
int tab[21];
void print(int num)
{
int i=0,j=0;
for(i=0;i<num;i++)
{
printf("%8d",tab[i]);
j++;
if(j%5==0)
putchar('\n');
}
putchar('\n');
}
void init(void)
{
int i=0,j=0;
srand((unsigned)time(NULL));
for(i=0;i<20;i++)
tab[i]=rand()%10000;
printf("\n排序前元素值:\n");
}
void exchange(int*a,int*b)
{
int temp=0;
temp=*a;
*a=*b;
*b=temp;
}
void sort()
{
int i=0,j=0;
for(i=0;i<19;i++)
{
for(j=i+1;j<20;j++)
if(tab[i]>tab[j])
{
exchange(&tab[i],&tab[j]);
}
}
}
void find(int beg,int end,int num)
{
int mid=0;
while(beg<=end)
{
mid=(beg+end)/2;
if(tab[mid]==num)
{
printf("第%d个元素是要找的元素\n",mid);
break;
}
else if(tab[mid]<num)
{
beg=mid+1;
}
else
{
end=mid-1;
}
}
if(beg>end)
{
printf("查找失败!\n");
}
}
void insert(int i)
{
int j=0,k=0;
for(j=0;j<20;j++)
{
if(i<tab[j])
break;
}
for(k=20;k>j;k--)
{
tab[k]=tab[k-1];
}
tab[j]=i;
}
int main()
{
int i=0,j=0,max=0;
double aver=0;
max=tab[0];
init();
print(20);
for(i=0;i<20;i++)
{
if(tab[i]>max)
max=tab[i];
aver+=tab[i];
}
aver/=20;
printf("最大值:%d 平均值:%f \n",max,aver);
j=0;
printf("小于平均值元素:\n");
for(i=0;i<20;i++)
{
if(tab[i]<aver)
{
printf("%8d",tab[i]);
j++;
if(j%5==0)
putchar('\n');
}
}
putchar('\n');
sort();
printf("排序后元素值:\n");
print(20);
find(0,19,tab[10]);
insert(2000);
print(21);
return 0;
}
第二题:
#include <stdio.h>
#include<string.h>
void nixu(char *p)
{
int len;
char c;
char*q=NULL;
len=strlen(p);
q=p+len-1;
while(p<q)
{
c=*p;
*p=*q;
*q=c;
p++;
q--;
}
}
void main()
{
char str[100];
gets(str);
puts(str);
putchar('\n');
nixu(str);
puts(str);
putchar('\n');
}
第三题:
#include <stdio.h>#include<string.h>
void main()
{
int i=0,len=0;
char str[100];
gets(str);
puts(str);
len=strlen(str);
putchar('\n');
for(i=0;i<len;i++)
{
if(str[i]!=str[len-1-i])
break;
}
if(i==len)
printf("是回文字符串\n");
else
printf("不是回文字符串\n");
putchar('\n');
}
追问
看了你的代码,我受益匪浅,不过在看到之前结束了问题,很抱歉,怎么才能把悬赏给你呢?
追答这个我还真不知道。如过你已经给其他人了应该就不能重新给我了。不过你可以再提一个问题我帮你解答一下。
追问第一题重新提了一下,可以搜到(一、对一组随机整数编写方法实现以下操作
2012-11-23 18:02提问者:钱坡|悬赏分:70|浏览次数:43次)
搜不到啊。找到的还是这一题。你把链接给我吧。
追问电脑/网络 >
编程语言 >
C/C++ >
按关键词查找:对一组随机整数编写方法实现
四五两题已解决,请问前三题怎么用函数写代码?