一个非常简单的问题。为什么在第一个while循环中跳过scanf。我已经尝试过使用getchar(),结果是一样的。getchar被跳过。如果你们不明白我在说什么,您可以尝试编译它,你们会明白我在问什么。#include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct rec{ int num; char pref[16]; float point; struct rec* next;}rec;void dataInput(float*,char*);rec* insertNode(rec*);int main(){ int i=1; rec* entr,*pt = NULL; entr = (rec*) malloc(sizeof(rec)); entr->num = i; dataInput(&entr->point,entr->pref); entr->next = NULL; char key; i++; while(1){ printf("Continue ? If YES press 'y',or NO press 'n'\n"); key = getchar(); if(key == 'n')break; else if(key == 'y'){ if(!pt){ pt = insertNode(entr); }else{ pt = insertNode(pt); } dataInput(&pt->point,pt->pref); pt->num = i; i++; continue; }else{ printf("Wrong key! Please Press again! \n"); } } pt = entr; while(pt){ printf("num : %d, pref : %s, point: %.1f\n", pt->num, pt->pref, pt->point); pt = pt->next; } getchar(); getchar(); return 0;}void dataInput(float* point,char* pref){ printf("Input Point\t : "); scanf("%f",point); printf("Input Pref\t : "); scanf("%s",pref);}rec* insertNode(rec* current){ rec* newnode = (rec*)malloc(sizeof(rec)); current->next = newnode; newnode->next = NULL; return newnode;}
- 3 回答
- 0 关注
- 727 浏览
添加回答
举报
0/150
提交
取消