Zadania do poprawki suma najwieksza najmniejsza i pozycje POMOCY !!

0

Witam mam problem z 3 zadaniami to jest pierwsze

Napisz program który wczytuje n liczb i oblicz sume tych liczb

nie wiem czemu nie chodzi

#include <iostream>
#include <stdio.h>
using namespace std;

// wczytuje n licz i oblicz sume
int main()
{
int x, n, suma;
cout<<"podaj ilosc liczb ";
cin>>n;
suma=0;
for(int x=1;x<n;x++)
{
cout<<"podaj liczbe ";
cin>>x;

suma=suma+x;

}
cout<<"Suma wynosi "<< suma<<endl;

system("pause");
}

__ZADANIE 2
Program wczytuje na liczb wybiera nawieksza i najmniejsza i ich pozycje
__

#include <iostream>

using namespace std;

int main()
{

     int a[100],max , poz ,n,poz1,min ;
   int i; 
    max=1;
    min=1;
    poz=0;
    poz1=0;
    cout<<"podaj ilosc liczb ";
    cin>>n;
    
  for(int i=1; i<=n;i++)
  {  
            cout<<"podaj liczbe ";
            cin>>a[i];
            }
                     
          if (a[i]>max)
          {
           max=a[i];
           poz=i;
           
           }else{  
           
           if (a[i]<min)
           {
           min=a[i];
           poz1=i;
            
            }
            }
             
          cout<<"najwieksza to "<<max<<" "<<poz<<endl;        
           cout<<"najmniejsza to "<<min<<"  "<<poz1<<endl;          
  

  system ("pause");
  }
0

Co do pierwszego
wywal DEV C++ zamień na normalne środowisko

  1. nie masz # przy include
  2. wywal system("pause");
  3. w petli powinieneś 0 inicjalizować a nie 1

drugie odpiszę jak będę w domu (chyba że już ktoś to zrobi)

0

A po kiego ci tablica?

#include <iostream>
using namespace std;
 
int main()
  {
   int n,max=0,min=0,pozmax=-1,pozmin=-1,suma=0;
   cout<<"podaj ilosc liczb ";
   cin>>n;
   for(int i=0;i<n;++i)
      {  
       cout<<"podaj liczbe ";
       int x;
       cin>>x;
       if(i)
         {
          suma+=x;
          if(min>x) { min=x; pozmin=i; }
          if(max<x) { max=x; pozmax=i; }
         }
       else suma=max=min=x;
      }
    cout<<"najwieksza to "<<max<<" "<<(pozmax+1)<<endl;        
    cout<<"najmniejsza to "<<min<<" "<<(pozmin+1)<<endl;          
    cout<<"suma to "<<suma<<endl;          
    cout<<"srednia to "<<n?((double)suma/n:0)<<endl;
    cin.sync();
    cin.get();
    return 0;
   }

Powinno się też sprawdzać poprawność wprowadzenia, pilnować indeksacji tablicy (ma być od 0), nie możesz polegać na tym że nikt nie wprowadzi wszystkie liczby większe od 1 lub wszystkie mniejsze od 1.

0

**13th_Dragon nie ogarniam takiedo zapisu jestem początkujacy :) mozesz poprawic moje zadania :)
**

zmieniałem i wczytuje liczby i wyłącza sie a jak zminic srodowisko ? Pracujemy na studiach na DEV C++ i tek chce sie uczyc

#include <iostream>
#include <stdio.h>


using namespace std;

// wczytuje n licz i oblicz sume
int main()
{
int x, n, suma;
cout<<"podaj ilosc liczb ";
cin>>n;
suma=0;
for(int x=0;x<n;x++)
{
cout<<"podaj liczbe ";
cin>>x;

suma=suma+x;

}
cout<<"Suma wynosi "<< suma<<endl;

}
**ZADANIE @ Poprawiłem ale  wyswietla mi  głupoty jakieś liczby nie z tej ziemi **
#include <iostream>
#include <stdio.h>

 using namespace std;
 
 int main()
 {
    
     int  a[100],max , poz ,n,poz1,min,i ;
        
        
        cout<<"podaj ilosc liczb ";
        cin>>n;
        
      for(int i=1; i<=n;i++)
      {  
                cout<<"podaj liczbe ";
                cin>>a[i];
                }
                if (i == 1 )
            {        
            min = a[i];
			poz = i;
			max = a[i];
			poz1 = i;
        }
		       else   if (a[i]>max)
              {
               max=a[i];
               poz=i;
               
               }
               else if (a[i]<min)
               {
               min=a[i];
               poz1=i;
                
                }
                
               
	cout << "Liczba najmneisjza to: " << min << " pozycja: " << poz1<<endl;
	cout << "Liczba najwieksza to: " << max << " pozycja: " << poz<<endl;

system ("pause") 


      }
0

W pierwszym zadaniu przyjrzyj się temu:

for(int x = 1; x < n; x++)
{
    cout << "podaj liczbe ";
    cin >> x;
    // ...
}

x jest licznikiem pętli, a wczytujesz do niego dane od użytkownika – przez to ci się rozwala, bo nie przechodzi tylu iteracji co chcesz.

0

dzięki już ogarniam zadanie 1

Zadanie 2 nie wiem czemu przy wyswietlaniu wyskakuja inny wynik na moje oko jest dobrze

#include <iostream>
#include <stdio.h>
 
 using namespace std;
 
 int main()
 {
 
     int  a[100],max , poz ,n,poz1,min,i ;
 
 
        cout<<"podaj ilosc liczb ";
        cin>>n;
 
      for(int i=1; i<=n;i++)
      {  
                cout<<"podaj liczbe ";
                cin>>a[i];
                }
                if (i == 1 )
            {        
            min = a[i];
                        poz = i;
                        max = a[i];
                        poz1 = i;
        }
                       else   if (a[i]>max)
              {
               max=a[i];
               poz=i;
 
               }
               else if (a[i]<min)
               {
               min=a[i];
               poz1=i;
 
                }
 
 
        cout << "Liczba najmneisjza to: " << min << " pozycja: " << poz1<<endl;
        cout << "Liczba najwieksza to: " << max << " pozycja: " << poz<<endl;
 
system ("pause") 
 
 
      }
0

Jakbyś sformatował ten kod porządnie, to byś zauważył błąd.

0

sory ale nie bardzo rozumiem o co Ci chodzi mozesz jasniej :)

1

Dlaczego zwyczajnie nie podstawisz za min i max 1 wczytanej liczby (jako pozycje w obu 1), a potem w pętli nie wczytujesz reszty i nie porównujesz? Nie potrzebujesz wszystkich wczytanych liczb, tylko największej i najmniejszej, oraz pozycji na których wystąpiły.

1

for u ciebie się kończy w niewłaściwym miejscu. Poza tym wywal tablice i zastąp ją pojedynczą zmienną.

1 użytkowników online, w tym zalogowanych: 0, gości: 1