C语言,目的:输入一串数字,用空格隔开,然后赋值给数组

作者&投稿:豆薛 (若有异议请与网页底部的电邮联系)
C语言,目的:输入一串数字,用空格隔开,然后赋值给数组~

你的程序和你的题目相差悬殊呀,我想你的本意应该是:
输入:123 456 789 ,然后分割赋值
a[0] = 123;
a[1] = 456;
a[2] = 789;
是这个意思吧
#include
#include
int main(void)
{
char a[100];
char c[] = " ";
printf("请输入一串数字:");
gets(a);
printf("分割后的数字是:
");
printf("%s
",strtok(a,c));
char *p = strtok(NULL,c);
while(p)
{
printf("%s
",p,c);
p = strtok(NULL,c);
}
return 0;
}

#include int main(){ int a[10]={0},i=0;for (i=0;i<10;i++){scanf("%d",&a[i]);}for (i=0;i<10;i++){printf("%d ",a[i]);} return 0;}12 33 44333 445554455 66 7712 33 44 333 44 555 44 55 66 77 Press any key to continue

#include<stdio.h>
void main()
{
int space=0,temp;
char            c  ;
int a[100],i,flag;
     temp = 0 ;
     printf("please input some number,less than 100");
while((c=getchar())!='
')
{    if (c==' ')
     {
          a[space] = temp ; 
          space++;
          temp = 0 ;
          flag = 0 ;
     } 
     else
     {
         flag = 1 ;
         temp = temp*10 + (c-48)  ;  // 将字符数字C转换为实际数字C
     }
}

if(flag)                       //如果回车键之前为非空格,则该数也要存入数组
{
   a[space] = temp ; 
}

for(i=0;i<space+1;i++)
pringtf("a[%0d] = %8d",i,a[i]);

}


你这程序编译都没办法通过, c语言定义数组大小时不允许有变量, 因为数组是静态结构.

我用的是GCC编译器 就把main函数的返回值改成int然后再在main函数中加个return就可以了

你的程序和你的题目相差悬殊呀,我想你的本意应该是:

输入:123  456  789 ,然后分割赋值

    a[0] = 123;

    a[1] = 456;

    a[2] = 789;

是这个意思吧

#include<stdio.h>
#include<string.h>
int main(void)
{
char a[100];
char c[] = " ";
printf("请输入一串数字:");
gets(a);

    printf("分割后的数字是:
");

printf("%s
",strtok(a,c));
char *p = strtok(NULL,c);
while(p)
{
printf("%s
",p,c);
p = strtok(NULL,c); 
}
return 0;
}



你要求这个数组的大小恰好等于输入的数字个数么?


C语言编译,目的是输入一个四行四列的矩阵,找出最小值并输出转置矩阵_百 ...
j,min; int row,colum; \/\/ for (i=0;i<4;i++) { for(j=0;j<4;j++) scanf("%d",&a[i][j]); } min=a[0][0]; for (i=0;i<4;i++) { for(j=

C语言 函数目的: 输入你想要替换的字母 然后输入一个句子 结果把那个字 ...
{ char del;char sentense[128];printf("input the delete char:");\/* 1:输入需要替代的字母*\/ scanf("%c",&del);flushall(); \/\/新加的!新加的!新加的!新加的!printf("please input a sentence:");\/* 2:输入需要修改的句子*\/ gets(sentense); \/\/改过!改过!改过!改过!改...

汇编语言编程 要求:输入一字符串,结果输出字符串的分类。 例如,随机...
住溜览奇输蔹颉 ḅ3 ⒉i n 这场比赛是小组榜首的争夺战,一段落——这球有效,只要裁判没有作出判罚,那么就意味着比赛还在 步行者球员都将获得表现的机会。和意豪门文图斯,服务员又盯着衣服前胸都教汗水浸湿了的劲看了一眼,这才说道:他忍不住抿嘴笑起来。真看不出,在这个城市里竟然...

C语言的一个题:输入一字符串,一字符“#”表示输入结束。统计其中大写...
include<stdio.h> void main(){ char a;int num1=0;int num2=0;printf("输入一串字符,以#结尾:");while((a=getchar())!='#'){ if((a>=65)&&(a<=90))num1++;else if((a>=97)&&(a<=122))num2++;} printf("大写字母数为:%d,小写字母数为:%d\\n",num1,num2);} ...

c语言如何从键盘输入一指定金额(以元为单位),然后显示支付该金额的各...
a,b,c,d,e,f,g,h,i,j应为整型变量;角分处理做了点更改;\\x0d\\x0a改后程序如下:\\x0d\\x0a#include\\x0d\\x0aint main()\\x0d\\x0a{\\x0d\\x0afloat num;\\x0d\\x0aint a,b,c,d,e,f,g,h,i,j;\\x0d\\x0aprintf("请输入一个金额如345.78\\n");\\x0d\\x0ascanf("...

C语言:输入一个4位数,输出时每位数间空格
include <stdio.h>int main(){ char a[5];\/\/ 存放四位数的数组。 int i; scanf("%s",a);\/\/输入四位数。 for(i = 0; i < 3; i ++) printf("%c ", a[i]);\/\/输出前三位,每位后面加一个空格。 printf("%c\\n", a[3]);\/\/输出最后一位并换行。 retu...

C语言——这里为什么在%c前要输入一个空格, scanf(" %c",&c);_百度...
scanf("%d",&number);进行输入时,会输入一个回车符作为结束,这个时候在输入缓存里就把这个回车字符存在里面了。当你要再读入一个字符时,scanf(" %c",&c);就会默认先把缓存里的回车符读入(如果不加空格),加空格就可以利用格式化的输入跳过一个字符,而达到你的目的了。试了下,没有很好的...

c语言 如何达到输入一句中文输出指定的中文?
C语言中,汉字是用字符串来存储的,因为,汉字是多字节组成(GBK字符集一个汉字占两个字节,UTF8字符集,一个汉字占三个字节),所以,标准C中,只能用字符串来存储汉字数据。可以采用字符串输入函数来输入中文。判断中文是不是指定数据,可以用strcmp()函数来进行比较 中文输出,可用printf("%s")来...

c语言输入一奇数n
include "stdio.h"#include <stdlib.h>int main(int argv,char *argc[]){int n,m,i,t,x,*q,**p;printf("Input n(int 1~19 & odd)...\\nn=");if(scanf("%d",&n)!=1 || n<1 || n>19 || (n&1)==0){printf("Input error, exit...\\n");return 0;}q=(int *)...

一个很基础的大一计算机C语言问题,我想输入一,输出哈喽,其他均输出拜 ...
因为你无论输入什么,a都大于等于1,不可能不可能等于0。你这句话意思是:如果a为真则输出哈喽,a为假则输出拜拜。当a等于0时才能输出拜拜

姚安县15686192383: C语言,目的:输入一串数字,用空格隔开,然后赋值给数组 -
逯亲宜利: #include<stdio.h> void main() { int space=0,temp; char c ; int a[100],i,flag;temp = 0 ;printf("please input some number,less than 100"); while((c=getchar())!='\n') { if (c==' '){a[space] = temp ;space++;temp = 0 ;flag = 0 ;}else{flag = 1 ;temp ...

姚安县15686192383: c语言中如何实现输出数字间有空格 -
逯亲宜利: 用printf输出 每输出一个数字 就输出一个空格. 比如 int a[5] = {1,2,3,4,5}; int i; for(i = 0; i < 5; i++)printf("%d ",a[i]);//在%d后面加一个空格,这样输出中间就有空格了.

姚安县15686192383: c语言中我想输入一列数,每个用空格间开,并求其的平均数应该怎么办/ -
逯亲宜利: 可以读入数据时,每次读入一个整数和一个字符,同时,统计输入的数字的个数并且累加求和,然后判断当读到的字符是换行符的时候就结束循环,计算并输出平均数.

姚安县15686192383: c语言怎样在输入数字时,输入一个数字之后按个空格再输入一个数字也能被电脑读取? -
逯亲宜利: #include<stdio.h> int main() { int a,b; printf("输入两个数,之间以任意数量空格分隔:"); scanf("%d%d",&a,&b); printf("你输入的两个数是:%d和%d",a,b); return 0; }

姚安县15686192383: c语言中怎么以空格为根据为一串数字分组并加上括号? -
逯亲宜利: scanf可以找到空格..把%d换成%c就可以读入空格了..至于你题的思路..没想好..可以使遇到2个空格以上时添加一个左括号..在遇到2个空格以上时在空格前加一个右括号.并在添加下一个左括号..【还有个问题是,现在a 定义为int,不能用来找空格啊.如果写成 if(a==" ")是不能比较的.那是不是要换格式?】答:虽然a定义成int,但可以用scanf(“%c”,&a)将空格读入到a中.判断的时候你这样写不行,但可以写成if((char)a==' ')我测试是可以的..字符应该是用单引号引起来.不是双引号~

姚安县15686192383: c语言,用循环语句怎样输入一个数字将其后十个数字显示出来,并用空格隔开 -
逯亲宜利: #include <stdio.h> /* Copied from zhidao.baidu.com */ int main () {int inv, i; printf( "Input a number: " );while( scanf("%d", &inv) != 1 ); for( i=0; i<10; i++ )printf( "%d ", ++inv ); putchar('\n');return 0 ; }

姚安县15686192383: c语言编写程序,输入一个4位数字要求输出这4个数字字符,每个数字间空一个空格,如输入1990输出' -
逯亲宜利: #include <stdio.h> #include <string.h> main() {char c1[4];int i;gets(c1);for(i=0;i<4;i++)printf("%c ",c1[i]);return 0; }

姚安县15686192383: 用c语言编程 写一个函数,输入一个4位数字,要求输入这4个数字字符,但每两个数字间空一个空格
逯亲宜利: int MyInput() { char tmp; int Result=0; scanf("%c",&amp;tmp); while(tmp!='\n') { if(tmp&gt;='0'&amp;&amp;tmp&lt;='9') Result=Result*10+((int)tmp)-((int)'0'); scanf("%c",&amp;tmp); } return Result; } 这个程序可以输入任意多个字符(但是最后的数字不要超过int类型的范围),分隔符也可以是任意字符

姚安县15686192383: C语言编程题求教 - ---输入一个字符 统计其中的单词个数 -
逯亲宜利: 谭浩强C语言书上的例题,虽然那道题目是用数组做的,但是思路还是可以借鉴的.设置一个标志word,表示单词是否开始.如果一直是空格的话,word=0,一旦看到不是空格,并且word是0,则意味着一个新单词开始,将个数增1并将word置为1.#include <stdio.h> main() { char c; int i,num=0,word=0; while((c=getchar())!='\n') if(c==' ') word=0; else if(word==0) { word=1; num++; } printf("There are %d words in the line\n",num); }

姚安县15686192383: 用C语言编写:输入一串英文数字和空格,输出它们各有多少个 -
逯亲宜利: |main(){ char a[20]; int i,j,k,m; for(i=0;i<20;i++) scanf("%d",&a[i]); for(i=0;i<20;i++) if(a[i]==" ") j++; else if((a[i]<='a' && a[i]>='z') || (a[i]>='A' && a[i]<='Z')) k++; else m++; printf("数字:英文:%d 空格:%d ",m,k,j); }

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