当前位置:编程学习 > C/C++ >>

C语言输出问题

#include <stdio.h> main() { int n=0; char c; while((c=getchar())!='2') n++,printf("0%c",c); printf("%d",n); } 输入1992 为什么当n增加到2的时候没输出来啊
答案:你这个程序没语法错误。输入1992,输出结果为:0109093
我猜你可能是while循环没加“{}”的原因,没达到你想要的效果。没加就默认为只是下一个分号“;”前的是循环里的内容。
while((c=getchar())!='2')
n++,printf("0%c",c);
printf("%d",n);
就相当与
while((c=getchar())!='2')
{
n++,printf("0%c",c);
}
printf("%d",n);
其他:#include <stdio.h>
#include<iostream>
int main()
{
int n=0;
char c;
while((c=getchar())!='2')
{
     n++,printf("0%c\n",c);
}
printf("%d",n);
system("pause");
}
在dev下编译的,看可以不??你这题的题目是什么啊? getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符
也就是说你输入1992只接收了第一个字符。 正确的程序如下:
#include<stdio.h>
void main()
{
        int n=0;        /*声明一个变量用于计算输入的字符的个数*/
        char c[80];        /*声明一个字符数组用于存储字符变量,可以存储多个字符变量*/
        while((c[n]=getchar())!='2') /*用getchar()函数从键盘输入字符,并赋给c[n],遇到2中止*/
        {printf("%c",c[n]);n++;} /*打印输入的字符变量,并使计数变量增加*/
        printf("\n");/*输出换行符*/
        printf("%d",n);/*输出换行符*/
}
你这个程序的错误之处在于你声明了一个字符变量char c,而一个字符变量内只能放一个字符。改成一个字符数组就可以解决这个问题。输入1992后,屏幕上显示199,换行显示3。因为程序在while那一行遇到2,就中止了,所以不会输出2,计数变量n也不会增加。

上一个:C++语言课程设计任务书
下一个:9月要考国家二级C语言了。谁有最新的上机题库啊,求一份,qq:283368667@qq.com。感激不尽啊

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,