c语言 指针数组打印星期一到星期日
作者&投稿:南服 (若有异议请与网页底部的电邮联系)
指针传递的实质就是传递首地址,要取地址里面的数据就要叫*或者直接指定加[m],比如*argv,和argv[0]意思都是一样的。
C语言的数组概念的学习,通过for循环输出打印数组
# include <stdio.h>
void printstr(char **p);
int main()
{
char i;
char str[100];
char *num[]={"monday","tuesday","wednesday","thursday","friday","saturday","sunday"};
char **p;
p=num;
// printf("请输入1到7之间的数字
");
printstr(p);
}
void printstr(char **p)
{
char i;
_start:
printf("请输入1到7之间的数字
");
fflush(stdin);
scanf("%c", &i);
if('1'<=i && i<='7')
printf("%s i=%d
",*(p+i-49),i);
//**************************************************************
if(i<'1')
printf("*输入错误!i=%d
",i);
//***********************************************************
if(i>'7' && i!='a')
printf("**输入错误!
");
if(i=='a')
{
printf("程序结束了
");
return;
}
goto _start;
}
10是换行字符'
'的ascii码。用scanf读取字符的时候,敲的回车回遗留在缓存里,下次再调用scanf读取字符时,会把这个'
'读出来,就不会再要求键盘输入了。
另外,每次输出后,又递归调用,这样随着输入次数的增加,递归会越来越深,很容易导致栈溢出。
#include <stdio.h>
#include <conio.h>
void fun()
{
char ch;
scanf("%c",&ch);
printf("%d
",ch);
fun();
}
void fun1()
{
char ch;
scanf("%c",&ch);
scanf("%c",&ch);
printf("%d
",ch);
}
void fun2()
{
char ch;
scanf("%c",&ch);
//fflush(stdin);
getch();//在Tc里面还可以用这个
scanf("%c",&ch);
printf("%d
",ch);
printf("%d",ch);
}
void main()
{
//fun1();
fun2();
printf("
");
//fun();
}
这两个就是一个很好的比较。当我们用scanf的时候,我们把1打进去,但是scanf不会接收,只有我们打回车的时候才会接收。。回车也是一个ascII字符。可是scanf没有接收它,留着呢。如何我们要在清除它可以用fflush(stdin);
# include <stdio.h>
void printstr(char **p);
int main()
{
char i;
char str[100];
char *num[]={"monday","tuesday","wednesday","thursday","friday","saturday","sunday"};
char **p;
p=num;
// printf("请输入1到7之间的数字\n");
printstr(p);
}
void printstr(char **p)
{
while(1)//用while循环
{
char i;
printf("请输入1到7之间的数字\n");
scanf("%c",&i);
fflush(stdin);//清理缓冲流,i=10是换行符
if(i>='1' && i<='7')
printf("%s i=%d\n",*(p+i-49),i);
//**************************************************************
if(i<'1')
printf("*输入错误!i=%d\n",i);
//***********************************************************
if(i>'7' && i!='a')
printf("**输入错误!\n");
if(i=='a')
{
printf("程序结束了\n");
break;//结束while循环
}
}
}
汉古筋伤: 1 定义字符串指针数组,指向7个英文单词,分别为周一到周日. 2 输入周几号. 3 取出对应的英文单词并输出. 代码:1 2 3 4 5 6 7 8intmain(void) {intn;char*week[]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};scanf("%d",&n);puts(week[n-1]);return0; }
娄底市15268588847: 用C语言编写一个程序,将输入的英文星期单词转化为中文输出 - ?
汉古筋伤: #include char *weeks[]={"Monday","Tuesday","Wednesday","Thursday","Friday", "Saturday","Sunday"}; char *trans[]={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"}; void ...
娄底市15268588847: C语言中,编写一个程序,用周一到周日的某个名称,初始化一个字符指针数组,当输入整数1到7时,显示相应的英文名,输入其他的整数时,显示错误信息. - ?
汉古筋伤: #include "stdio.h" main() { int num; char *week[]={"mon","tue","wed","thu","fri","sat","sun"}; scanf("%d",&num); if(num>7||num<1) printf("error!\n"); else printf("%s\n",week[num-1]); }
娄底市15268588847: c语言输入1 - 7输出星期一到七的程序源代码 - ?
汉古筋伤: #include <stdio.h>int main() { 知int n;while (~scanf("%d",&n)){switch(n){case 1: printf("星期道一\n"); break;case 2: printf("星期二\n"); break;case 3: printf("星期三\n"); break;case 4: printf("星期四\n"); break;...
娄底市15268588847: c语言 编程星期的查找 - ?
汉古筋伤: #includeint main(){ int i; char *day[7]={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"}; scanf("%d", &i); if(i6) {printf("error");} else {printf("%s", day[i]); } retunr 0; }
娄底市15268588847: 编写程序,用周一到周日的英文单词初始化一个字符指针数组,当键盘输入整数1到7时,显示相应的星期名称,输入其它整数时,显示:error - ?
汉古筋伤: #include main() { char * DayOfWeek[]={"Monday","Tuesday","Wednesday","thirsday","Friday","Saturday","Sunday"};int num;printf("请输入一个1到7的整数:\n"); scanf("%d",&num); swtich(num) { case 1:printf("%s",...
娄底市15268588847: C语言数组指针 - ?
汉古筋伤: #include#define STU 3#define GRA 4 void search(float gra[][GRA],int stu); void print(float gra[][GRA],int i); int main(void) { float gra[STU][GRA] = {0}; int i; int j; int a = 0; for(i = 0;i{ //输入学生成绩 printf("请输入第%d位学生成绩:\n",i+1); for(j = ...
娄底市15268588847: 使用指针数组实现:输入用数字n表示一星期中的序号,输出其对应的英语单词.(用C语言)?
汉古筋伤: #include <stdio.h> void main() { char *n[7]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"}; int i; printf("输入1-7的数字:"); scanf("%d",&i); printf("%s\n",n[i-1]); }
娄底市15268588847: C语言新手求助,想输入a,b....g,依次显示周一到周日,为何编译正确,执行就错误?错误在哪儿? - ?
汉古筋伤: switch('c') 换成 switch(c) 应该判断的是变量c,不是字符'c'case 'g':printf("Sunday\n");break; //这里少了t
娄底市15268588847: C语言的指针数组?
汉古筋伤: # include <stdio.h> void main() { void exchange(char *name[],int n); char * name[]={"January","February","March","April","May","June","July","August","September","October","November","December"}; int n; printf(...