i wrote the following code
and in my terminal im getting the desired output but for some reason in the SPOJ its showing wrong answer
please help !! im net to SPOJ;
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a;
scanf("%d",&a);
while(a>0&&a!=42)
{
printf("%d",a);
scanf("%d",&a);
}
return 0;
}
Your code does not return the correct output for the sample input.
For this input:
1
2
88
42
99
Your code will print:
1288
The correct output is:
1
2
88
The difficulty that you are having is caused by the fact that you are using the console for input. The console allows you to type input to stdin as well as display output from stdout.
If you redirect your stdin and stdout to a file then you will accurately see what is being entered from stdin and being output to stdout.
To fix your output issue you should change your printf statement by adding a newline character to the end of it:
printf("%d\n",a);
Why have you chosen these conditions for your while loop?
while(a>0&&a!=42)
I got the same output as noix by implementing the following code but i get 'wrong answer' when i submit it on spoj please help me out
The Code:
#include<stdio.h>
int main()
{
int a=1;
while(a>0)
{
scanf("%d",&a);
if(a != 42)
printf("%d\n",a);
else
break;
}
}
The Code When ran in ideone gave same result!
Here is my solution which is "accepted", 0.00 time and 2.00M used, in C language.
#include<stdio.h>
int main(void) {
int x;
x=0;
while(x!=42) {
scanf("%d",&x);
if(x!=42)
printf("%d\n",x);
}
return 0;
}
And here is a for-fun-code which solve the same problem, but closer to the example was given in the problem page. In C language too. Use in/output file.
#include<stdio.h>
#include<stdlib.h>
#define fi "d:\\program\\text\\ipTEST.txt"
#define fo "d:\\program\\text\\opTEST.txt"
struct Node {
int data;
struct Node *next;
};
struct Node *head;
void Inl(int); //insert last
void Clr(void); //clear
void Input(void);
void Output(void);
int main(void) {
head=NULL;
Input();
Output();
return 0;
}
void Inl(int x) {
struct Node *t;
t=(struct Node *)malloc(sizeof(*t));
t->data=x;
t->next=NULL;
if(head==NULL)
head=t;
else {
struct Node *u;
u=head;
while(u->next!=NULL)
u=u->next;
u->next=t;
}
}
void Clr(void) {
struct Node *prev,*curr;
prev=head;
head=NULL;
curr=prev->next;
free(prev);
while(curr!=NULL) {
prev=curr;
curr=curr->next;
free(prev);
}
}
void Input(void) {
FILE *f=fopen(fi,"r");
if(!f)
return;
else {
int x;
while(!feof(f)) {
fscanf(f,"%d",&x);
Inl(x);
}
fclose(f);
}
}
void Output(void) {
FILE *f=fopen(fo,"w");
if(!f)
return;
else {
struct Node *t;
t=head;
while(t->data!=42) {
fprintf(f,"%d\n",t->data);
t=t->next;
}
Clr();
fclose(f);
}
}
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int size;
int count=0;
int n,i;
int *str = (int *) malloc(sizeof(int));
size=sizeof(int);
n=0;
do
{
scanf("%d",&n);
if(count==0)
{
str[0]=n;
++count;
}
else
{
size+=sizeof(int);
str = (int *) realloc(str, size);
str[count++]=n;
}
}while(n<99);
for(i=0;i<count;i++)
{
if(str[i]==42)
break;
else
printf("%d\n",str[i]);
}
free(str);
return(0);
}
Hello guys, I'm new at spoj. I solved this TEST problem. It's working fine in my pc by spoj is telling me - "wrong answer". I cannot figure out what's wrong in the code. So, please help. Thanks in advance.
i have run this program on turboc++ and it gives correct result the why spoj shows wrong answer?
include
int main(void)
{
int a[20],n,i;
printf("enter the total numbers you want to enter\n");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
if(a[i]==42)
break;
printf("%d\n",a[i]);
}
return 0;
}