void main()
{
float R,R1,R2
printf("\n请输入RI R2的值:")
scanf("%f,%f",&R1,R2)
R=(R1*R2)/(R1+R2)
printf("%f\n",R)
}
我也不知道对不对哦,楼主参考一下吧~~~~~~~~~~·
#include <stdio.h>#include <stdlib.h>
typedef struct link
{
unsigned char c
struct link *next
}Link
Link *newLink()
{
Link *l = malloc(sizeof(Link))
if(!l) return l
l->next = NULL
return l
}
void freeLink(Link *start)
{
Link *l = start
Link *tmp
if(!l) return
while(l->next){
tmp = l->next->next
free(l->next)
l->next = tmp
}
free(l)
}
Link *readStr()
{
int c
Link *start = NULL, *last = NULL, *next
while((c = fgetc(stdin))!=EOF){
if(c == '\n') break
next = newLink()
if(!next) {
freeLink(start)
return NULL
}
next->c = c
if(last){
last->next = next
last = next
}else{
last = next
start = last
}
}
return start
}
int main()
{
Link *r1, *r2
Link *l
printf("请输入字符串r1\n")
r1 = readStr()
if(!r1) {
fprintf(stderr, "输入r1失败!\n")
return 1
}
printf("请输入字符串r2\n")
r2 = readStr()
if(!r2) {
fprintf(stderr, "输入r2失败!\n")
freeLink(r1)
return 1
}
/* 找到r1尾指针 */
for(l = r1l->next != NULLl=l->next)
/* 连接r2到r1尾 */
l->next = r2
for(l = r1l != NULLl = l->next){
fputc(l->c, stdout)
}
fputc('\n', stdout)
system("pause")
freeLink(r1)
return 0
}
r1=(node *)malloc(sizeof(node))//还没读到数就申请一个结点,最终读第一行生成了4个节点,r2那里也有同样的问题逻辑错误,有3处地方要改
你没读到数就申请节点,读到-1时已经是4个节点了,所以最后你输入6个数实际有8个节点,要改r1和r2的过程
最后一个节点之所以没显示,是因为你显示的while循环也有逻辑错误,要改最后while循环