Begränsning av array av siffror
Behöver hjälp med en uppgift jag har lyckats med allt som ska göras i uppgiften det enda problemet jag har är att begränsa min array så att den endast använder tal mellan 1 till 999. Här nedan visar jag frågan och min kod.
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
void sort(int array[], int size){
for(int i= 1; i<size-1; i++){
for(int j= 1; j<size-1; j++){
if(array[j]> array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
void printArray(int array[], int size){
for(int i=1; i<size; i++){
printf("%d", array[i]);
printf("\t");
if(i % 5==0){
printf("\n");
}
}
}
int main(){
int n,x;
scanf("%d", &n);
x=n+1;
int array[x];
int kontroll=true;
if(x<=1000 && kontroll == true){
for(int i=1; i<x; i++){
scanf("%d", &array[i]);
}
for(int k=1; k<x; k++){
if(array[k] >1 && array[k]<999){
kontroll == true;
}else{
kontroll == false;
}
}
int size = x;
sort(array, size);
printArray(array, size);
}
return 0;
}
Jag tolkar uppgiften som att du kan anta att programmet bara får tal mellan 1 och 999 som input. Med andra ord behöver programmet inte kolla det.
Menar de något annat är det dåligt uttryckt.
Laguna skrev:Jag tolkar uppgiften som att du kan anta att programmet bara får tal mellan 1 och 999 som input. Med andra ord behöver programmet inte kolla det.
Menar de något annat är det dåligt uttryckt.
Nej de är att jag måste skriva kod som kontrollerar varje siffra så att endast tal mellan 1 till 999 används och om ett tal utanför intervallet skrivs in ska programmet avslutas utan att skriva ut något.
Jag håller med Laguna, det låter som att du kan anta att värden ligger i intervallet [1,999] -- förmodligen för formateringens skull. De två input exempel har inte det du menar skall kollas. Borde inte det i så fall finnas med som en input/output exempel?
Sen borde du - om du envisas med att använda scanf - ha format specificeringen " %d" så att du skippar \n som ligger i stdin efter att du läst antalet nummer.