求解两道C语言的编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求解两道C语言的编程相关的知识,希望对你有一定的参考价值。

第一题:求S=a+aa+aaa+aaaa+a....a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有五个数相加),几个数相加有键盘控制。
第2题:一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如6=1+2+3。编程找出1000以内所有的完数。

#include "stdio.h"
void main()

int sum,s,a,num,i;
s=0;
sum=0;
printf("请输入几个数相加");
scanf("%d",&num);
printf("请输入a的值");
scanf("%d",&a);
for(i=0;i<num;i++)

s+=a;
sum+=s;
a=a*10;

printf("结果是%d",sum);


这是第一题
#include "stdio.h"
void main()

int num,i,s;
s=0;
for(num=1;num<=1000;num++)

for(i=1;i<num;i++)
if(num%i==0)s+=i;
if(num==s)
printf("%d\n",num);
s=0;


这个是第二题
都可以执行出来,你可以调试一下,如果觉得可以加分哈
参考技术A 1
#include <stdio.h>
void main()
int a,n,i,num,sum;
scanf("%d %d",&a,&n);
num=a;
for(sum=0,i=0;i<n;num=num*10+a,i++)
printf("%d",num);
if(i<n-1)
printf("+");
sum+=num;

printf("=%d\n",sum);


2
#include <stdio.h>
void main()
int i,n,sum;
for(n=1;n<1000;n++)
for(sum=0,i=1;i<n;i++)
if(n%i==0)
sum+=i;
if(sum==n)
printf("%d\n",n);

参考技术B 第二道简单,注意下细节就好了,第一道单单是根据题目的要求的话就要考虑到大数定理,用数组来存放一个比较大的比如说一个1000位的数(这里就可以每一位都不是相同),用常用的类型是肯定存放不下的 。楼上的应该不行吧,当num大到超过int的范围的时候就会出错的

Qt编程遇到的问题,我在qt中直接使用C语言的程序片段,有问题 ,求解

#include.........int tmp=0;QList<qreal> Data;... if((fp=fopen(FILENAME,"a+"))==NULL)
printf("file open error !");
exit(0);

while( ! feof(fp))
fscanf(fp,"%d",&tmp);
Data.append(tmp);

fclose(fp);
....

Qt中可以直接使用C的文件操作函数吗?feof()和fscanf()好像没有用啊?没用过Qt,求大神讲解啊

参考技术A 改成C++肯定是可以的~,至于C,还真没在QT里面写过~ 参考技术B 可以的, Qt 支持标准C追问

程序可以编译通过也可以执行,但是上面的while只运行一次,fscanf也没有把文件里的数据写到tmp里,tmp的值还是0,不知道为什么啊

追答

fp=fopen(FILENAME,"a+")
建议看看打开模式,你打开的时候好像已经在文件尾了

本回答被提问者采纳

以上是关于求解两道C语言的编程的主要内容,如果未能解决你的问题,请参考以下文章

跪求C语言大神!!两道题。!!

两道C编程问题

我有两道c语言题要做,应该不难,请各位大神帮忙

C语言这两道题加了static跟没加的有什么区别?

c语言编程题目求解

求高手,两道c语言编写题