codeblocks是否支持集成初始化可变大小的数组?
codeblocks吧
全部回复
仅看楼主
level 2
方正好强 楼主
编译出错,怎么回事?codeblocks应该支持这个c99的功能的.在另外的编译器就可以,
代码:
#include <stdio.h> //以数组的形式,输出number个素数
int isPrime( int x, int knownPrimes[], int numberofPrimes);
int main(void) {
const int number = 15; //数组中(要输出的)素数个数:number
int prime[number]={2}; //第一个素数是2,将素数表中的prime[0]初始化为2
int count = 1; //素数表prime[0]位置已存在.素数判定从1开始计数(下标).
int i = 3; //素数从3开始判定.
//测试,观察变化规律.
{
int i;
printf("计数器:i素数个数:cnt\t");
for ( i=0; i<number; i++) //遍历输出数组下标直至数组总数.
printf("%d\t",i);
printf("\n");
}
//输出"自增计数器i","素数个数cnt",数组下标做表头.
while ( count < number ){ //数组下标,要输出的数组个数
if ( isPrime(i,prime,count) ) //调用函数(计数器,数组,数组下标)
prime[count++] = i; //赋值:prime[count]=i;数组下标自增:count++
//为了便于观察
{
printf("i=%d\tcnt=%d\t\t",i,count);
int i;
for ( i=0; i<number; i++)
printf("%d\t",prime[i]);
printf("\n");
}
//,输出自增计数器i,素数的个数cnt,数组中素数的变化规律.
i++; //判定i是否为素数.是,则将i加入prime函数.
}
printf("\n%d个素数的素数表如下:\n",number);
for ( i=0; i<number; i++ ) { //遍历输出
printf("%d",prime[i]);
if ( (i+1)%10) //为便于观察,以10个为一组输出并换行.
printf("\t");
else
printf("\n");
}
return 0;
}
//方法4,判断是否能被已知的且<x的素数整除
int isPrime( int x, int knownPrimes[], int numberofPrimes) {
int i; //计数器i,已知素数组(被除数),已知素数个数+1.
int ret = 1; //prime[count++];
for ( i=0; i<numberofPrimes; i++) {
if ( x%knownPrimes[i] == 0 ) { //x除以已知素数中的所有(0~i遍历)素数.
ret = 0;
break;
}
}
return ret; //通过判定,则prime[count++] = i;numberofPrimes增1.
}
2018年04月03日 08点04分 1
level 1
那个应该要考虑编译器(gcc)的支持情况吧。。。
2018年04月05日 05点04分 2
我不知道它是否支持啊.
2018年04月08日 03点04分
怎么查看啊
2018年04月08日 03点04分
@方正好强 检测 gcc 是否支持 C99 标准的方法https://blog.csdn.net/maxsky/article/details/53900952
2018年04月09日 11点04分
level 5
这个关CodeBlocks什么事,看你的编译器是否支持好了
不过最好不要这样玩, C/C++ 是程序可以自己管理内存的
2018年04月11日 02点04分 3
1