注册 登录
编程论坛 新人交流区

[求助]新人C语言问题

极限堂 发布于 2007-10-23 11:30, 561 次点击

小弟刚学C语言 好多东西都不明白 现有下面几到题把我难住了 还请各位高手帮忙解答
谢谢
1.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时
   共有5个数相加),几个数相加有键盘控制。
for(i=0;i<5;i++)
{
count=0;
for(j=0;j<=i;j++){
count+=a*pow(10,j);}
sum=sum+count;
}

2.
*
*** (行数由N控制)
*****
*******
*****
***
*
再进一步打印一个空心菱形图案
*
* *
* *
           * *
* *
* *
*

3.编写一个程序,实现如下图案:
请输入一个数:5
55555
4444
333
22
1
1
22
333
4444
55555

4.
1+2!+3!+.....+10!

5.int a=5;
while(a--);
printf("%d",a);
运行结果为_________

6.int a=10,y=0;
do{
a+=2;
y+=a;
if(y>50) break;
}while(a=14);
则a,y的值是________;

13 回复
#2
极限堂2007-10-23 12:01
各位英雄帮帮忙啊
#3
TLZL2007-10-23 12:24
首先,回答第五题吧 while()a=0时,跳出循环,又因为a--; 所以a=-1;
第四题:
#include<stdio.h>
int jichen(int );
main()
{

int num=1;
int sum=0;
for(num=1;num<=10;num++)
sum=jichen(num)+sum;
printf("%d\n",sum);
}
int jichen(int k)
{
int l=1;
int total=1;
while(l<=k){
total=total*l;
l++;
}
return total;

}
算法都没有进行优化,希望楼主自己能看明白.

[此贴子已经被作者于2007-10-23 12:25:34编辑过]

#4
TLZL2007-10-23 12:30
a=16,y=60
while的循环条件是一个附值语句,所以是while循环是无限的.关键是if语句,
#5
Kid_X2007-10-23 12:47

太深奥了

#6
zhulinfeng2007-10-23 13:02
回复:(极限堂)[求助]新人C语言问题

#include <stdio.h>
#include <stdlib.h>

int Fun(int n);

int main(void)
{
int i,sum=0;

for(i=1;i<=10;i++)
{
sum+=Fun(i);
}

printf("1!+2!+...+9!+10!=%d\n",sum);

system("pause");
return 0;
}

int Fun(int n)
{
if(n==0)
{
return 1;
}
else
{
return n*Fun(n-1);
}
}

[此贴子已经被作者于2007-10-23 13:04:06编辑过]

#7
々ˇ♂夜子2007-10-23 13:44

轻轻的我来了
正如我轻轻地走
我在此作诗一首
从此不再是新手

#8
极限堂2007-10-23 13:57
以下是引用TLZL在2007-10-23 12:24:21的发言:
首先,回答第五题吧 while()a=0时,跳出循环,又因为a--; 所以a=-1;
第四题:
#include<stdio.h>
int jichen(int );
main()
{

int num=1;
int sum=0;
for(num=1;num<=10;num++)
sum=jichen(num)+sum;
printf("%d\n",sum);
}
int jichen(int k)
{
int l=1;
int total=1;
while(l<=k){
total=total*l;
l++;
}
return total;

}
算法都没有进行优化,希望楼主自己能看明白.


不太明白啊
麻烦说白一点吧
谢啦

#9
neufcl2007-10-23 14:08
以下是引用TLZL在2007-10-23 12:24:21的发言:
首先,回答第五题吧 while()a=0时,跳出循环,又因为a--; 所以a=-1;
第四题:
#include<stdio.h>
int jichen(int );
main()
{

int num=1;
int sum=0;
for(num=1;num<=10;num++)
sum=jichen(num)+sum;
printf("%d\n",sum);
}
int jichen(int k)
{
int l=1;
int total=1;
while(l<=k){
total=total*l;
l++;
}
return total;

}
算法都没有进行优化,希望楼主自己能看明白.

第四题可以这样:
void main()
{
int i=10;
int sum=0;
int j,a;
for(j=1;j<=i;j++)
{
for(k=1,a=1;k<=j;k++)
a*=k;
sum+=a;
}
}

#10
zhangyg_cn2007-10-23 14:13

给你个菱形:
2.
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main (void)
{
int i,j,num,k;
printf("input the line:\n");
scanf("%d",&num);
num=num/2*2+1;
for(i=-(num/2);i<=num/2;i++,putchar('\n'))
{
for(j=0;j<abs(i);j++,putchar(' '));
for(k=0;k<num-2*abs(i);k++,putchar('*'));
}
system("pause");
return 0;
}

#11
neufcl2007-10-23 14:14

第三题:
void main()
{
int circularnum=5,coutnum=5;
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<circularnum;j++)
printf("%d",coutnum);
printf("\n");
coutnum--;
circularnum--;
}
}

#12
极限堂2007-10-23 14:15
1、2、3题没有人能帮我吗???
#13
zhangyg_cn2007-10-23 14:21
1。2。3题不是都给你了!
没有看到吗?
#14
极限堂2007-10-23 14:30
以下是引用zhangyg_cn在2007-10-23 14:13:57的发言:

给你个菱形:
2.
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main (void)
{
int i,j,num,k;
printf("input the line:\n");
scanf("%d",&num);
num=num/2*2+1;
for(i=-(num/2);i<=num/2;i++,putchar('\n'))
{
for(j=0;j<abs(i);j++,putchar(' '));
for(k=0;k<num-2*abs(i);k++,putchar('*'));
}
system("pause");
return 0;
}




#include<stdlib.h>
这个是什么意思啊
我没学过呢~~ 晕啊
有没有简单点的啊
这个我看不懂啊
迷糊!!

1