Ajutatima va rog!
trebuie sa scrieti un program C++
Se citeste nr n si apoi se citesc cele n elem ale unui vector. Scrieti cate o functie care :
a. afisseaza in ordine inversa elementele vectorului
b. afiseaza inv tuturor nr din vector
c. afiseaza in ordine crescatoare nr vectorului
d. afiseaza val de pe pozitii pare din vect
e. afiseaza nr prime din vector
f. afiseaza nr din vector care incep cu cifra 7
g. afiseaza nr de divizori ai fiecarui numar din vector
h. afiseaza pt fiecare numar suma cifrelor sale
i. afiseaza pt fiecare numar produsul primelor doua cif ale sale
j. afiseaza nr din vector care au toate cif egale.
Se citeste nr n si apoi se citesc cele n elem ale unui vector. Scrieti cate o functie care :
afiseaza elem impare de pe diagonala secundara
afiseaza valoarea minima de pe diagonal principala
afiseaza valorile prime de sub diagonala principala
afiseaza valorile palindromice de deasupra diagonalei principale
afiseaza patratele perfecte de deasupra diagonalei secundare
afiseaza valoarea maxima de sub diagonal secundara
afiseaza de cate ori apare pe linia 3, primul elemente de pe aceasta linie
afiseaza de cate ori apare pe coloana 4, ultimul element de pe aceasta
ordoneaza crescator elementele de pe linia 5
ordoneaza descrescator elementele de pe coloana 2
Răspunsuri la întrebare
Răspuns:
#include <stdio.h>
#include <stdlib.h>
int* citire_vector(int *dim);
char* afisare_vector(int dim, int x[]);
char* vector_invers(int dim,int x[]);
int main()
{
char c;
int n,*v,i,j,*vectorC,aux,k=0,copieV[100],s=0,suma[100];
float media;
printf("Aplicatii menu...\n");
do
{
system("cls");
printf("O. Citire vector (dinamic)\n");
printf("P. afișare vector.\n");
printf("b. afisseaza in ordine inversa elementele vectorului\n");
printf("c. afiseaza in ordine crescatoare nr vectorului\n");
printf("d. afiseaza val de pe pozitii pare din vect\n");
printf("e. afiseaza nr prime din vector\n");
printf("f. afiseaza nr din vector care incep cu cifra 7\n");
printf(" g. afiseaza nr de divizori ai fiecarui numar din vector\n");
printf(" h. afiseaza pt fiecare numar suma cifrelor sale\n");
printf("i. afiseaza pt fiecare numar produsul primelor doua cif ale sale\n");
printf("j. afiseaza nr din vector care au toate cif egale.\n");
printf("X. Ieşire.\n");
c=getch();
c=toupper(c);
switch(c)
{
case 'O':
v=citire_vector(&n);
getch();
break;
case 'P':
printf("%s",afisare_vector(n,v));
getch();
break;
case 'B':
printf("%s",vector_invers(n,v));
getch();
break;
case 'C':
for ( i = 0; i <n ; i++ )
for ( j = i + 1; j <= n; j++ )
if ( v[i] > v[j] )
{
aux = v[i];
v[i] = v[j];
v[j] = aux;
}
printf("vectorul sortat cresc este:");
for(i=0; i<n; i++)
printf("%d ",v[i]);
getch();
break;
case 'D':
for(i=0; i<n; i++)
{
if(i%2==0)
{
printf("%d ",v[i]);
}
}
case 'E':
for(i=0; i<n; i++)
{
int ok=1;
for(int d=2; d<=v[i]/2; d++)
if(v[i]%d==0)
{
ok=0;
}
if(ok==1)
{
printf("%d ",v[i]);
k++;
}
if(k==0)
printf("nu exista nr prime");
}
getch();
break;
case 'F':
for(i=0; i<n; i++)
{
copieV[i]=v[i];
while(v[i]>9)
{
v[i]=v[i]/10;
}
if(v[i]==7)
printf("%d ",copieV[i]);
}
getch();
break;
case 'H':
for(i=0; i<n; i++,s=0)
{
while(v[i])
{
s=s+v[i]%10;
v[i]=v[i]/10;
suma[i]=s;
}
printf("%d ",suma[i]);
}
getch();
break;
case 'I':
for(i=0; i<n; i++)
{
while (v[i]>99)
{
v[i]/=10;
}
printf("(%d%10)*(%d/10)=%d\n",v[i],v[i],(v[i]%10)*(v[i]/10));
}
case 'J':
for(i=0; i<n; i++)
{
if(v[i]%10==v[i]/10%10)
{
printf("%d ",v[i]);
}
v[i]/=10;
}
getch();
break;
case 'X':
exit(0);
default:
printf("\nOptiune invalida!\n");
getch();
}
}
while(1);
return 0;
}
int* citire_vector(int *dim)
{
int i, *x;
printf("Dati numarul de elemente:");
scanf("%d", dim);
x = (int*)malloc(sizeof(int)*(*dim));
if(x==NULL)
{
printf("Eroare la alocare memoriei...");
return;
}
printf("Introduceti elementele vectorului:\n");
for(i=0; i<*dim; i++)
{
printf("x[%d]=",i);
scanf("%d",&x[i]);
}
return x;
}
char* afisare_vector(int dim, int x[])
{
int i;
char *output, sir[10];
output = (char*)malloc(sizeof(char)*80);
strcpy(output,"\nVectorul este: ");
for(i=0; i<dim; i++)
{
sprintf(sir,"%d, ", x[i]);
strcat(output,sir);
}
sprintf(sir,"\b\b.\n");
strcat(output,sir);
return output;
}
char *vector_invers(int dim,int x[])
{
int i;
char *output, sir[10];
output = (char*)malloc(sizeof(char)*80);
strcpy(output,"\nVectorul invers este: ");
for(i=dim; i>=0; i--)
{
sprintf(sir,"%d, ", x[i]);
strcat(output,sir);
}
sprintf(sir,"\b\b.\n");
strcat(output,sir);
return output;
}
Explicație:
aici este rezolvarea la vectori . o mica problema problema este in C si nu in c++