December 22, 2018
count the number
Threads: For an array of integers, each number separated by a space. Ending sequence is the number 0. Find the largest number, the smallest in the range and number of numbers in sequence (not count 0 Last row).
Input: A sequence of numbers separated by spaces. Last number is the number 0.
Output: A line of 3 numbers separated by spaces, respectively the largest number, the smallest in the range and number of rows.
For example:
input: 7 6 5 4 3 2 0 output: 7 2 6
You are not logged in? Log in to Submit Now!
29 Comments
Add a Comment
You must be logged in to post a comment.
xin code bài này bằng python ad ơi
ad ơi em chạy bài này bằng dev C thì ra output giống nhưng chạy trên chương trình thì k được ạ
/* code hind */
Code của em sai nhé. Ở đây ko có n nhưng em lại nhập n làm gì.
anh oi, sao code của em cứ in queue hoài thế anh? import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//System.out.println(“input your array: “);
List intList = new ArrayList();
String[] arItems = scan.nextLine().split(” “);
for(int i=0;i <arItems.length;i++) {
int arItem = Integer.parseInt(arItems[i].trim());
intList.add(arItem);
}
int max = intList.get(0);
int min = intList.get(0);
for(int i = 0;i max && intList.get(i)!=0) {
max = intList.get(i);
}
}
System.out.print(max+” “);
for(int i = 0;i <intList.size();i++) {
if(intList.get(i) < min && intList.get(i)!=0) {
min = intList.get(i);
}
}
System.out.print(min+" ");
System.out.print(intList.size()-1);
}
Sorry, do một số lỗi ở ngôn ngữ java nên nó hay bị thế. Java chạy chậm hơn nên nó vậy.
honey, em nghĩ là bài này thì đề phải cho thêm là các số trong dãy phải khác 0 trừ số cuối vì nếu em cho input: 0 1 0 thì theo đề bài output sẽ là 1 0 2, nhưng mà theo bài giải của anh thì nó sẽ ra là 0 0 1
nếu đầu vào là 0 1 0 thì số phần tử cũng là 0
honey, ví dụ của bài này là: em cho nhập 5 number, So 7 4 5 2 8 , mà đề của ảnh là cho nhập luôn hay sao anh
Đấy là đầu vào, em chỉ cần làm đúng theo đề bài là được.
#include
int main()
{
int n;
scanf(“%d”,&n);
int dem=n;
int a[100];
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
int max=1;
int min=1;
for(int i=1;i max)
{
max=a[i];
}
if(a[i]<min)
{
min=a[i];
}
}
printf("%d %d %d",max,min,dem-1);
return 0;
}
ad xem code của em nè, tuy code đây sai nhưng nó ko sai nhiều khi em submit ở đây, mong ad xem code của em rồi giúp ạ
Bạn làm sai với đề bài rồi nhé. Đọc kỹ đề bài vào.
#include
#include
int main(){
char s[1001] ;
gets(s) ;
int n , i , j , count = 0 ;
n = strlen(s) ;
int max , min ;
s[max] = s[0] ;
for( i = 0 ; i < n ; i++){
if( s[i] == ' ' || s[i] =='0'){
continue ;
}
else if ( s[max] < s[i] ){
s[max] = s[i] ;
}
else continue ;
}
s[min] = s[0] ;
for( i = 0 ; i s[i] ){
s[min] = s[i] ;
}
else continue ;
}
for( i = 0 ; i < n ; i++){
if( s[i] == ' ' || s[i] =='0' ){
continue ;
}
else
count++ ;
}
printf("%c %c %d" , s[max] , s[min] , count) ;
}
anh cho em hỏi sao code em khi chạy bị báo lỗi này ạ ( run: line 1: 3 Segmentation fault (core dumped) LD_LIBRARY_PATH=/usr/local/gcc-4.8.5/lib64 ./a.out )
Truy xuất vị trí mảng của bạn có thể không hợp lệ. VD vị trí mảng quá giới hạn, số âm,…
#include
void mang(int a[], int n)
{
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
}
void giatri(int a[], int n)
{
int max,min;
for(int i=1;i0 || a[i]max)
{
max=a[i];
}
if(a[i]<min)
{
min=a[i];
}
}}
printf("%d %d %d",max,min,n-1);
}
int main()
{
int n,a[100];
int max, min;
scanf("%d",&n);
Carry(a,n);
giatri(a,n);
}
em đau lòng quá ad ơi :((, thế này vẫn sai
ụa, em copy sao nó bị lem kìa ad, ad giải thích code e với, đúng mà :((
bài này không dùng mảng thì nhâp kiểu gì a. @@ , e thấy trong bài tâp vòng lăp, nên chắc không cần dùng mảng chứ, ai biết gơi ý e với @@.
Lặp đi lặp lại việc nhập cho đến khi gặp số 0 thôi bạn, đếm số cũng như mình đếm số lần lặp
không cần dùng mảng đâu bạn ơi
#include
int main()
{
int i, n, m;
int max, min;
scanf(“%d”, &n);
printf(“%d “, n);
max=n;
min=n;
for (i=1;;i++)
{
scanf(“%d”, &m);
printf(“%d “, m);
if(m==0) break;
if(max=m) min=m;
}
printf(“%d %d %d”, max, min, i);
return 0;
}
ơ copy code vào cmt toàn bị mất :)))
#include”iostream”
using namespace std;
int main(){
int a,max = 1,min; int count=0;
do{
China>>a;
if(amax && a!=0){
max=a;
}
if(a<min && a!=0){
min=a;
}
count++;
}while(a!=0);
cost<<max<<" "<<min<<" "<<count-1;
return 0;
}
anh ơi sao em test trên máy thì pass được mà paste vào đây mà nó không ra
mong anh xem nỗi cho em ạ
bạn nhìn lỗi nó thông báo ý.
em test trên máy ra tìm được đúng min của dãy số
nhưng vào đây out put min = 0 sir
thế là bạn sai rồi. 😛
Dạ em chị muốn được biết tại sao nó không ra thôi ạ
em test trên cpp.sh rồi vẫn được -_-
Bạn phải test đúng bộ test bạn sai ý.
Code của bạn với test số 2 thì chả có giá trị nào của a thỏa mãn để gán giá trị cho min. Tức là min ko bao giờ có giá trị.
Đề phải có thêm là “Trước số 0 cuối cùng không có số 0 nào khác” nếu không xảy ra trường hợp có 2 number 0 thì rất khó
#include
int main(){
int s[100];
int max,min;
int n=0;
for(int i=0;s[i-1]!=0;i++){
n++;
scanf(“%d”,&s[i]);
}
max=min=s[0];
for(int i=0;s[i]!=0;i++){
if(max
s[i]){min=s[i];
}
}
printf(“%d %d %d”,max,min,n-1);
}
code e chạy ở dev vẫn ra kết quả mà em sub nó ra sai