刚刚完成C语言作业,有错误,希望高手来解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刚刚完成C语言作业,有错误,希望高手来解决相关的知识,希望对你有一定的参考价值。

简单的大小写转换,有两个错。。希望高手来
#include <stdio.h>
void main()

char c1,c2;
c1=getchar();
if(c1>='A')&&(c1<='Z');

printf("%c,%d\n",c1,c1);
c2=c1+32;
else c2=c1-32;
printf("%c,%d\n",c2,c2);

参考技术A 首先,你“if(c1>='A')&&(c1<='Z');”错了,if里面的条件是一个,所以只能用一个小括号,而且,它没有分号应这样:if(c1>='A'&&c1<='Z')
其实是,你if条件的执行语句括号打错了,应该打在else前面那一句,就是这样了,那,正确的源码如下:
#include <stdio.h>
void main()

char c1,c2;
c1=getchar();
if(c1>='A'&&c1<='Z')

printf("%c,%d\n",c1,c1);
c2=c1+32;
else c2=c1-32;
printf("%c,%d\n",c2,c2);


我调试过的。。没错。。。
参考技术B #include <stdio.h>
void main()

char c1,c2;
c1=getchar();
if((c1>='A')&&(c1<='Z'))//少了一对(),多了一个;

printf("%c,%d\n",c1,c1);
c2=c1+32;
//这个括号应该放在这个位置
else
c2=c1-32;
printf("%c,%d\n",c2,c2);
本回答被提问者采纳
参考技术C #include <stdio.h>

void main()

char c1,c2;
c1=getchar();
if((c1>='A')&&(c1<='Z')) //括号不匹配

c2=c1+32; //和下面调换一下
printf("%c,%d\n",c2,c2); //打印c2不是c1
//多条语句要用花括号
else

c2=c1-32;
printf("%c,%d\n",c2,c2);

参考技术D #include <stdio.h>
void main()

char c1,c2;
c1=getchar();
if((c1>='A')&&(c1<='Z'))

printf("%c,%d\n",c1,c1);
c2=c1+32;

else

c2=c1-32;
printf("%c,%d\n",c2,c2);


这样就可以,if那行后面不应有分号,if后的()应包括(c1>='A')&&(c1<='Z')
else的后少一个
刚开始学C,要注意排版,这样对编程有好处
第5个回答  2009-10-07 #include <stdio.h>
int main(void)

char c1,c2;
c1=getchar();
if(c1>='A')&&(c1<='Z');

printf("%c,%d\n",c1,c1);
c2=c1+32;


else

c2=c1-32;
printf("%c,%d\n",c2,c2);

return 0;

C语言链表问题,作业编程。编好出现问题。高手看下。

课程设计题目:学生成绩管理2(由 完成)
课程设计内容:用C语言编写程序完成以下任务:
学生基本信息包括学号,姓名,计算机成绩,请编程序,实现如下的功能:
(1)创建链表存放学生信息,并将学生信息保存到students.txt文件中。
(2)显示学生信息。
(3)修改指定学号的学生成绩并可存盘。
课程设计要求:
1.贯彻结构化程序设计思想。
2.用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
3.用户界面中的菜单至少应包括“创建链表”、“显示学生信息”、“学生成绩修改”、 “退出”4项。
4.代码应适当缩进,并给出必要的注释,以增强程序的可读性。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <malloc.h>

typedef struct linknode

long number;
char name[21];
int score;
struct linknode *next;
linknode, *linklist;
void input(linklist *h);
void cleanup(linklist h);
void modify(linklist h);
void print(linklist h);

/* 添加学生记录 */
void input(linklist *h)

long num;
linklist p, q;
p = q = NULL;

printf("\n\n请输入学生信息(学号 姓名 成绩 ,学号为0结束):\n");

while (1)

scanf("%ld", &num);

if (num == 0)
break;

p = (linklist)malloc(sizeof(linknode));

if (p == NULL)

cleanup(*h);
exit(-1);


p->number = num;
p->next = NULL;
scanf("%s %d", p->name, &p->score);
getchar();

if (*h == NULL)
*h = q = p;
else

q->next = p;
q = p;



getchar();


/* 释放资源 */
void cleanup(linklist h)

linklist p = h;

while (p != NULL)

h = p->next;
free(p);
p = h;



/* 修改学生记录 */
void modify(linklist h)

if (h == NULL)
return;

char choice, name[21];
long num;
int found = 0;
linklist p = h;

printf("\n\n请选择查询方式:1) 学号 2) 姓名\n");
choice = getchar();
getchar();

if (choice == '1')
scanf("%d", &num);
else
scanf("%20[^\n]", name);

getchar();
while (p)

if (choice == '1' && p->number == num)
found = 1;
else if (!strcmp(p->name, name))
found = 1;

if (found)

printf("请输入新学生信息(学号 姓名 成绩): ");
scanf("%ld %s %d", &p->number, p->name, &p->score);
getchar();
break;


p = p->next;


if (found)
printf("成功更新学生信息\n");
else
printf("找不到学生信息\n");


/* 输出所有学生记录 */
void print(linklist h)

linklist p = h;
printf("\n\n学号\t姓名\t成绩\n");

while (p)

printf("%ld\t%s\t%d\n", p->number, p->name, p->score);
p = p->next;



int main(void)

linklist head, cursor;
head = cursor = NULL;
char choice;

printf("***欢迎使用简单学生管理系统***\n");

while (1)

printf("\n功能选择:\n");
printf("1) 添加记录 2) 显示记录 3) 修改记录 4)退出程序\n");
choice = getchar();
getchar();

switch (choice)

case '1':

input(&head);
break;

case '2':

print(head);
break;

case '3':

modify(head);
break;

case '4':
goto out;



out:
FILE *fp = fopen("students.txt", "w");

if (fp == NULL)

printf("无法打开文件,保存数据出错。。");
exit(-1);


cursor = head;

/* 保存学生记录 */
while (cursor != NULL)

fprintf(fp, "%ld %s %d\n", cursor->number, cursor->name, cursor->score);
cursor = cursor->next;


fclose(fp);
cleanup(head);
return 0;
参考技术A #include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define LEN sizeof(struct data)
#define N 3//在这修改学生的人数
struct data
int num;
char name[20];
int score;
stu[N];
void main()
int i,j,n,m;
char str[20];
for(i=0;i<N;i++)
printf("学号:");
gets(str);
stu[i].num=atoi(str);
printf("姓名:");
gets(stu[i].name);
printf("成绩:");
gets(str);
stu[i].score=atoi(str);

printf("学号 姓名 成绩\n");
for(i=0;i<N;i++)
printf("%2d%7s%5d\n",stu[i].num,stu[i].name,stu[i].score);
printf("要修改信息的个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
printf("\n要修改的学号:");
scanf("%d",&m);
for(j=0;j<N;j++)
if(stu[j].num==m)
printf("修改的成绩为:");
scanf("%d",&stu[j].score);
break;


printf("修改后:\n");
for(i=0;i<N;i++)
printf("%2d%7s%5d\n",stu[i].num,stu[i].name,stu[i].score);

以上是关于刚刚完成C语言作业,有错误,希望高手来解决的主要内容,如果未能解决你的问题,请参考以下文章

C语言 四则运算 各位C语言高手帮忙做下这题!!谢谢谢谢谢谢

求用C语言建立通讯录管理系统

C语言:下列程序哪里有错误,包括语法和算法,请高手纠正。

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

关于C语言指针的问题,希望高手帮忙解答一下

求编程高手,c语言编写产生十道十以内的除法,数字随机产生且必须整除,并且每题正确得十分,错误零分,统