求解两道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以内所有的完数。
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,求大神讲解啊
程序可以编译通过也可以执行,但是上面的while只运行一次,fscanf也没有把文件里的数据写到tmp里,tmp的值还是0,不知道为什么啊
追答fp=fopen(FILENAME,"a+")
建议看看打开模式,你打开的时候好像已经在文件尾了
以上是关于求解两道C语言的编程的主要内容,如果未能解决你的问题,请参考以下文章