‘壹’ c语言中如何实现多组数据输入输出
C语言中如何实现多组数据输入输出? c语言中有一个标准输入函数,即:scanf函数,它可以读取输入的宴答乱任意格式类型的数据。scanf函数也有返回值,返回类型为int类型,它返回成功读入的项目的个数。如果它没有读取任何项目(当它期望一个数字而您却键入了一个非数字字符串时就会发生这种情况,scanf()会返回0。当它检测到“文件结尾”(end of file)时,它返回EOF(EOF是在文件stdio.h中定义的特殊值,一般#define指令把EOF的值定义为-1,我们可以理解为:#define EOF -1)。
c语言中,所有的输入函数都共用同一个输入缓冲区,我们从键盘键入数据时,其实是将输入写入缓冲区中,当我们按下回车键时,scanf()函数从缓冲区中读取输入,刷新缓冲区。
C语言中实现多组数据输入输出主要有两种方式:
1.首先输入一个n,表示将有n个输入输出,例如:
#include <stdio.h>int main(){ int n,a; scanf("%d",&n); while(n--){ scanf("%d",&a); printf("输出:%d\n",a); } return 0;}/*运行结果:3255输出:255156输出:156125输出:125 */
2.使用while(scanf("%d",&n)!=EOF){}语句,直达输入ctrl+z,结束输入,例如:
#include <stdio.h>int main(){ int a; while(scanf("%d",&a)!=EOF){ printf("输出:%d\n",a); } return 0;}/*运行结果:54输出:545156输出:515621输出:21^Z*/
你先要设置数组的大小,这个你必须要定义的。你要不确定你要多少你最好把你的数值设置大些。至于你要输多个你可以用循环语句如:for(i=1;i<=n;i++)
scanf("%d",&a[n]);
输出还是一样之是把scanf改成printf不要取地址就行了。
希望能对你有帮助。
C语言多组数据输入输出
#include<stdio.h>int pow(int a,int n)计算a的n次方{ if(n==1) return a; return a*pow(a,n-1);}int main(){ int T; int n,k,sum,i; scanf("%d",&T); while(T--) { sum=0; scanf("%d%d",&n,&k); for(i=1;i<=k;i++) { sum+=pow(n,i);累加 } printf("%d\n",sum); } return 0;}
c语言,如何实现多组数据结果对应输出
scanf 一个 for
printf另一个for ................
C语言如何实现输入多组数据测试
#include<stdio.h>
void main()
{
int n;
while(scanf("%d",&n)!=EOF,n)
或者写成while(scanf("%d",&n)!=EOF)然后在循环里加一句if(n==0)break;
{
if(n==0)break;
if((n/10000==n%10)&&(n/1000%10==n/10%10))
判断回文
printf("Yes.\
");
else
printf("No.\
");
}
}
这个代码应该是对的,在OJ上,多组举芦数据都是这么处理的。
这个没关系的,提交的时候,这样也是对的,因为OJ系统在判断答案的时候,输入和输出数据放在不同的文件夹下面的,只要它的输入文件在你的程序下运行,对应的输出文件和他的一致,你的程序就是正确的,所晌档以,就不需要把结果存起来。
如果你真的想那样,那就用一个数组把答案存起来,等循环结束的时候,再把结果printf就行了
在c语言中,输入输出数据可以用输入输出函数,汇编语言如何实现输入输出数据?
汇编语言中,根据不同的芯片,也是不同的语句实现输入输出,但思想都是一样的:输入——将值取入;输出——将值送出。语句:
输入:
有的用 in R0,INPORTADD ;INPORTADD 是端口地址
输出:
有的用 out R0,OUTADD ;OUTADD 是端口地址
而且,数据与地址,哪个放前,哪个放后,不同编译环境也不同,所以,你要根据具体的环境来定。
单片机中,除了你提到的输入输出办法,还有:用I/O来进行,就是用输入输出点的信号状态来表达;也可用存储芯片,如FLASH来进行处理数据的输入输出。
什么叫数据的输入输出?在C语言中如何实现?
数据的输入:在程序运行时,通过外部手段,发送数据给程序,供程序使用的过程,称为数据的输入。
数据的输出:程序运行时,对外界的任何修改,都可以称为输出,包括但不限于,命令行的打印,图形界面的显示,存储设备数据的修改等。
在C语言中,可以通过系统接口进行数据的输入输出,比较常用的有标准输入输出,文件输入输出,以及图形界面输入输出等。
还可以通过硬件相关接口,实现特殊设备的输入输出,比如读取串口设备的输入输出等。
‘贰’ c语言输入输出函数
第一个要求:
#include
<stdio.h>
void
main()
{
char
a
;
scanf("%c",&a)
;
/*
从键盘上输入一个单个字符,并存入变量
a
中
*/
if(
(
a
>=
'a'
)
&&
(
a
<=
'z'
)
)
/*
如果输入的是
小写字母
*/
{
a-=32
;
/*
把相应的小写字母转换为
大写字母
,并输出
*/
printf("%c",a)
;
}
else
/*
如果是其它所有字母的话,就直接输出字母本身
*/
printf("%c\n",
a
)
;
}
第二个要求:
65(按
十进制
格式输出)
101(按
八进制
格式输出)
41(按
十六进制
格式输出)
A(输出ASCII
为
65
的字符本身,为大写的
A)
‘叁’ C语言(输入函数)
intmain()
{
printf("%d ",(int('s')*256+int(' ')));//输出29450
printf("%d ",int('s '));//输出29450
putchar('s ');//putchar(int),把's '转化成了一个int值29450然后putchar按char显示,结果就没这样的字符
system("PAUSE");
return0;
}
‘肆’ C语言输入函数
c中用于将用户从指定输入设备输入的各种符号储存到指定内存以便程序读取的函数,c的函数库中有的输入函数叫标准输入函数,他放在<stdio.h>中,你也可以自己编写。
‘伍’ c语言有哪些输入输出函数
C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int scanf(const char *format, arg_list)
scanf主要从标准输入流中获取参数值,format为指定的参数格式及参数类型,如scanf("%s,%d",str,icount);
它要求在标准输入流中输入类似"son of bitch,1000"这样的字符串,同时程序会将"son of bitch"给str,1000给icount.
scanf函数的返回值为int值,即成功赋值的个数,在上例中如果函数调用成功,则会返回2,所以我们在写程序时,可以通过
语句if(scanf("%s,%d",str,icount) != 2){...}来判断用户输入是否正确.
int printf(const char *format, arg_list)
printf主要是将格式化字符串输出到标准输出流中,在stdio.h头文件中定义了标准的输入和输出,分别是stdin,stdout.
arg_list可以是变量名,也可以是表达式,但最终都会以值的形式填充进format中.
int getc(FILE *fp)
getc主要是从文件中读出一个字符.常用的判断文件是否读取结束的语句为:(ch = getc(fp)) != EOF.EOF为文件结束标志,
定义在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定义在stdlib.h中一样,文件也可以被理解为一种流,所以当fp为stdin
时,getc(stdin)就等同于getchar()了.
int putc(int ch,FILE *fp)
putc主要是把字符ch写到文件fp中去.如果fp为stdout,则putc就等同于putchar()了.
int getchar(void)
getchar主要是从标准输入流读取一个字符.默认的标准输入流即stdio.h中定义的stdin.但是从输入流中读取字符时又
涉及到缓冲的问题,所以并不是在屏幕中敲上一个字符程序就会运行,一般是通过在屏幕上敲上回车键,然后将回车前的字符
串放在缓冲区中,getchar就是在缓冲区中一个一个的读字符.当然也可以在while循环中指定终止字符,如下面的语句:
while ((c = getchar()) != '#')这是以#来结束的.
int putchar(int ch)
putchar(ch)主要是把字符ch写到标准流stdout中去.
char * gets(char *str)
gets主要是从标准输入流读取字符串并回显,读到换行符时退出,并会将换行符省去.
int puts(char *str)
puts主要是把字符串str写到标准流stdout中去,并会在输出到最后时添加一个换行符.
char *fgets(char *str, int num, FILE *fp)
str是存放读入的字符数组指针,num是最大允许的读入字符数,fp是文件指针.fgets的功能是读一行字符,该行的字符数
不大于num-1.因为fgets函数会在末尾加上一个空字符以构成一个字符串.另外fgets在读取到换行符后不会将其省略.
int fputs(char *str, file *fp)
fputs将str写入fp.fputs与puts的不同之处是fputs在打印时并不添加换行符.
int fgetc(FILE *fp)
fgetc从fp的当前位置读取一个字符.
int fputc(int ch, file *fp)
fputc是将ch写入fp当前指定位置.
int fscanf(FILE *fp, char *format,...)
fscanf按照指定格式从文件中出读出数据,并赋值到参数列表中.
int fprintf(FILE *fp, char *format,...)
fprintf将格式化数据写入流式文件中.
‘陆’ C语言中的键盘输入函数。。。
k=k&0xff?0x00ff:k>>8;其实就是
if(k&0xff) {
k=0x00ff;
}else {
k=k>>8;
}的简写。
其实0xff和0x00ff是一样的,都表示同一个十六进制的值。
书上这么写,没有错;至于为什么,就不好说了。
可能是让你多学点知识,也可能是现在很多书其实在编写时并不是很认真的。毕竟尽信书不如无书!
后面的k>>8是把0xff的值右移8位,达到计算的目的(具体什么目的要看具体内容)
‘柒’ C语言中有哪几个输入输出函数简述他们的用途
2.putchar() getchar() 输出输入函数只针对单个字符的操作。3.puts(),gets() 输出输入函数可以单个字符操作(但是功能有限的),主要是针对字符串操作。 下面我们定义int a用scanf("%d",a)可以获取整型a的值,a=getchar(),gets(a)无法从键盘获取数字用printf("%d",a)可以打印数字a的值,putchar(a),puts(a)没法打印数字方面:printf()和scanf()胜char a用scanf("%c",&a) 可以获取字符a的值,用a=getchar()能获取a的值,用gets(a)不能获取用printf("%c",a)可以打印字符a的值 用a=getchar()可以打印a的值,用puts(a)不能打印字符方面:getchar()和putchar()第1 scanf()和printf()第2 gets和puts()败补充:puts()和gets()能接收和打印单个字符只限制变量是数组变量例如 char a[50]; gets(a); put(a);你输入一个字符就会打印一个字符但如果是字符变量 char a='x'; char a; puts(a); 或 gets(a); puts(a);就无法运行char a[50]用scanf("%s",a)能获取数组a的值,用a=getchar()无法获取,用gets(a)能获取a的值用printf("%s",a)能打印数组a的值 用putchar(a)无法打印,用puts(a)能打印a的值字符串(数组)方面:gets()和puts()第一,scanf()和printf()第2,getchar()和putchar()败可见scanf()和printf()什么都能实现,但对字符和字符串操作没有其他两种好getchar()和putchar()对字符操作优势明显,但不能操作数字变量,字符数组变量gets()和puts()对字符串操作优势明显,但也不能操作数字变量,字符变量scanf()和printf()格式输入输出能同时按格式一起输入输出字符,数字,字符串这是其他两种不能比的所以程序以scanf()和printf()为主,其他两种作为辅助,发挥各自的长处。最后来个总结,用程序表示#include <stdio.h>main(){ char a,b[50]; printf("请输入第一个字符:\n"); scanf(" %c",&a); getchar(); //获取前面的回车 printf("第一个的字符为:%c\n",a); printf("请输入第二个字符:\n"); a=getchar(); printf("第二个字符为:"); putchar(a); putchar('\n'); printf("请输入第一个字符串:\n"); scanf(" %s",&b); getchar(); //获取前面的回车 printf("第一个的字符为:%s\n",b); puts("请输入第二个字符串:"); gets(b); puts("第二个字符串为:"); puts(b); }