求C语言大神帮我看一下代码怎么修改成只能输入整数!!!!谢谢谢谢

求C语言大神帮我看一下代码怎么修改成只能输入整数!!!!谢谢谢谢#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef int DataType;
typedef struct node/*定义结点类型*/
{ DataType data;
struct node *next;
}ListNode;
typedef ListNode *LinkList;
LinkList CreateListR()
{
int it;
LinkList head;
ListNode *s, *r;
head = NULL;
r = NULL;
head = (ListNode *)malloc(sizeof(ListNode));
r = head;
while ((it = getchar()) != '\n')
{
s = (ListNode *)malloc(sizeof(ListNode));
s->data = it;
r->next = s;
r = s; }
if (r != NULL) r->next = NULL;
return head;
}
ListNode *LocateNode(LinkList head, DataType key)
{
ListNode *p = head->next;
while (p&&p->data != key) p = p->next;
if (p == NULL)
printf("Position error!\n");
else printf("已查找到\n");
return p;
}
void InsertList(ListNode *q, DataType x)
{
ListNode *p, *s;
DataType y;
if (q == NULL)
printf("Position error!");
else
{
s = (ListNode *)malloc(sizeof(ListNode));
s->data = x;
s->next = q->next;
q->next = s; }}
void print(LinkList h)
{
ListNode *p = h->next;
while (p != NULL)
{ printf("%3d", p->data);
p = p->next; }}
void main()
{
LinkList head = NULL;
ListNode *q;
int x, z;
head = CreateListR();
print(head);
printf("\n");
printf("请输入要插入的字符:");
scanf("%d", &x);
printf("请输入要插入字符的位置:");
scanf("%d", &z);
z = getchar();
q = LocateNode(head, z);
InsertList(q, x);
print(head);
printf("\n");}

好吧,你的while语句是错误的写法,这样写一般是for语句,while的语句要求是真就是1就执行,0就不执行,大于1可能他默认为真吧,最好改成for语句,
for(i=0;i<100;i++){
。。。。}
注意C语言请把输入法切到英文
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-12-24
你这代码太长了
用int 就只能输入整数了追问

对呀。就需要输入整数。但是输入整数会跳出asc码值

跪求大神用C语言帮忙编写一个学生成绩管理系统,要求如下,谢谢谢谢
回答:写c语言的来啦

c语言:有哪位大侠可以帮我解释一下下面这道题目???
int main() \/\/表示一下内容为主函数 {int prime(int); \/\/这个用途是前置函数声明、因为被调哈数prime是在主函数后面的所以需要函数声明 printf("input an integer:"); \/\/这个作为人机交互、在执行之后输出input an integer具体自己翻译 scanf("%d",&n); \/\/这里作为n变量的取值、功能是手动...

c语言 谁能帮我看一下我错在哪里帮我改一下啊 没有错但是运行结果是错的...
if(a == 0){ if(b == 0){ if(c == 0)printf("参数都为零,方程无意义!\\n");else printf("a和b为0,c不为0,方程不成立\\n");} else printf("x = %0.2f\\n", -c\/b);} 根号下b方减去4ac,a=0,b=0,参数就都为零了,c就算不为零又有什么用?仔细点,小伙 ...

C语言,大神详细讲下图中为啥这么做,谢谢谢谢。
外for循环,i被赋值2,结束条件是i<4,所以这个for循环有两种情况,i=2和i=3 当i=2时,内for循环,j=3,结束条件是j<6,所以有3种情况,j=3, j=4, j=5,内for循环的范围是到break;当i=2,j=3的时候,进行if判断,3%2 =1,所以该判断条件为假,执行下一次循环。当i=2,j=4的...

c语言中“%d”和“%d\\n”有什么区别?请看详情
&b,&c);就得输入一个数按一下回车,当输入第三个数之后,你按了回车了,还要按一下回车,代表输入结束,才会出结果,不建议这样写,如果每个输入都占一行的话,那你可以将最后一个\\n去掉,变成这样 scanf("%d\\n%d\\n%d",&a,&b,&c);这样就可以在输入第三个回车时出结果,希望你能懂 ...

C语言程序,求字符串长度。请大家帮我看看哪错了,在线等→_→
这句的前面加一句gets(n);还有一点就是int i, j;这句改为int i, j = 0;还有return (j-1);这句和下一句交换一下位置,并改为return (j);修改后:include <stdio.h>int main(void){ int f(char * n); char n[100]; int length; printf("请输入字符串:"); gets...

C语言题要求从键盘上输入10个正整数,求最大值用循环结构,谢谢谢谢
include<stdio.h> int main(){ int a,max=0;for(int i=0;i<10;++i){ scanf("%d", &a);if(max>a)max=a;} printf("max = %d \\n",a);return 0;}

用计算机C语言程序设计 输入4个整数,要求按由小到大的顺序输出_百度知 ...
printf("请输入四个整数:\\n"); \/\/以空格分开\/\/ for(i=0;i<4;i++)scanf("%d",&a[i]);for(i=1;i<4;i++)for(j=0;j<=4-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} printf("排列后的顺序是:\\n");for(i=0;i<4;i++)printf("%5d"...

求助C语言达人:编程输出100到200间能被7整除的整数,要求每行输出5个数...
先从100开始增1寻求第一个被7整除的数,然后从这个数开始增7逐一输出,直到大于200停止。另用一变量从0开始每输出一个数增1,能被5整时增加输出一个回车就能满足题目要求。代码如下:include "stdio.h"int main(int argc,char *argv[]){int i,t;for(i=100;i%7;i++);\/\/从100开始增1穷举...

求大神,C语言编程求,100以内两个数,和差都是平方数,不要思路,要程序...
include<stdio.h>\/*假设这两个数为x,y; x+y=a,x-y=b;a、b都是平方数 *可得x=(a+b)\/2,y=(a-b)\/2 *因为x必须是在100以内,所以a的范围是200以内的平方数(b为0的时候) *x,y必须是整数,所以a和b必须同奇同偶,观察数组可知奇偶数互相间隔, *所以j每次循环+2 *\/int main()...

相似回答