c语言-C语言输入n(n<=600)自然数,求解满足下列条件的1等差数列公差为1数列,2各项的和为n

问题描述

C语言输入n(n<=600)自然数,求解满足下列条件的1等差数列公差为1数列,2各项的和为n

#include
int found(int a[][30],int n)
{

int row=0,col=0,presum=0;
int i,j;
for(i=1;i<=n;i++)
{
for(j=i;j<=n;j++)
{

presum+=j;
if(presum<=n)
{

a[row][col]=j;
col++;
}
if(presum==n)
{

row++;
break;
}
if(presum>n)
break;

}
      presum=0;
      col=0;
}
for(i=0;i<=row;i++)
{
    for(j=0;j<30;j++)
        if(a[i][j]!=0)
        printf("%d ",a[i][j]);
    printf("n");
}

return row;

}
int main()
{
int a[20][30]={0},i,j;
int n;
for(i=0;i<20;i++)
for(j=0;j<30;j++)
a[i][j]=0;
scanf("%d",&n);
i=found(a,n);
return 0;
}
例如输入:500
输出:
8 9 10 11 12 13 14 15....32
59 60 61 ...66
98 99 100 101 102
500
为什么我的代码达不到,我想要的效果!求大神指错啊!

解决方案

这个问题我回答过,自己去看吧
http://ask.csdn.net/questions/162483

时间: 2024-09-20 17:57:53

c语言-C语言输入n(n&amp;lt;=600)自然数,求解满足下列条件的1等差数列公差为1数列,2各项的和为n的相关文章

turbo c语言中一次性输入一个数组

问题描述 turbo c语言中一次性输入一个数组 请问turbo c语言中能不能一次性输入一个数组,是不是要用循环?没有学过循环怎么解决? 解决方案 那就学循环呗 比如 int arr[10]; for (int i = 0; i < 10; i++) scanf("%d", arr[i]);

c语言/c++回答输入学号,名字(字符串),分数,按分数排序

问题描述 c语言/c++回答输入学号,名字(字符串),分数,按分数排序 今天举行了一场比赛,邀请大一的学生参加比赛,实际来了m个学生,当他们做好自己的位置的时候,一个老师小z按照顺序登记他们的信息(学号,姓名),当他们比赛完之后按照小z登记的信息填写他们的成绩:现在问题来了,小z只记录大一同学的成绩,不知道排名,但小z想知道他们的排名,他很苦恼,聪明的你帮他写个程序解决一下吧. 输入 第一行是一个整数T表示测试数据的组数 每组测试数据的第一行 有一个整数m(m<=100)表示大一比赛的人数,之后

printf-c语言去除控制台输入字符串的空格

问题描述 c语言去除控制台输入字符串的空格 #include void f(char *); int main(void) { char str[100]; scanf("%s", str); f(str); return 0; } void f(char *str) { char str1[100]; int i = 0, j = 0; while(str[i] != '') { if(str[i] != ' ') { str1[j] = str[i]; j++; } i++; }

c语言-C语言,统计输入正文中每个数字字符,英文字符和其他字符出现的次数,以EOF结束

问题描述 C语言,统计输入正文中每个数字字符,英文字符和其他字符出现的次数,以EOF结束 #includeint main(){ char c; int ix[]={000000000000};for(;;){ c=getchar(); if(c=='0')x[0]+=1; else if(c=='1')x[1]+=1; else if(c=='2')x[2]+=1; else if(c=='3')x[3]+=1; else if(c=='4')x[4]+=1; else if(c=='5')x

求问c语言中如何输入这样的形式,很简单的求回答

问题描述 求问c语言中如何输入这样的形式,很简单的求回答 输入1 2 23 45 23 34 这样的形式, 很简单,但是我一时想不到,求解答,菜鸟求帮助 解决方案 int a; int b; printf("%d %dn",a,b); 解决方案二: 看不懂你输入的内容有什么规律,如果只是想连同空格一起输入,那直接在控制窗口敲空格就行,编译器读取流时若发现空格不是想要读取的内容,会自动跳过.

c语言-(C语言)我只输入了下面第一个代码,然后出现了第二个文件及代码,这是怎么回事_(:з」∠)_求助

问题描述 (C语言)我只输入了下面第一个代码,然后出现了第二个文件及代码,这是怎么回事_(:з」∠)_求助 #include #include int main() { const double pi = acos(-1.0); double r,h,s1,s2,s; scanf("%lf%lf",&r,&h); s1 = pi*r*r; s2 = 2*pi*r*h; s = s1*2.0 + s2; printf("Area = %.3fn",s)

c语言-C+语言从键盘输入3个整数,按照大小顺序从小到大输出,请问怎么写啊

问题描述 C+语言从键盘输入3个整数,按照大小顺序从小到大输出,请问怎么写啊 C+语言从键盘输入3个整数,按照大小顺序从小到大输出,请问怎么写啊 解决方案 http://zhidao.baidu.com/link?url=KV6HAUin520rFQztBsInzhjnHWEquwaXs95AtGd3qJ4ZL2swHI1jnKKNtkVr_a5YvOF26wlpy7Q9pMBoXgItKTxS4GCnOezJkDHx5mMr9ei 解决方案二: #include int main() { in

一行Linux命令,其中perl文件的输出作为c语言文件的输入

问题描述 一行Linux命令,其中perl文件的输出作为c语言文件的输入 prep-seg |(/usr/bin/time -f "%U" -a -o data/comp/TestLog100.txt vseg > $segfile) prep-seg是一个perl写的文件,vseg是一个从语言编译后的文件,我很确定prep-seg的输出是作为vseg的输入,那这个TestLog100.txt只是统计时间的吗?谢谢大家了

语言-没有错误,没有警告,输入数值后,结果不对,求解 帮帮忙,

问题描述 没有错误,没有警告,输入数值后,结果不对,求解 帮帮忙, /*用递归法将一个整数n转换为相应的字符串,例如,输入483,输出的是字符串"483",n的位数不确定,可以是任意的正 整数.(说明详见实验指导书P264第(2)题)请在下面空白处,填写相应的程序段,并将程序保存于文件ex5_2.c中.*/ #include #include char c[1000]; void int_to_string(int n,int w) {int i=2,j=w-1,m=10; c[w+1