C#
Ola09:
Czy 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