Г
Грејвдигер
Гостин
ДаМислиш нешто вака:
?
ДаМислиш нешто вака:
?
for(i=0;i<3;i++)
{
printf("\n\n\n");
for(j=0;j<3;j++)
if(i==j)
printf(" ");
else
printf("%d ",a[i][j]);
}
Па ок затоа те прашав дали тоа сакаш да ти печати.Не ми беше тоа поентата на дијагоналата да ми даде празни места. Сакам елементите над и под главната дијагонала да ги испечатам посебно.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[20][20],i,j;
int n=4,s=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
{
printf("\n\n\n");
for(j=0;j<n;j++)
{
if(i>0&&i>j)
s=1;
else
s=0;
if(s)
printf(" ");
if(i<j)
printf("%d ",a[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i>0&&i<j)
s=1;
else
s=0;
if(s)
printf(" ");
if(i>j)
printf("%d ",a[i][j]);
}
printf("\n\n\n");
}
}
И сега, кодов некако не ми штима :SКреирајте датотека за евиденција на статистиката за еден ракометен
натпревар. Двете екипи имаат максимум 15 играчи во тимот. Секој играч во
датотеката има свој запис (record) кој се состои од следните полиња:
Опис на полето Тип на податок Макс. должина на поле
Име на играчот string 15
Презиме на играчот string 15
Име на тимот string 25
Број на дрес int 1 ≤ број ≤ 15
Постигнати голови / Одбрани int
Удари int
Време поминато на терен int 0 ≤ време ≤ 60
Креирајте датотека за евиденција на статистиката за еден ракометен
натпревар. Двете екипи имаат максимум 15 играчи во тимот. Секој играч во
датотеката има свој запис (record) кој се состои од следните полиња:
Опис на полето Тип на податок Макс. должина на поле
или ранг на вредности
Име на играчот string 15
Презиме на играчот string 15
Име на тимот string 25
Број на дрес int 1 ≤ број ≤ 15
Постигнати голови / Одбрани int
Удари int
Време поминато на терен int 0 ≤ време ≤ 60
1. При внесување на влезните податоци да се прави валидација
23
2. Датотеката се сортира (подредува) по Презиме, Име и постигнати
голови/успешни одбрани. На тој начин се формира датотеката “Sort.dat”.
3. Датотеката “Sort.dat” да се користи како влезна датотека за добивање на
конечниот резултат на мечот како збир на постигнатите голови за секоја
екипа посебно. Треба да се одреди и најдобриот играч на натпреварот:
- ако играчот со најмногу голови има повеќе од 10 гола тој е играч на
натпреварот.
- доколку играчот со најголем број голови има постигнато помалку од 10
гола, треба да се провери просекот на одбрани (одбрани/удари*100) на
голманите и доколку тој е поголем од 40% тогаш голманот со најголем
просек е играч на натпреварот
4. Излезниот податок за извршената надградба:
Конечен резултат: Тим1 : Тим 2
Играч на натпреварот: Име Презиме, број на дрес
Постигнато голови/процент на одбрани:
#include<iostream>
#include <fstream>
using namespace std;
struct igrac{
char ime [15];
char prezime [15];
char tim [25];
int broj_na_dres;
int golovi_odbrani;
int udari;
int vreme;
};
int main()
{
struct igrac i1 [15];
struct igrac i2 [15];
ofstream dat("sord.txt");
fstream zapisuva("sord.txt");
cout<<"vnesete podatoci za prviot tim"<<endl;
for(int i=0;i<15;i++)
{
cout<<"-------------------------"<<endl;
cout<<i+1<<". Igrac"<<endl;
cout<<"ime: ";
cin>>i1[i].ime;
cout<<"prezime: ";
cin>>i1[i].prezime;
cout<<"tim: ";
cin>>i1[i].tim;
cout<<"broj na dres (1<x<15): ";
cin>>i1[i].broj_na_dres;
cout<<"golovi/odbrani: ";
cin>>i1[i].golovi_odbrani;
cout<<"udari: ";
cin>>i1[i].udari;
cout<<"vreme: ";
cin>>i1[i].vreme;
}
for(int i=15;i>0;--i)
{
for(int j=0;j<i-1;++j)
{
if(i1[j-1].broj_na_dres>i1[j].broj_na_dres)
{
struct igrac tmp = i1[j-1];
i1[j-1]=i1[j];
i1[j]=tmp;
}
}
}
cout<<"vnesete podatoci za vtorio tim"<<endl;
for(int i=0;i<15;i++)
{
cout<<"-------------------------"<<endl;
cout<<i+1<<". Igrac"<<endl;
cout<<"ime: ";
cin>>i2[i].ime;
cout<<"prezime: ";
cin>>i2[i].prezime;
cout<<"tim: ";
cin>>i2[i].tim;
cout<<"broj na dres (1<x<15): ";
cin>>i2[i].broj_na_dres;
cout<<"golovi/odbrani: ";
cin>>i2[i].golovi_odbrani;
cout<<"udari: ";
cin>>i2[i].udari;
cout<<"vreme: ";
cin>>i2[i].vreme;
}
for(int i=15;i>0;--i)
{
for(int j=0;j<i-1;++j)
{
if(i2[j-1].broj_na_dres>i2[j].broj_na_dres)
{
struct igrac tmp = i1[j-1];
i2[j-1]=i2[j];
i2[j]=tmp;
}
}
}
zapisuva<<"brojNaDres prezime Ime tim golovi/odbrani udari vreme "<<endl;
zapisuva<<"------------------------------------------------"<<endl;
zapisuva<<"------------------------------------------------"<<endl;
zapisuva<<"Prv tim"<<endl;
zapisuva<<"----------------"<<endl;
for(int i=0;i<15;i++)
{
zapisuva<<i1[i].broj_na_dres<<" "<<i1[i].prezime<<" "<<i1[i].ime<<" "<<i1[i].tim<<" "<<i1[i].golovi_odbrani<<" "<<i1[i].udari<<" "<<i1[i].vreme<<endl;
}
zapisuva<<"Vtor tim"<<endl;
zapisuva<<"----------------"<<endl;
for(int i=0;i<15;i++)
{
zapisuva<<i2[i].broj_na_dres<<" "<<i2[i].prezime<<" "<<i2[i].ime<<" "<<i2[i].tim<<" "<<i2[i].golovi_odbrani<<" "<<i2[i].udari<<" "<<i2[i].vreme<<endl;
}
zapisuva.close();
int z1=0,z2=0,tmp1,tmp2;
struct igrac k1,k2;
tmp1=i1[0].golovi_odbrani;
tmp2=i2[0].golovi_odbrani;
for(int i=0;i<2;i++)
{
z1=z1+i1[i].golovi_odbrani;
z2=z2+i2[i].golovi_odbrani;
if(tmp1<i1[i].golovi_odbrani)
{
tmp1=i1[i].golovi_odbrani;
k1=i1[i];
}
if(tmp2<i2[i].golovi_odbrani)
{
tmp2=i2[i].golovi_odbrani;
k2=i2[i];
}
}
int w;
struct igrac pr;
if(tmp1>tmp2)
{
w=tmp1;
pr=k1;
}
else{
w=tmp2;
pr=k2;
}
cout<<"Konecen rezultat: "<<z1<<" : "<<z2<<endl;
cout<<"Igrac na natprevarot: ";
if(w>10)
{
cout<<pr.ime<<" "<<pr.prezime<<" "<<pr.broj_na_dres<<endl;
cout<<"Golovi: "<<w<<endl;
}
else{
float j= w/pr.udari*100;
if(j>40)
{
cout<<pr.ime<<" "<<pr.prezime<<" "<<pr.broj_na_dres<<endl;
cout<<"Procent: "<<j<<endl;
}
}
system("pause");
return 0;
}
Какви елементи? Да најде некој збор и да ги копира во стринг, или цела дадотека?Ако може мала помош околу C, сакам од дадена датотека елементите да ги сместам во стринг, пробав на неколку начини ама не успеав?
Сo fgets.Ако може мала помош околу C, сакам од дадена датотека елементите да ги сместам во стринг, пробав на неколку начини ама не успеав?
#include <stdio.h>
#define MAX 100
int main() {
FILE *dat;
char s[MAX];
if((dat = fopen("tekst.txt", "r")) == NULL) {
printf("Ne otvara.");
return -1;
}
while(fgets(s,100,dat) != NULL) {
printf("%s", s);
}
return 0;
}
#include <stdio.h>
int broi(char *str,char num)
{
int vkupno=0;
while(*str != '\0')
{
vkupno=vkupno+(*str==num);
str++;
}
return vkupno;
}
int main(){
char s[100],znak;
printf("Vnesi niza: ");
gets(s);
printf("Vnesi znak: ");
znak=getchar();
printf("ZNakot %s se pojavuva %d pati.",znak,broi(s,znak));
return 0;
}