matematykaszkolna.pl
C# Ola09: rysunekCzy ktoś zna się może na języku #C? Bardzo proszę o pomoc w napisaniu działającego programu i dokładne wyjaśnienie, bo mam kilka analogicznych zadań, a zupełnie nie wiem jak się za to zabrać . Znaczy najpierw trzeba zadeklarować tablicę, potem za pomocą rand [?] wylosować dowolną komórkę, a następnie zrobić pętle do otaczania jej zwiększającymi się wartościami, choć sama nie wiem... Trzeba napisać program, który: wylosuje współrzędne dowolnej komórki w tablicy dwuwymiarowej (a*b) zamieni wartość wylosowanego elementu na 0 pozostałe komórki wypełni jak wyżej na rysunku (otacza 0 jedynkami, jedynki dwójkami itp.)
20 paź 19:11
Ola09: *znaczy C Będę wdzięczna za każdą pomoc
20 paź 19:12
Ola09: Wiem, że od tego trzeba zacząć: #include <stdio.h> #include <stdlib.h> #include<time.h> #define a 10 #define b 15 int main() { int x[a][a]; int i,j,k,w; printf("\nTABLICA \n"); for(i=0;i<a;i++) for(j=0;j<a;j++) { x[i][j]=rand()%10; } printf("\nTABLICA \n"); for (i=0;i<a;i++) { for (j=0;j<b;j++) { printf("%3d ",x[i][j]); } printf("\n"); } tu trzeba resztę return 0; }
20 paź 19:30
Ola09: Macie jakikolwiek pomysł? Proszę
20 paź 19:49
Ola09:
20 paź 20:08
Ola09: .
20 paź 20:30
Ola09: Może jednak?
20 paź 20:56
jc: Oto rozwiązanie. Ale dobrze by było, gdybyś wcześniej pomyślała nad algorytmem. Jak będziesz kopiować, to pamiętaj, aby minusy zamienić na prawdziwe minusy. #include<stdio.h> #include<stdlib.h> #include<time.h> #define a 10 #define b 15 int main(){ int x[a][b]; srand(time(0)); int k = rand()%a; int m = rand()%b; int i, j; for(i=0; i < a; i++) for(j=0; j < b; j++) x[i][j] = abs(i−k) > abs(j−m) ? abs(i−k) : abs(j−m); for(i=0; i < a; i++){ for(j=0; j < b; j++) printf("%d ", x[i][j]); printf("\n"); } return 0; }
20 paź 20:56
Ola09: Dziękuję przeogromnie, ratujesz mi życie <3 Oczywiście zastanowię się nad tym programem, co i dlaczego.
20 paź 21:00