修改上面的程序,用for循环实现将输入的数输出出来
时间: 2024-09-29 10:12:04 浏览: 29
Python实现动态循环输出文字功能
如果你想使用for循环在`main()`函数中直接输出输入的数字,你可以稍微调整`createFromHead()`函数的逻辑。下面是一个例子,展示了如何完成这个任务:
```c
#include <stdio.h>
#include <stdlib.h>
// 链表定义和其它函数保持不变
int main(int argc, char *argv[]) {
LinkList head;
head = createLink();
printf("请输入元素的值,以#结束(按Enter键退出输入)\n");
// 使用for循环读取用户输入,直到回车结束
for(char c; (c = getchar()) != '\n'; ) { // 使用getchar()代替scanf,避免缓冲区溢出
if(c == '#') break; // 结束输入
else {
LinkNode *s = (LinkNode *) malloc(sizeof(LinkNode));
if(s != NULL) {
s->data = c;
s->next = head->next;
head->next = s;
}
}
}
// 打印链表中的元素
printLink(head);
printf("\np链表长度为:%d\n", lengthLink(head));
return 0;
}
```
这里,我们使用`getchar()`而不是`scanf`来逐个读取输入,因为`scanf`会一次性读取一个字符串,而在这里我们需要逐个字符处理。当输入结束后,按下Enter键会产生换行符`\n`,这时`getchar()`会停止接收输入并跳出循环。然后我们可以直接调用`printLink()`来显示链表的内容。
阅读全文