c分支循环练习(1,)
题目1:计算n的阶乘
#include <stdio.h> int main() { int n=0,sum,a,i=1; printf("输入底数a:"); scanf("%d",&a); printf("输入n的阶乘数:"); scanf("%d",&n); for ( i = 1; i <= n; i++) { sum = a*a; } printf("a^n = %d",sum); return 0; }
出错。输出结果:
输入底数a3
输入n的阶乘数3
a^n = 9[1] + Done "/usr/bin/gdb" --interpreter=mi --tty=${DbgTerm} 0<"/tmp/Microsoft-MIEngine-In-xd42gtb5.shk" 1>"/tmp/Microsoft-MIEngine-Out-lw3caien.324"
问题:
原因未知,待解决。
第二次:题目理解错误,n!
题目2:计算 1!+2!+3!+4!+5!+6!+7!+8!+9!+10!
//题目2:计算 1!+2!+3!+4!+5!+6!+7!+8!+9!+10! //第一次 #include <stdio.h> int main() { int sum=1,n; for ( i = 1; i < 10; i++) { for ( y = 1; y < i; y++) { n = n * y; } sum = sum +n; n=1; } printf("%d\n",&sum); return 0; }
不运行。问题:
未定义标识符 "y"。未定义标识符 "i"。
//题目2:计算 1!+2!+3!+4!+5!+6!+7!+8!+9!+10! //第二次 #include <stdio.h> int main() { int sum=1,n,i=1,y=1; for ( i = 1; i < 10; i++) { for ( y = 1; y < i; y++) { n = n * y; printf("%d ",n); } sum = sum +n; printf("当前sum%d \n",sum); n=1; } printf("%d\n",&sum); return 0; }
为了检查为什么结果这么大,每层加了printf。无问题,输出结果:
题目3:在有序数组中查找具体的某个数字。编写int binsearch(int x,int v[],int n);功能:在v[0]<=v[1]<=v[2]<=...<=v[n-1]的数组中查找x
//题目3:在有序数组中查找具体的某个数字。编写int binsearch(int x,int v[],int n);功能:在v[0]<=v[1]<=v[2]<=...<=v[n-1]的数组中查找x //第一次 #include <stdio.h> int main() { int x=2; int v[8]={1,2,3,4,5,6,7,8}; int n=8; printf("数组数字为%d",&v[8]); printf("查找的数字为%d",&x); binsearch(x,v[8],n); return 0; } int binsearch(int x,int v[],int n) { int i; for ( i = 0; i < n; i++) { if (x ==v[n]) { printf("已在数组中找到数字%d",&x); break; } if (i==n-1) { printf("未在数组中找到数字%d",&x); } } }
输出结果:段错误,核心已转储?
题目4: 编写代码,演示多个字符从两端移动,向中间汇聚
题目5:编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成功,三次输入错误,则退出程序)

浙公网安备 33010602011771号