简单C语言,求回答..................(告诉我哪里错了)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单C语言,求回答..................(告诉我哪里错了)相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#define NULL 0;
void main()

struct student

int num;
float score;
struct student *next;
;
struct student a,b,c,*head,*p;
a.num=1;a.score=52.6;
b.num=2;b.score=56.8;
c.num=3;c.score=58.6;
head=&a;
a.next=&b;
b.next=&c;
c.next=NULL;
p=head;
do

printf("%ld%5.1f\n",(*p).num,(*p).score);
p=p->next;
while(p!=NULL);

--------------------Configuration: lian - Win32 Debug--------------------
Compiling...
lian.c
F:\实验室\C\U3\lian\lian.c(12) : warning C4305: '=' : truncation from 'const double ' to 'float '
F:\实验室\C\U3\lian\lian.c(13) : warning C4305: '=' : truncation from 'const double ' to 'float '
F:\实验室\C\U3\lian\lian.c(14) : warning C4305: '=' : truncation from 'const double ' to 'float '
F:\实验室\C\U3\lian\lian.c(24) : error C2143: syntax error : missing ')' before ';'
F:\实验室\C\U3\lian\lian.c(24) : error C2059: syntax error : ')'
执行 cl.exe 时出错.
lian.obj - 1 error(s), 0 warning(s)

有一处错误,我帮你修改了,错误如下:
#include<stdio.h>
#define NULL 0// 宏定义的最后不可加分号
void main()

struct student

int num;
float score;
struct student *next;
;
struct student a,b,c,*head,*p;
a.num=1;a.score=52.6;
b.num=2;b.score=56.8;
c.num=3;c.score=58.6;
head=&a;
a.next=&b;
b.next=&c;
c.next=NULL;
p=head;
do

printf("%ld%5.1f\n",(*p).num,(*p).score);
p=p->next;
while(p!=NULL);
参考技术A 你这个问题我也疑惑了会儿,后来看到那句
#define NULL 0;
后面的分号去掉,宏定义就是会进行替换的。
会变成
while(p!=0;);
所以就会报错了
参考技术B 第二行宏定义后面不需要分号

求一个5×5矩阵马鞍点的C语言程序

//希望我的回答对你的学习有帮助
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()

int a[5][5];
srand(unsigned(time(NULL)));            //随机种子

while (1)

int sign;
printf("Please input a not 0 integer !\\n");
scanf("%d", &sign);
if (sign == 0) break;            //如果输入 0 ,结束程序

int SaddleCount = 0;            //记录鞍点的个数
printf("\\nThe 5 * 5 int array is : \\n");
for (int i = 0; i < 5; i++)        //随机生成一个 5 * 5 的数组

for (int j = 0; j < 5; j++)

a[i][j] = rand() % 100;    //随机范围是 0 ~ 99
printf("%4d", a[i][j]);

printf("\\n");


for (int i = 0; i < 5; i++)

int max = a[i][0], max_x = i, max_y = 0;
for (int j = 1; j < 5; j++)        //寻找一行中最大的数,并记录列数

if (max < a[i][j])

max = a[i][j];
max_y = j;



int min = a[i][max_y], k;
for (k = 0; k < 5; k++)            //判断这行最大的数,在它所在的列是否为最小的数

if (a[i][max_y] > a[k][max_y]) break;        //如果不是,跳出循环,此时 k 一定小于 5


if (k == 5)                        //如果 k 为 5,证明这行最大的数为这列中最小的数

SaddleCount++;
printf("The %d saddle point is : a[%d][%d]->%d\\n", SaddleCount, i + 1, max_y + 1, a[i][max_y]);



if (SaddleCount == 0)                        //如果鞍点个数为 0 ,证明这个数组不存在鞍点

printf("The 5 * 5 int array is no saddle !\\n\\n");



return 0;

参考技术A

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define M 50
#define N 50
 
int main(void) 
    int i,j,k,T,max,jmax,flag,f;
    int a[M][N],m,n;
    srand((unsigned)time(NULL));
    scanf("%d",&T); // 测试次数
    while(T--) 
        scanf("%d%d",&m,&n); // 二维数组维度
        for(i = 0; i < m; ++i)  // 产生二维数组元素
            for(j = 0; j < n; ++j) 
                a[i][j] = rand()%1000;
                printf("%04d ",a[i][j]);
            
            printf("\\n");
        
        f = 1;
        for(i = 0; i < m; ++i) 
            max = a[i][0];
            jmax = 0;
            for(j = 1; j < n; ++j)  // 找出i行最大的
                if(max < a[i][j]) 
                    max = a[i][j];
                    jmax = j; // 且记录所在的列坐标
                
            
            flag = 1; // 预置标志
            for(k = 0; k < m && flag; ++k)  // 判断max是否为所在列最小的
                if(a[k][jmax] < max) // 不是
                    flag = 0; // 则清标志
            
            if(flag == 1)  // 有鞍点
                printf("鞍点:a[%d][%d] = %d\\n",i,jmax,a[i][jmax]);
                f = 0;
                //break;
            
        
        if(f) printf("没有鞍点。\\n"); // 没有鞍点
    
    return 0;

参考技术B //一下操作前提均为数组的顺序存储
//=============定义结构体=============
#define MAX_ARRAY_DIM 8
typedef struct
    int *base;
    int dim;
    int *bounds;
    int *constants;
*Array,array;
//=============寻找矩阵m*n中的马鞍点=============
//=============时间复杂度为O(m*n)=============
void SaddlePoint(Array array1)
    int min_temp=array1->base[0],max_temp=0;
    int m=1,n=1,row=array1->bounds[0],col=array1->bounds[1];
    int min[row+1],max[col+1];
    int point_num=0,flag=0;
    for(int i=0;i<row*col;)
        if(array1->base[i]<min_temp) min_temp = array1->base[i];
        ++i;
        if(i%col==0||i==row*col-1) min[m] = min_temp,min_temp=array1->base[i],++m;
    
    for(int i=0;i<col;++i)
        max_temp = 0;
        for(int k=0;k<row;++k) 
            if (array1->base[i] > max_temp) max_temp = array1->base[i];
            i += col;
        
        max[n] = max_temp,n++;
    
    for(int i=0;i<=row*col;i++) 
        m = (1 + i / col), n = (1 + i % col);
        if(flag==1)
            if(array1->base[i]!=point_num) continue;
            else if(min[m]==max[n]) printf("data[%d][%d]= %d\\n", m, n, point_num);
        
        else if (array1->base[i] == min[m] == max[n]) 
            point_num = array1->base[i];
            printf("data[%d][%d]= %d\\n", m, n, point_num);
            flag = 1;
        
    

以上是关于简单C语言,求回答..................(告诉我哪里错了)的主要内容,如果未能解决你的问题,请参考以下文章

急急急!!!求各位大侠帮回答C语言试题

1、 求c语言程序图书登记管理程序。要求如下急!

如何利用C语言,C++语言打开USB串口,然後对其发送信号? 跪求回答! 可行比加分!!

C 语言如何用for循环求1到100素数

c语言问题

求C语言高手解决,程序有一处错误始终找不出来。下面是程序代码。回答好了追加100分啊!在线等、很急!