赵丽颖李易峰情侣装:几道c语言编程题 头都大了啊 !!!

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/02 14:42:34
1. 编一程序,在有序的数列中插入若干数,每插入一个数都要求保持有序
(数组)
2.写一函数,用于判断一个数是否为“水仙花数”。所谓“水仙花数”是指一个3位数。其各位数字的立方和等于该数本身。调用该函数打印所有水仙花数。(调用函数)

谁能告诉我怎么能把c语言学好啊,我现在头脑混乱, 非常着急啊

我的qq534881711 邮箱pp_868@yahoo.com.cn

我先帮你写了个求水仙花数的程序:
#include <stdio.h>
void flowerData()
{
int a,b,c;
int data=100;
printf("flower datas are listed:\n");
for(data=100;data<1000;data++)
{
a=data%10;
b=((data-a)%100)/10;
c=((data-a-b*10)%1000)/100;
if(data==(a*a*a+b*b*b+c*c*c))
printf("%d ",data);
}
}
void main()
{
flowerData();
}
这个程序已经在tc2.0下调时通过。
最近比较忙,晚上的时候再帮你写有序插入的程序吧

回复1
提供一个插入一个数的程序,若干个数道理是一样的。
int main(void)
{
int a[11]={1,4,6,9,13,16,19,28,40,100};
int temp1,temp2,number,end,i,j;
printf("original array is:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("insert a new number:");
scanf("%d",&number);
end=a[9];
if(number>end)
a[10]=number;
else
{for(i=0;i<10;i++)
{ if(a[i]>number)
{temp1=a[i];
a[i]=number;
for(j=i+1;j<11;j++)
{temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;
}
}
}
for(i=0;i<11;i++)
printf("%5d",a[i]);
getch();
return 0;
}
______________________________________________
回复2
楼上的通过正向思维来求的,我就不重复了。我提供一个逆向思维的求法:这样更快!
#include <stdio.h>
#define R a*100+b*10+c
void sxh();
main()
{
sxh();
getch();
}
void sxh()
{
int a,b,c;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
{
if(R==a*a*a+b*b*b+c*c*c)
printf("%d is a shuixianghua shu!\n",R);
}
}

我也深受启发