一个很简单的C语言代码 在线等大侠

noahxinhao 2012-05-16 02:27:26

#include<stdio.h>
int main(){
int i;
gets(i);
printf("%s\n",i);
if(i=1){
printf("111111111111");
}
if(i=2){
printf("222222222");
}else{
exit(1);
}
}

我是学java的很久没用C了,我想问一下为什么这段代码为什么不管输入的是1还是2两个判断语句中的都会打印出来
...全文
145 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mooker_Lee 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

gets是用来输入字符串的,不是用来输入整数的。
还有,i是整数类型,你怎么能这么用呢? printf("%s\n",i);
保留你先前的gets函数,我替你给过来了。
C/C++ code

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

int main(){
int i;
char buff[16];
gets(buff);
……
[/Quote]

gets函数我有太清楚,但用%s格式是没错的,程序会把int型转换成char型打印出来。
Mooker_Lee 2012-05-16
  • 打赏
  • 举报
回复
if括号中的表达式语句总是为真,所是都打印了
你那是个赋值,应该写成==。
W170532934 2012-05-16
  • 打赏
  • 举报
回复
这个代码有两个问题:
第一:输入错误。居然用scanf("%s")来输入int了。输入Int应该是这样的:scanf("%d",&i);
第二:判断==操作符写成了赋值操作符=
noahxinhao 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
if(i==1){
printf("111111111111");
}
if(i==2){
printf("222222222");
}else{
exit(1);
}

if(i=1) //相当执行赋值操作 永真
[/Quote]
非常感谢
noahxinhao 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
C/C++ code


#include<stdio.h>
#include<stdlib.h>
int main(){
int i;
// gets(i);
scanf("%d", &i);
if(i==1){
printf("111111111111");
}
if(i==2){
printf("2……
[/Quote]
很感谢,小弟如醍醐灌顶不甚感激,还是把c语言拿出来好好看看
IVERS0N 2012-05-16
  • 打赏
  • 举报
回复
if(i==1){
printf("111111111111");
}
if(i==2){
printf("222222222");
}else{
exit(1);
}

if(i=1) //相当执行赋值操作 永真
liangbch 2012-05-16
  • 打赏
  • 举报
回复
gets是用来输入字符串的,不是用来输入整数的。
还有,i是整数类型,你怎么能这么用呢? printf("%s\n",i);
保留你先前的gets函数,我替你给过来了。

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

int main(){
int i;
char buff[16];
gets(buff);
sscanf(buff,"%d",&i); //将字符串转化为1个整数,存入i中
printf("%d\n",i);
if(i==1){
printf("111111111111");
}
if(i==2){
printf("222222222");
}else{
exit(1);
}
}


hen_hao_ji 2012-05-16
  • 打赏
  • 举报
回复

#include<stdio.h>
#include<stdlib.h>
int main(){
int i;
// gets(i);
scanf("%d", &i);
if(i==1){
printf("111111111111");
}
if(i==2){
printf("222222222");
}else{
exit(1);
}
}

noahxinhao 2012-05-16
  • 打赏
  • 举报
回复
各位大侠们,就帮帮小弟吧 对C我是一窍不通的啊 这回还搞出了内存错误信息了
noahxinhao 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
i = 1要改成 i==1
i = 2 -> i==2
[/Quote]
不行啊 能帮我写一个具体的代码吗,就是像上面的那样输入1就打印11111输入2就打印22222
苏克贝塔03 2012-05-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
java我没学过
不过java里 判断语句 都是长这样? i=2
[/Quote]
哈哈
zxjluohe 2012-05-16
  • 打赏
  • 举报
回复
java我没学过
不过java里 判断语句 都是长这样? i=2
hen_hao_ji 2012-05-16
  • 打赏
  • 举报
回复
i = 1要改成 i==1
i = 2 -> i==2
内容概要:本文是一份详尽的C语言学习指南,从“Hello World”程序入手,逐步深入讲解C语言的核心概念。文章首先介绍了C语言的历史背景及其重要性,强调了它在操作系统、嵌入式开发等领域的广泛应用。接着,通过具体的代码示例,详细解释了基础语法(如标识符、数据类型、变量与常量)、函数与流程控制(如条件语句、循环结构)、内存管理(如指针、动态内存分配)以及模块化编程(如头文件、库函数)。最后,文章还涉及了一些高级主题,如面向对象编程的模拟、多线程与并发编程等。通过对这些内容的学习,读者不仅能掌握C语言的基本语法,还能深入了解其底层机制,从而成为一名真正的“代码大侠”。 适合人群:对编程有兴趣的初学者,尤其是希望深入学习C语言并掌握其核心概念和技术的读者。 使用场景及目标:①帮助读者从零开始学习C语言,掌握从简单程序到复杂应用的开发技能;②通过具体实例和代码讲解,让读者理解C语言的核心特性,如指针、内存管理等;③引导读者进行实际编程练习,培养解决实际问题的能力。 阅读建议:本文内容循序渐进,建议读者跟随文章的步骤,边学边练,特别是在学习指针和内存管理部分时,应多加实践,确保理解透彻。此外,对于高级主题,如面向对象编程和多线程编程,可以在掌握基础知识后进一步深入研究。

70,024

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧