good time people
I have a code like the one below:

#include <vector>
#include <stdio.h>
#include "mymath.h"
using namespace std;
int main(){
    int n;
    char a='y';
    do{
        cout<<"\n----------------------------------------\n";
        cout<<"Enter a number for prime factorization : ";
        cin>>n;
        cout<<"\n----------------------------------------\n";
        int *result=pfact(n);
        for(int i;result[i][0]!=0;++i){
            if(result[i+1][0]!=0) cout<<result[i][0]<<"^"<<result[i][1]<<"*";
            else cout<<result[i][0]<<"^"<<result[i][1]<<"=";}
        cout<<n;
        cout<<"\n----------------------------------------\n";
        cout<<"Do you want to continue (y/n) ?  ";
        cin>>a;}while(a=='y');}

with having mymath.h like the one below:

#ifndef MYMATH_H_INCLUDED
#define MYMATH_H_INCLUDED

#endif // MYMATH_H_INCLUDED
#include <stdio.h>
#include <vector.h>
int *pfind(int num){
    int index=0,*prime;
    prime=new int[num];
    for(int i=1;i<=num;++i){
                int flag=0;
                for(int j=2;j<i;++j){
                    if(i%j==0){
                        ++flag;}}
                if(flag==0 && i>1){
                    prime[index]=i;
                    ++index;}}
            prime[index]=0;
            return prime;}
int *pfact(int num){
    int *prime=pfind(num/2);
    int re[num][2];
    int index=0;
    for(int i=0;prime[i]!=0;++i){
        for(int j=1;num%prime[i]==0;++j){
            re[index][0]=prime[i];
            re[index][1]=j;}
        ++index;}
        re[index][0]=0;
    return *re;}

when I run the program,I'll get six errors like:

error : invalid types 'int[int]' for array subscript

for every use of array result.
please help
thanks

Whatever you do, don't tell us what line numbers these errors happened on.

Since you are just finding the prime factors of a number,how about something like this::

//fragment code where num is your real number 
if(num>0)
  {

    for(int i=1;i<=num;++i)
    {

      if(i==1)
      {
      cout<<i<<" ";//Can be done without it
      continue;//Don't dare get into a while loop with 1
      }

      while(num%i==0)
      {
      cout<<i<<" ";//Successively divide  any number
                    //as every composite number can 
                    // be expressed as multiple of  prime  numbers

      num/=i;

      }

    }

  }

You can't run this program; moreover, you can't compile it:

int *result=pfact(n); // You declare a pointer to int
for (int i; result[i][0] !=0; ++i) {
      // You are trying to subscript result
      if(result[i+1][0]!=0) ... 
      // result[i] is int and now you are trying
      // to index this int ???!!!

Never place function definitions in .h files (only function prototypes).

I have the same problem and get the same error.
Any ideea how I can initialise the matrix ?, in this case to make the result[0]=0;
Sorry if the question is too banal.

You can't run this program; moreover, you can't compile it:

int *result=pfact(n); // You declare a pointer to int
for (int i; result[i][0] !=0; ++i) {
      // You are trying to subscript result
      if(result[i+1][0]!=0) ... 
      // result[i] is int and now you are trying
      // to index this int ???!!!

Never place function definitions in .h files (only function prototypes).

Member Avatar for iamthwee

Don't hijack old threads.

If you need to start a new thread with your question and post an example of your code.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.