不行啊,是输入若干个数,然后输出其中各位数之和为九的数,求大神再赐教
追答你的意思是说100到n中的n是在编译的时候决定的吗,并且所谓的若干个是指输入的数据个数是不确定的(即输入了多少个就多少个)的吗?如果是的话以下程序将满足你的要求;
当然有更好的算法,但是涉及动态内存分配、结构体和链表,如果楼主能看的明白也可以给出来。
要注意的是这个程序在输入时要一口气输入所有要输入的数据比如“107 207 108 801 456 123 603 306 504 789”,由于gets()函数的特性,空格会作为有效字符输入的,结果就是按下回车键后程序马上开始分析计算了
#include
#define N 1000
int a[N-100];
int main()
{
int re,x,i,j,sum,s;
char *str;
printf("请输入若干个小于%d的数,并用空格隔开:\n",N);
gets(str);
for (x=0;*str!='\0';str++) {
if (*str>='0' && *str='0' && *str=100 && a[i]<=N) {
for (s=0,j=a[i];j!=0;) {
re=j%10;
s=s+re;
j=j/10;
}
if (s==9) {
printf("%d ",a[i]);
sum=sum+a[i];
}
}else{
printf("输入有误");
}
}
printf("\n The sum of them is: %d",sum);
return 0;
}
望采纳