这个程序好奇怪呀帮我看一下

img


感觉这个程序没啥问题,但又是输出不了,有没有人帮我看一下到底哪出了问题?


#include<stdio.h>
int main()
{ char ch;
printf("输入一个字母字符:");
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z'? ch+32:ch);
printf("%c\n",ch);
getchar();
}

printf函数后面的分号用成中文字符了。

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7709855
  • 你也可以参考下这篇文章:从键盘任意输入一个数,不使用计算绝对值函数编程计算并输出该实数的绝对值
  • 除此之外, 这篇博客: 程序的时间复杂度与空间复杂度该怎么算?中的 为什么要有时间复杂度? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 第一、在我们的测试环境里面,不同的硬件跑出来的结果是不一样的,比如,i7与i3的机器跑同样的代码花的时间就不一样。

    第二、用不同的数据去测试,那么花的时间也是不一样的。

  • 您还可以看一下 张传波老师的软件设计是怎样炼成的?课程中的 什么是漂亮的软件设计?小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    根据提供的参考资料,首先需要分析并调试开始的程序。根据代码分析,首先将会关闭计算机,然后要求用户输入一个字符串。如果输入的字符串是"我是猪",则会取消计算机关闭命令并输出"哈哈哈,你就是猪",否则会循环再次要求输入字符串。

    这个程序看起来没有问题,可以正常工作。但是如果你说它没有生成预期的输出结果,我们可以进行进一步的调试。

    首先,我们可以从注释中看到是一段C语言代码。假设你已经安装了C语言编译器(例如GCC)并成功地编译了该程序。接下来,我将简要说明如何在不同平台上编译和运行C代码的步骤。

    在Windows上: 1. 确保已经安装了支持C语言的编译器,例如MinGW或TDM-GCC。 2. 将代码复制到任何文本编辑器中,将文件保存为.c文件,例如test.c。 3. 打开命令行界面,并进入保存了c文件的目录。 4. 输入命令gcc -o test test.c以将c文件编译为可执行文件。 5. 输入命令test以执行程序。

    在Mac或Linux上: 1. 打开终端。 2. 将代码复制到任何文本编辑器中,将文件保存为.c文件,例如test.c。 3. 在终端中进入保存了c文件的目录。 4. 输入命令gcc -o test test.c以将c文件编译为可执行文件。 5. 输入命令./test以执行程序。

    如果你已经尝试了以上步骤,并且依然无法得到预期的输出结果,那么可能是代码本身的问题。我将对代码进行分析,并找出可能的错误。

    在主函数中,程序首先使用system("shutdown -s -t 60")命令来关闭计算机。然后,使用printf函数输出一条提示信息。接下来,使用scanf函数接收用户的输入,并将其存储在名为ch的字符数组中。

    在程序的后续部分,使用strcmp函数比较用户输入的字符串与"我是猪"是否相等。如果相等,执行system("shutdown -a")命令来取消计算机关闭命令,并输出一条带有笑脸的消息。如果不相等,则使用printf函数输出一条提示信息,并使用goto语句返回到again标签处。这将导致再次要求用户输入字符串,直到输入的字符串是"我是猪"。

    根据代码分析,关键部分的代码看起来没有问题。因此,如果你无法得出预期的输出结果,可能是由于以下原因之一: 1. 你的输入字符串不是"我是猪":请确保按照要求正确输入字符串。 2. 系统命令无法正常工作:尝试在命令提示符下手动运行相同的系统命令,以确认它是否正常工作。 3. 编译或运行环境错误:请确保你的编译器和运行环境正确安装并配置。

    如果上述方法都没有解决你的问题,我建议你在评论中提供更多细节,以便我们可以更好地帮助你调试程序。

第2行:main() 前面缺了函数类型 int,改为 int main() 试试。

你输入什么了?

在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。

//请今后要用
char c;
scanf("%c",&c);
//时,都改为
char s[2];
char c;
scanf("%1s",s);
c=s[0];
//自动跳过一个或多个空格或Tab字符或回车换行,读取下一个字符。