Ahoj lidi!
Potřeboval bych udělat k tomuhle programu v cečku algoritmus(vyvojový diagram) a testovací tabulku. Pro ty co programujou to bude asi brnkačka,ale pro mě to je brutus!Potřeboval bych to udělat co nejdřív!
dík!
Kód:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<ctype.h>
void zadejMatici(int matice[20][20],int*R,int*S);
int ctiCislo(int N);
int main()
{
int matice[20][20],R,S,sloupce[20],pocet=0;
for (int r=0;r<20;r++)
for (int s=0;s<20;s++) matice[r][s]= -35000;
printf ("Zjistime ktere sloupce obsahuji stejna cisla.\n");
zadejMatici(matice,&R,&S);
for (int s=1,test,j=0;s<S;s++)
{
for (int z=0;z<R;z++)
{
test=0;
for (int r=0;r<R;r++)
if (matice[z][0]== matice[r][s]) {test=1; break;}
if (test==0) break;
}
if (test==1) {sloupce[j]=s; j++; pocet++;}
}
printf("\nShodne s prvnim sloupcem jsou sloupce:");
if (pocet)
for (int i=0;i<pocet;i++) printf(" %d",sloupce[i]+1);
else printf(" nejsou");
printf("\n\n");
system("PAUSE");
return 0;
}
void zadejMatici(int matice[20][20],int*R,int*S)
{
do
{
printf ("\nZadejte pocet radku: "); *R=ctiCislo(5);
printf ("Zadejte pocet sloupcu: ");*S=ctiCislo(5);
if (*R==-35000 || *S==-35000)
{printf("nChyba! Lze zadavat pouze čísla.\n\n"); continue;}
break;
} while(1);
printf("\n");
for (int r=0;r<*R;r++)
for (int s=0;s<*S;s++)
{
printf("Zadejte prvek na %d radku a %d sloupci: ",r+1,s+1);
matice[r][s]= ctiCislo(5);
}
}
int ctiCislo(int N)
{
int cislo=0;
char c[N];
double z=0;
for (int j=0;j<N;j++) c[j]='\0';
scanf ("%s",&c);
for (int j=N-1;j>=0;j--)
{
if (isdigit(c[j])) {cislo += (c[j]-48)*(int)pow(10,z); z++; }
else if (c[0]!='-'&& c[j]!='\0') return -35000;
}
return cislo;
}
jestli to někomu pomůže tak tady je zadání co to má dělat
Je dána matice (tj. dvourozměrné pole) kladných celých čísel velikosti N*N, N<20. Čísla tvořící matici jsou zadána po řádcích. Zjistěte, v kolika sloupcích matice jsou obsažena přesně stejná čísla, jako v prvním sloupci (nezáleží na pořadí čísel).
edit by Rainbow: code tag