6.分支和循环,37min 习题。
这串代码为何有误,莫非一定要引入函数,指针很难,数据结构也难。
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[])
{
int i=0,ch=0;
for(fputs("Input a number:",stdout),ch=scanf("%d",&i);
ch!=1;
fputs("Input a number:",stdout),ch=scanf("%d",&i))
{
fputs("Error!Again!\n",stderr);
while(getchar()!=10);
}
while(getchar()!=10);
fprintf(stdout,"The number[%d] %s odd.\n",i,(i%2)?"is":"isn't");
fputs("Let's found the odd number between 1-100.\n",stdout);
i=0;
typedef struct number
{
int n;
struct number *next;
}Number;
Number *front=NULL;
Number *pnew=NULL;
Number *pscan=front;
while(i<=100)
{
if(i%2)
{
pnew=(Number *)calloc(1,sizeof(Number));
pnew->n=i;
pnew->next=NULL;
if(!pscan)
{
front=pnew;
}
else
{
while(pscan->next)
pscan=pscan->next;
pscan->next=pnew;
}
printf("number %d recorded.\n",i);
}
i++;
}
fputs("The odd number between 1-100 is:",stdout);
pscan=front;
while(pscan)
{
printf("%d ",pscan->n);
pscan=pscan->next;
}
fputs("\b.\n",stdout);
while(front)
{
pscan=front->next;
free(front);
front=pscan;
}
return 0;}