自学,求高手点拨下面程序哪里出错了!
题目如下:无线电台的RS制信号报告是由三两个部分组成的:
R(Readability) 信号可辨度即清晰度.
S(Strength) 信号强度即大小.
其中R位于报告第一位,共分5级,用1—5数字表示.
1---Unreadable
2---Barely readable, occasional words distinguishable
3---Readable with considerable difficulty
4---Readable with practically no difficulty
5---Perfectly readable
报告第二位是S,共分九个级别,用1—9中的一位数字表示
1---Faint signals, barely perceptible
2---Very weak signals
3---Weak signals
4---Fair signals
5---Fairly good signals
6---Good signals
7---Moderately strong signals
8---Strong signals
9---Extremely strong signals
现在,你的程序要读入一个信号报告的数字,然后输出对应的含义。如读到59,则输出:
Extremely strong signals, perfectly readable.
输入格式:
一个整数,信号报告。整数的十位部分表示可辨度,个位部分表示强度。输入的整数范围是[11,59],这个范围外的数字不可能出现在测试数据中。
输出格式:
一句话,表示这个信号报告的意义。按照题目中的文字,先输出表示强度的文字,跟上逗号和空格,然后是表示可辨度的文字,跟上句号。注意可辨度的句子的第一个字母是小写的。注意这里的标点符号都是英文的。
输入样例:
33
输出样例:
Weak signals, readable with considerable difficulty.
下面是我的程序:
程序代码:
#include <stdio.h> main() { int R,S; int N; char n1,n2; scanf("%d",&N); R=N%10; S=N-S; if(R=1) { n1="Unreadable"; } else if(R=2) { n1="Barely readable,occasional words distinguishable"; } else if(R=3) { n1="Readable with considerable difficulty"; } else if(R=4) { n1="Readable with pratically no difficulty"; } else if(R=5) { n1="Perfectly readable"; } if(S=1) { n2="Faint signals,barely perceptible"; } else if(S=2) { n2="Very weak signals"; } else if(S=3) { n2="Weak signals"; } else if(S=4) { n2="Fair signals"; } else if(S=5) { n2="Fairly good signals"; } else if(S=6) { n2="Good signals"; } else if(S=7) { n2="Moderately strong signals"; } else if(S=8) { n2="Strong signals"; } else if(S=9) { n2="Extremely strong signals"; } printf("%s,%s",n2,n1); }编译后出现warning如下:
[Warning] assignment makes integer from pointer without a cast [enabled by default]
全部n1和n2都出现上述warning
运行后无法得到结果,出错
请问上述程序出错在哪里?我觉得我的思路是对的,是字符串变量的赋值出错了?
另外,我就是想要用if语句来解决问题,不想用开关语句或者数组之类的。
求高手指教,谢谢!