马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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。不定义数量编译器认为只有一个元素。
|