short arry[4]

0

Czy można w jakiś szybszy sposób zapodać z klawiatury wartości do arry[4] bez konieczności tworzenia pętli for? Może ktoś zna gotową funkcje która to robi?

0

Nie chcesz for, to może while:

int i = 0;
while(i < 4)
	std::cin >> arry[i++];
0

bez petli:
cin >> arr[0] >> arr[1] >> arr[2] >> arr[3];

0

Zupełnie nieprzydatne i nie w pełni przenośne:

	short array[4];
	cin>>*(long long *) array;
 
0
#include<iostream>

int main(){
    short arry[4], i = 0;
    short *w = arry;
    while(i < 4)
      scanf("%d", &arry[i++]);
      printf("%d", ((*w++)*(*w++))+((*w++)*(*w)));
    
    system("pause");
}

Dlaczego na wskaźnikach wychodzi mi zły wynik?

0

nie wolno w obrębie jednego wyrażenia używać jednocześnie w i w++, ani używać w++ kilkakrotnie. to samo się tyczy ++w.
problem wynika z tego, że nie wiadomo, w jakiej kolejności poszczególne wyrażenia mają być wykonane (standard tego nie definiuje)

a.cpp: In function 'int main()':
a.cpp:7:29: warning: format '%d' expects type 'int*', but argument 2 has type 'short int*'
a.cpp:8:50: warning: operation on 'w' may be undefined
a.cpp:8:50: warning: operation on 'w' may be undefined
a.cpp:8:50: warning: operation on 'w' may be undefined
0

zapisz to tak:

printf("%d", ((*w)*(*(w+1)))+((*(w+2)))*(*(w+3))));
0

Dzięki serdeczne pomogło :) Mam jeszcze jedno pytanie, czy da się zrobić, żeby można było wprowadzać zmienną do wskaźnika, tak żeby tylko zadeklarować tablice operując tylko na wskaźnikach?

okey już mam

scanf("%d", &(*(w+(i++))));

Jeszcze raz dzięki że jesteście, zajefajni z Was ludzie! :)

0
gubbi napisał(a)
scanf("%d", &(*(w+(i++))));

A nie wystarczy Ci samo w+(i++)? Tak, to też jest wskaźnik!

0

Faktycznie :D Dzięki serdeczne!

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