C语言不会,求大神指导,要详细的解答过程,谢谢了

作者&投稿:丙寿 (若有异议请与网页底部的电邮联系)
数据结构c语言版,求大神解答,写一下详细的过程,谢谢啊~

正好在复习数据结构,刚好碰到这个题了

#include
#include
#include
typedef struct LNode {
int data;
struct LNode *next;
} LNode, *LinkList;
LinkList Create(LinkList la); //创建一个单链表
void TravelList(LinkList la); //遍历单链表
void DeleteRlist(LinkList la); //删除重复结点
int main() {
LNode la;
LinkList n;
n = Create(&la);
printf("原始单链表:
");
TravelList(n);
DeleteRlist(n);
printf("删除重复结点后的单链表:
");
TravelList(n);
return 0;
}
LinkList Create(LinkList la) { //创建一个单链表(头插法)
int num;
la = (LinkList)malloc(sizeof(LNode));
la->next = NULL;
printf("请输入一个单链表(以-1结束):
");
scanf("%d", &num);
while (num != -1) {
LNode *p = (LinkList)malloc(sizeof(LNode));
p->data = num;
p->next = la->next;
la->next = p;
scanf_s("%d", &num);
}
return la;
}

void TravelList(LinkList la) { //遍历单链表输出
LinkList p = la->next;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
printf("
");
}


void DeleteRlist(LinkList la) { //删除重复结点
LNode *p, *q, *r;
p = la->next;//指向第一个结点
if (p == NULL) return;
while (p->next) {
q = p;
while (q->next) {//从*p后面开始找重复结点
if (q->next->data == p->data) {
//printf("%d ", p->data);
r = q->next;//找到重复结点用r指向,删除r;
q->next = r->next;
free(r);
}
else q = q->next;
}
p = p->next;//指向下一个继续
}
}


请输入一个单链表(以-1结束):
8 8 9 5 3 5 8 3 2 0 1 -1
原始单链表:
1 0 2 3 8 5 3 5 9 8 8
删除重复结点后的单链表:
1 0 2 3 8 5 9
请按任意键继续. . .

本题其实没什么难的,难点就是在怎么样找出最高分和最低分,只要找到最高和最低,程序也就出来了!你可以百度一个最简单的冒泡排序算法的代码,然后在改一下就出来了!

#include <stdio.h>
int main()
{
int a=13,b=013,c=-1; //特别注意,这里给b赋值013,说明是八进制数13,相当于十进制数11
printf("%d\n",a=a+1,a+b,b+1); //由于printf双引号中只有一个格式说明符,因此,只输出a=a+1的值14
printf("%d\n",(a=a+1,a+b,b+1));// 现在,输出的数据是一个表达式(a=a+1,a+b,b+1)的值,因为加了括号,说明是一个逗号表达式,其值为b+1的值,12
printf("c=%d,%x,%o,%u\n",c,c,c,c); //分别以十进制、十六进制、八进制和无符号形式输出变量c的值,结果为-1,ffffffff,37777777777,4294967295
return 0;
}

前面两个printf输出时只管有赋值号的,即a=a+1,则结果为:
14
15
c=-1,ffffffff(即八个f),37777777777(3跟十个7),4294967295
x为十六进制,o为八进制,u为无符号十进制

int a=13,b=013,c=-1;[a=13,b=11,c=-1]013是八进制数转换成十进制=1*8+3=11

printf("%d\n",a=a+1,a+b,b+1);相当于a=a+1; printf("%d\n",a,a+b,b+1);[a=14,b=11,c=-1]
由于printf中格式字符串只需要一个整型数据输出,则格式字串后面的第1个表达式的取值被输出得到输出14,赋值语句表达式在赋值完成后,被赋值变量的取值是整个表达式的值

printf("%d\n",(a=a+1,a+b,b+1));[a=15,b=11,c=-1]得到输出12
对于逗号表达式(a=a+1,a+b,b+1)其执行是按照从左到右顺序,先给a赋值,然后计算a+b,但结果没有保存,最后计算b+1等于12,由于逗号表达式取值是最后一个式子的计算结果,所以提供给printf显示的数据是12

printf("c=%d,%x,%o,%u\n",c,c,c,c);假设整型是32位的,得到输出
c=-1,ffffffff,37777777777,4294967295
第1个参数按照有符号整型输出(%d),得到-1
第2个参数按照十六进制无符号整型输出(%x),得到ffffffff,由于二进制表示-1就是32位全1
第3个参数按照八进制无符号整型输出(%o),得到37777777777
第4个参数按照十进制无符号整型输出(%u),得到4294967295

多看看书

c语言在线讲解

C语言不会,求大神指导,要详细的解答过程,谢谢了
答:printf("%d\n",(a=a+1,a+b,b+1));// 现在,输出的数据是一个表达式(a=a+1,a+b,b+1)的值,因为加了括号,说明是一个逗号表达式,其值为b+1的值,12 printf("c=%d,%x,%o,%u\n",c,c,c,c); //分别以十进制、十六进制、八进制和无符号形式输出变量c的值,结果为-1,ffffffff...

C语言不会求讲解
答:函数内输出当前值 , printf("%c, %c,",*c,d); 输出 b,B,函数调用时,参数1 是指针char *c ,所以返回值 会更新 成 'b'; 主函数里的 变量 b 数值更新成 'b'. 参数2 是普通变量,不是指针,所以函数加工的结果,不会被带回去,主函数里的 变量a, 数值 依旧 是 'A'。主...

c语言输出问题,37题,求大神详细解答一下*的作用,以及最后输出结果是怎么...
答:1 printf函数称为格式输出函数,其关键字最末一个字母f即为“格式”(format)之意。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上 2 printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。printf 函数不要求必须包含stdio.h文件。3 printf函数调用的一般形式为: printf(...

几个简单C语言编程题目,自己太笨做不来。求大神解答。速求
答:1.include <stdio.h>int main(){//求和int i,sum=0;for(i=1;i<=100;i++)sum+=i;//sum就是最后的和printf("1+2+3+...+100=%d",sum);return 0;}2.include <stdio.h>int main(){//最大最小值int a,b,c;int max,min;scanf("%d,%d,%d",&a,&b,&c);max=min=a;//...

求大神详细解答一下C语言程序,每步都写出来,麻烦了!!!谢谢。
答:char * fun (int n){ static char s[20];//static是定义静态变量关键字,默认是auto。static的作用就是它所定义的变量,//只要整个程序没有退出,这个变量所存的数据就不会被自动清空。static int c=0;//初始化为0,这个变量用来标记的。下面会说它的用途 char t[10]={0},i=0,j,k;//...

我有两道c语言题要做,应该不难,请各位大神帮忙
答:一、下面是C语言实现以上四个功能的代码,函数包括 find_max、average、greater_than_average 和 sort,具体细节可以查看注释:include <stdio.h> void find_max(int arr[], int len, int *max) { // 找出数组中的最大数 max = arr[];for (int i = 1; i < len; i++) { if (arr[...

C语言题目,求大神解答
答:以下是使用C语言编写的解答:```c include <stdio.h> include <string.h> void compressRLC(char* input, char* output) { int length = strlen(input);int count = 1;for (int i = 0; i < length; i++) { if (input[i] == input[i+1]) { count++;} else { sprintf(output ...

c语言问题,求大神指点,用初学者的水平讲解
答:: 表示求模,能被4整除也就是year对4求模等于0 &&:逻辑与运算符,其左右逻辑表达式同时为真(非零)时结果为1,否则为0 ||:逻辑或运算符,其左右逻辑表达式有一个为真(非零)时结果为1,否则为0 == 判断是否相等, 返回一个布尔类型值, 相等为1,不等为0 != 判断是否不相等,返回一个...

C语言编程,求大神指教?
答:代码文本:include "stdio.h"int main(int argc,char *argv[]){ int m,n,s[100][10],i,j;printf("Enter m & n(int 0<m<101,0<n<11)...\n");if(scanf("%d%d",&m,&n)!=2 || m<1 || m>100 || n<1 || n>10){ printf("Input error, exit...\n");return 0;}...

求c语言大神指教,谢谢
答:b) {return sqrt((b.x - a.x)*(b.x - a.x)+(b.y - a.y)*(b.y - a.y));}POINT GetPoint() {POINT P;scanf("%lf %lf",&P.x,&P.y);return P;}int main() {int T;double a,b,c;POINT pa,pb,pc;printf("T = ");scanf("%d",&T);while(T--) {printf(...