as********@yahoo.com wrote:
[
looking for solution to the following problem
|
| how to make these program huhu
|
| please any key in 5 digit : 56789
|
| ouput
|
| 5678 9
| 567 89
| 56 789
| 5 6789
|
]
<snippage>
>
but can u give me some example..i mean a bit
only....the rest i do by myself
Here you go...
/*** begin foo.c ***/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int new_number(long **ppnumber)
{
char foo[256];
size_t bar;
*ppnumber = NULL;
fprintf(stdout, "please any key in 5 digit : "); fflush(stdout);
if(!fgets(foo, 256, stdin)) { if(feof(stdin)) return 1; else return 2; }
bar = strlen(foo)-1; if(foo[bar] == '\n') bar[foo] = '\0'; else bar++;
if(bar != 5) return 3;
for(bar = 0; bar < 5; bar++) if(!isdigit(*(foo+bar))) return 4;
if((*ppnumber = malloc(sizeof * ppnumber)) == NULL) return 5;
**ppnumber = strtol(foo, (char **)NULL, 0x0A);
return 0;
}
void delete_number(long **ppnumber)
{
free(*ppnumber);
*ppnumber = NULL;
}
void fail(int y)
{
char *f;
switch(y) {
default: return;
case 1: f = "EOF"; break;
case 2: f = "Read error"; break;
case 3:
case 4: f = "Not a 5-digit number"; break;
case 5: f = "Out of memory"; break;
}
fprintf(stderr, "\n*** ERROR: %s!!!\n\n\n", f);
exit(EXIT_FAILURE);
}
signed main(void)
{
long *pnumber;
int jupiter[5], v3, v4;
if((v3 = new_number(&pnumber)) == 0)
{
fprintf(stdout, "\nouput\n\n");
for(v3 = 0; v3 < 5; v3++) {
jupiter[5-v3-1] = *pnumber % 10 - 1;
*pnumber /= 10;
}
for(v3 = 0; v3 < 4; v3++) {
for(v4 = 0; v4 < v3; v4++)
fputc(' ', stdout);
for(v4 = 0; v4 < 5; v4++) {
fputc('1' + jupiter[v4], stdout);
if(v4 == 3-v3)
fputc(' ', stdout);
}
fputc('\n', stdout);
}
delete_number(&pnumber);
} else {
fail(v3);
}
return EXIT_SUCCESS;
}
/*** end foo.c ***/
--
U