|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 奥普瓯江 于 2017-6-23 08:52 编辑
不知道片原因是什么还请各位大神给讲解一下麻烦
我用的系统是linux系统,编译用的是GCC,编译的,参数是 gcc -g ...... - o .......
- #include<stdio.h>
- #include<stdbool.h>
- int main()
- {
- int a, e, g, h;
- int count; //最大值
- int i,f; //计算循环值
- int j = 0; //输出循环值
- int first[] = {0}; //A输出项
- int max[] = {0}; //B输出项
- int yes[100][200]; //C输出项
- bool yan = true; //判定变量
- char c;
- printf("请输入一个整数: ");
- scanf("%d", &count);
- for( a = 3, i = 0; a <= count; a++, i++ )
- {
- h = 0;
- first[i] = a;
- //计算
- max[i] = a * a * a;
- e = a * a - a + 1;
- for (f = 0; !(h == max[i]); f++)
- {
- if ( f == 0 )
- {
- g = e;
- }
- else
- {
- g = e + 2;
- e = g;
- }
- yes[i][f] = g;
- h = h + yes[i][f];
-
- }
- }
-
- //判断
- if (!(h == 0))
- {
- printf("经验证,3 ~ %d 之间所有的整数均符合尼科切斯定理!\n\n", count);
- printf("是否打印所有的式子(y/n): ");
- getchar();
- scanf("%c", &c);
- if ( c == 'n')
- {
- yan = false;
- }
-
- }
- else
- {
- printf("验证失败:整数%d无法找到对应的连续奇数!\n", count);
- }
-
- //输出
- if(yan)
- {
-
- for ( a = 3, i = 0; a <= count; a++, i++ )
- {
- printf("3^%d = %d =", first[i], max[i]);
-
- for ( j = 0; yes[i][j] != 0; ++j)
- {
- if( i == 0)
- {
- printf( j ? " + %d" : " %d",yes[i][j]);
- }
- else
- {
- if ( j < 2 )
- {
- printf( j ? " + %d" : " %d",yes[i][j]);
- }
- else
- {
- if ( yes[i][j + 1] == 0)
- {
- printf(" ... + %d", yes[i][j]);
- }
- else
- {
- continue;
- }
- }
- }
- }
- printf("\n");
- }
- }
- return 0;
- }
复制代码
int first[] = {0}; // 初始化为0,意思是为第1个元数初始化为0,其它元素编译器自动填0。不定义数量编译器认为只有一个元素。
|
|