c语言怎么写输入数据有多组,每组输入一个正整数N?

作者&投稿:阙霭 (若有异议请与网页底部的电邮联系)
C++语言编程 输入数据有多组。每组输入数据包括一个整数N和N个整数……求大神,在线等急~


void main(void)
{
while (true) {
int n;
scanf("%d", &n);
if (n == 0)break;
int s = 0;
while (n--)
{
int x;
scanf("%d", &x);
s += x;
}
printf("%d
", s);
}

}

1、首先打开visual studio软件,新建一个C语言文件。

2、接着在C语言文件的顶部导入库内容。

3、接着运用scanf函数接收用户输入的字符串。

4、然后我们利用printf函数打印一下用户输入的内容。

5、运行程序以后就会弹出如下图所示的CMD界面,我们输入内容就会自动接收到,然后原样输出内容。

6、最后如果你接收其他的类型,比如整数,那么类型就需要改变成int。

你可以先做一个预处理。例如说有一个a数组,a[n]为1表示n是2的幂,否则不是
那么你在初始化的时候a数组整个就是全为0的
然后
int p = 1;
for (int i=0; i<=31; ++i) //这里根据你要的数据量大小决定,这里是有符号的
{
a[p] = 1;
p <<= 1;
}

ok,预处理只做了32次赋值和32次位移而已。接下来对于任意输入的N,
你只要直接输出a[N]。这是O(1)的
所以我认为,这是很快的一种做法

//以上是算法方面的问题
我仔细看了你的提问之后我发现你的问题应该是在对输入数据的处理方面。推荐你做
杭电上所有的a+b problem还有输入输出处理的题目(1089~1096)
例如说这一题,你应该这样

int n;
scanf("%d", &n);
while ( n-- )
{
int N;
scanf("%d", &N); //这个才是被询问的数

....
}

#include<stdio.h>
int main(){
int g,N;
int i;
scanf("%d",&g);
for (i=0;i<g;i++){
scanf("%d",&N);
while(N%2==0) N=N/2;
if (N==1) printf("1\n"); else printf("0\n");
}
return 0;
}
=================
你的输入输出例子有点问题。
2 应当是组数,输出 时 怎么 把 2 也作为 一个 数据 判断它是否是2 的幂了?
如果确实有此要求,你就把 g 也判断和输出一次。

ACM题目吧,很简单

#include <stdio.h>
void main()
{
int N;
while (scanf("%d",&N)!=EOF)
{
while (N%2==0)
{
N/=2;
}
if(N==1) printf("1\n");
else
printf("0\n");
}
}

bool ans(int n)
{
while(n&&n%2==0)
n/=2;
if(n)return false;
return true;
}

淡淡的的顶顶顶顶顶的顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶


...t行数据,每行有两个数字,并用空格隔开。请问这个程序怎么写...
int i,t;int b[10],c[10];scanf("%d",&t);for(i=0;i<t;i++)scanf("%d%d",&b[i],&c[i]);类似这样吧

c语言中从键盘输入数据的规律和容易出错的地方
以下为你收集的c语言输入数据要点及注意事项 说明: (1)数据输入是相对计算机内存 (2) 数据输入使用标准库函数完成 (3) 数据输入标准库函数的原型声明在stdio.h头文件中 1、函数getchar函数的功能是从键盘上输入一个字符。其一般形式为:字符变量=getchar();getchar函数只能接受单个字符,输入数字也按...

C语言中怎么实现多行数据输入
在C语言中,要实现多行数据要使用循环语句,输入的时候输入回车键进行换行。比如要输入一个2行3列的矩阵,源码如下:include<stdio.h>#include<stdlib.h>int main(){ int a[2][3]; int i,j; printf("请输入一个2行3列的矩阵:\\n"); for(i=0;i<2;i++) { for(j=...

C语言输入两个数之间使用空格还是使用逗号隔开?
C语言输入两个数之间使用空格隔开还是使用逗号隔开主要取决于你在编写程序时你的scanf语句。具体的区别如下:1、使用scanf("%d,%d",&a,&b);语句进行输入:在输入数据时,两个数据中间需要加“,”,如“500,600”。2、使用scanf("%d%d",&a,&b);语句进行输入:在输入数据时,数据之间不可以用逗号...

怎样用C语言程序从键盘输入任意两个整数,再向屏幕输出这两个数据...
int a,b;scanf("%d %d",&a,&b);printf("%d %d",a,b);看看是不是你想到的。。

c语言里面怎么输入多行数据
根据数据格式的。一般这种输入多行数据,ACM里面很常见 常用的方式有两种 1 输入整行字符串 while(gets(s))2 每行有固定格式。比如 固定两个整型 while(scanf("%d%d", &a, &b) != EOF)

c语言编程 数据统计 任意输入n个整数,分别统计奇数的和、奇数的个数...
include <stdio.h> include <stdlib.h> define MAX 1000 int main(){ int a[MAX] , i , j , n , p , q , s1 , s2;p = 0 ; q = 0 ; s1 = 0 ; s2 = 0;printf("请输入要输入的值的个数:");scanf("%d",&n);printf("请输入这些数的数值:\\n");for(i = 0...

在c语言中,要怎么定义以0开头输入的数字串的数据类型,变量定义,书写方式...
0开头输入的数字 是 8进制正整数。输入输出格式用%o 变量定义为长整型或整型,考虑数值范围 8进制数,数字可以是 1,2,3,4,5,6,7,0,没有8,9。include <stdio.h> include <stdlib.h> void main(){ long int i,j,k; \/\/ 变量定义为长整型或整型 printf("Enter data in O -- ...

...建立一个顺序表(需要自己输入数据,并插入数据、删除数据)。_百度...
include <stdio.h>#define LIST_INIT_SIZE 10#define LISTINCREMENT 10#define ERROR 0typedef struct{ int *elem; int length; int listsize;} SqList;void InitList_Sq(SqList *l){ l->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int)); if(!l->elem) exit(0); l->length=0; l-...

用c语言创建一个txt文件,并且写入数据
include <stdio.h>int main(){ \/\/下面是写数据,将数字0~9写入到data.txt文件中 FILE *fpWrite=fopen("data.txt","w");if(fpWrite==NULL){return 0;} for(int i=0;i<10;i++)fprintf(fpWrite,"%d ",i);fclose(fpWrite);\/\/下面是读数据,将读到的数据存到数组a[10]中,并且打印...

韩城市15836216382: C语言如何多组数据输入输出 -
雕熊替加: #includeintpow(inta,intn)//计算a的n次方{if(n==1)returna;returna*pow(a,n-1);}intmain(){intT;intn,k,sum,i;scanf("%d",&T);while(T--){sum=0;scanf("%d%d",&n,&k);for(i=1;i

韩城市15836216382: 输入数据有多组. 每组一行,为整数A, B. 以EOF做结束. 该怎么写?(C语言) -
雕熊替加: #include #include int main() { int a,b;while(scanf("%d %d",&a,&b)!=EOF){scanf("%d %d",&a,&b);printf("%d\n",a+b);}return 0; }

韩城市15836216382: c语言如何输入多组数据 -
雕熊替加: #include<stdio.h> int main() {int n;scanf("%d",&n);while(n!=0)//等于0就退出,不等于0就继续输入{scanf("%d",&n);printf("%d\n",n);} }

韩城市15836216382: c语言怎么写输入数据有多组,每组输入一个正整数N? -
雕熊替加: 你可以先做一个预处理.例如说有一个a数组,a[n]为1表示n是2的幂,否则不是 那么你在初始化的时候a数组整个就是全为0的 然后 int p = 1; for (int i=0; i<=31; ++i) //这里根据你要的数据量大小决定,这里是有符号的 {a[p] = 1;p <<= 1; }ok,...

韩城市15836216382: c语言如何实现输入数据有多组 -
雕熊替加: #include <stdio.h> void main() { int a,b,n; scanf("%d",&n); while(n<1||n>10) { printf("Error!!"); scanf("%d",&n); } while (n--) { scanf("%d%d",&a,&b); printf("%d\n",a+b); } }//*************************************************#include <stdio.h> void...

韩城市15836216382: C语言中如何实现多组数据输入输出 -
雕熊替加: 你先要设置数组的大小,这个你必须要定义的.你要不确定你要多少你最好把你的数值设置大些.至于你要输多个你可以用循环语句如:for(i=1;i<=n;i++) scanf("%d",&a[n]); 输出还是一样之是把scanf改成printf不要取地址就行了. 希望能对你有帮助.

韩城市15836216382: C语言中如何实现输入输出多组数据,该如何结束输入 -
雕熊替加: c语言中实现多组数据输入输出主要有两种方式: 1.首先输入一个n,表示将有n个输入输出,例如: #include int main() { int n,a; scanf("%d",&n); while(n--){ scanf("%d",&a); printf("输出:%d\n",a); } return 0; } /* 运行结果: 3 255 输出...

韩城市15836216382: C语言中,我想要输入多组数据,请问要怎么输入,不用EOF -
雕熊替加: 不用EOF的一个比较简易的方法就是输入正是数据之前先说明数据量有多少. 不知道量的话可以自己约定一个结束符. 比如遇到#就表示结束.

韩城市15836216382: c语言回文串小问题要求测试数据有多组 应该怎么写啊 谢谢 -
雕熊替加: 用 while加gets接收用 链表保存

韩城市15836216382: 如何用c语言输入第一行数据表示有多组测试用例 -
雕熊替加: 循环按照格式读入每组数据即可.对于输入多组数据测试的情况,需要约定结束的类型,常用的有两种:1 当读入数据为一组特定值时,结束测试.比如每组2个整型数据,以空格分隔,当输入的两个数均为-1时,结束测试.代码可以写作:int a,b; while(1) { scanf("%d%d",&a,&b); if(a == -1 && b == -1) break;//退出测试的条件. //测试代码.}2 当读到EOF时,结束测试.同样读入两个整型数据,以空格分隔,当读到EOF时结束测试.代码可以写作:int a,b; while(scanf("%d%d",&a,&b) != EOF)//当出现EOF时,结束测试.{ //测试代码.}

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网